返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十、DHCN [2021]

发布于 2023-07-17 23:38:23 字数 98782 浏览 0 评论 0 收藏 0

  1. session-based recommendation: SBR 是一种新兴的推荐范式,其中无法获得长期的 user profile。一般而言,一个 session 是一个在购物事件shopping event 中包含了很多购买的 item 的交易 transactionsession-based 推荐专注于通过利用实时的用户行为来预测 next-item

    session-based 推荐领域的大多数研究工作都将 session 视为有序的序列,其中 RNN-based 方法和 GNN-based 方法已经展示出强大的性能。

    • RNN-based 方法中,成功的关键是将 session-based 数据建模为单向序列,因为数据通常是在短时间内生成的,并且可能具有时间依赖性。然而,这个假设也可能会限制住这些 RNN-based 模型,因为它考虑不全面。

      实际上,与严格顺序的方式生成的语言序列不同,在用户行为序列中可能没有如此严格的时间顺序。例如,在 Spotify 上,用户可以选择随机播放专辑或按顺序播放,这会生成两个不同的收听记录。但是,这两种播放模式都对应同一组歌曲。换句话讲,在这种情况下打乱两个 item 的顺序并不会导致用户偏好的扭曲。相反,严格且独立地建模 item 的相对顺序可能会使得推荐模型容易过拟合。

    • 最近,GNN 已被证明在 session-based 推荐领域是有效的。与 RNN-based 方法不同,GNN-based 方法将 session-based 数据建模为有向子图,将 item transition 建模为 pairwise relation ,这稍微放松了连续 item 之间的时间依赖性假设。

      然而,与 RNN-based 方法相比,现有的 GNN-based 方法仅展示出微不足道的提升。潜在的原因是它们忽略了 session-based 数据中复杂的 item correlation 。在实际场景中,一个 item 转移往往是由先前很多 item clicks 的联合效果 joint effect 来触发的,并且 item 之间存在 many-to-many 的高阶关系。显然,简单的图无法描述这种类似集合set-like 的关系。

    为了克服这些问题,论文 《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》 提出了一种基于超图 hypergraph 的新的 session-based 推荐方法来建模 sessionitem 之间的高阶关系。从概念上讲,超图由节点集合和超边 hyperedge 集合组成,其中每条超边可以连接任意数量的节点并用于编码高阶的数据相关性。

    作者还假设 session 中的 item 是时间相关temporally correlated的,但是不是严格顺序依赖的。超边的特性完全符合作者的假设,因为超边是 set-like 的,它强调所涉及元素的一致性 coherence 而不是相对顺序。因此,超边为我们提供了捕获 session 中复杂交互的灵活性和能力。

    从技术上讲:

    • 首先,论文将每个 session 建模为一个超边,其中所有 item 相互链接。不同的超边通过共享的 item 相互链接从而构成了超图,其中超图包含 item-level 的高阶相关性。
    • 然后,论文通过将每条超边建模为一个节点从而在超图的基础上构建一个线性图 line graph ,并且聚焦于超边之间的连通性,其中这种连通性刻画了 session-level 的关系。
    • 之后,论文开发了双通道超图卷积网络 Dual channel Hypergraph Convolutional Network: DHCN 从而分别从两个 graph 中捕获复杂的 item 相关性、以及 cross-session 的信息。

    下图说明了所提出方法的超图构造和 pipeline

    通过在两个通道中堆叠多个层,论文可以借助超图卷积的优势来生成高质量的推荐结果。然而,由于每条超边仅包含有限数量的 item,固有的数据稀疏性问题可能会限制超图建模带来的好处。为了解决这个问题,论文创新性地将自监督集成到模型中,从而增强超图建模。

    直观而言,DHCN 的两个通道可以看做是描述 sessionintra-informationinter-information 的两个不同视图,而它们中的每一个都对对方的信息知之甚少。利用自监督学习最大化通过两个通道学到的 session representation 之间的互信息,这两个通道可以相互获取新的信息从而提高各自在 item/session 特征抽取中的性能。然后,论文将推荐任务和自监督任务统一在一个 primary & auxiliary learning 框架下。通过联合优化这两个任务,推荐任务的性能获得了不错的收益。

    总而言之,这项工作的主要贡献总结如下:

    • 作者为 session-based 推荐提出了一种新颖的 DHCN ,该模型可以通过超图建模来捕获 item 之间的 beyond pairwise relation 、以及 cross-session information
    • 作者创新地将自监督任务集成到模型训练中,从而增强超图建模并改进推荐任务。
    • 大量实验表明,作者提出的模型比 state-of-the-art baseline 具有压倒性的优势,并且在 benchmark 数据集上实现了统计显著的改进。
  2. 相关工作:

    • session-based 推荐:session-based 推荐的早期探索主要集中在序列建模上,其中马尔科夫决策过程是该阶段的首选技术。深度学习的发展为利用序列数据提供了替代方案。RNNCNN 等深度学习模型随后被用于 session-based 推荐并取得了巨大成功,GRU4RecGRU4Rec++NARMSTAMP 是经典的 RNN-based 模型。

      GNN 最近在 session-based 推荐中的应用也展示出有前景的结果。与处理序列数据的 RNN-based 方法不同,GNN-based 方法在 session 导出的图上学习 item transition

      • SR-GNN 是一项开创性的工作,它使用 gated GNN 从而将 session 建模为图结构数据。
      • GC-SAN 采用自注意力机制通过图信息聚合来捕获 item 依赖关系。
      • FGNN 构建 session graph 来学习 item transition pattern ,并重新思考 session-based 推荐中 item 的序列模式。
      • GCE-GNN 对单个 session graphglobal session graph 进行图卷积,从而学习 session-level embeddingglobal-level embedding

      尽管这些研究表明 GNN-based 模型优于其它方法(包括 RNN-based 方法),但是它们都未能捕获到复杂的、高阶的 item 相关性。

    • 超图学习 Hypergraph Learning:超图为复杂的高阶关系提供了一种自然的方式。HGNNHyperGCN 是首先将图卷积应用于超图的。《Dynamic hypergraph neural networks》 提出了一个动态超图神经网络,并且 《Line Hypergraph Convolution Network: Applying Graph Convolution for Hypergraphs》 开发了线性超图卷积网络。

      还有一些研究将超图学习与推荐系统相结合。与我们最相关的工作是 HyperRec,它使用超图来建模短期用户偏好从而用于 next-item 推荐。然而,它没有利用超边之间的信息,并且也不是为 session-based 场景而设计的。此外,该模型的高复杂度使得它无法在实际场景中部署。目前,还没有研究将超图神经网络和 session-based 推荐相结合,我们是首个填补这一空白的人。

    • 自监督学习:自监督学习是一种新兴的机器学习范式,旨在从原始数据中学习 data representation

      由于自监督学习目前仍处于起步阶段,目前只有几项研究将其与推荐系统相结合。与我们工作最相关的是用于序列推荐的 S3-Rec,它使用 feature mask 来创建自监督信号。但是它不适用于 session-based 推荐,因为 session 数据非常稀疏,masking feature 不能产生强的自监督信号。

      目前,自监督学习在 hypergraph representation learningsession-based 推荐方面的潜力尚未研究。我们是第一个将自监督学习集成到 session-based 推荐和超图建模的场景中。

30.1 模型

  1. I={i1,i2,,iN}$ \mathcal I=\{i_1,i_2,\cdots,i_N\} $ 为 item 集合,其中N$ N $ 为 item 数量。每个 session 表示为s=[is,1,is,2,,is,ms]$ \mathbf s = [i_{s,1},i_{s,2},\cdots,i_{s,m_s}] $ ,其中ms$ m_s $ 为 sessions$ \mathbf s $ 的长度,is,kI,1kms$ i_{s,k}\in \mathcal I, 1\le k\le m_s $ 表示 sessions$ \mathbf s $ 中的一个交互 item

    我们将每个 itemiI$ i\in \mathcal I $ 嵌入到一个 embedding 空间,记做ei$ \mathbf{\vec e}_i $ 。令xi(l)Rdl$ \mathbf{\vec x}_i^{(l)}\in \mathbb R^{d_l} $ 为 itemi$ i $ 在深度神经网络中第l$ l $ 层的向量的 representationdl$ d_l $ 为向量的维度。所有 item 在第l$ l $ 层的向量的 representation 记做X(l)RN×dl$ \mathbf X^{(l)}\in \mathbb R^{N\times d_l} $ 。

    每个 sessions$ s $ 由一个向量s$ \mathbf{\vec s} $ 来表达。session-based 推荐的任务是:对于任意给定的 sessions$ \mathbf s $ 来预测 next item , 即is,ms+1$ i_{s,m_s+1} $ 。

  2. 超图:令G=(V,E)$ G=(V,E) $ 为一个超图,其中V$ V $ 为包含N$ N $ 个 unique 节点的节点集合,E$ E $ 为包含M$ M $ 条超边的超边集合。每条超边ϵE$ \epsilon\in E $ 包含两个或多个节点并被分配一个正的权重Wϵ,ϵ$ W_{\epsilon,\epsilon} $ ,并且所有权重构成一个对角矩阵W=diag(Wϵ,ϵ)RM×M$ \mathbf W = \text{diag}(W_{\epsilon,\epsilon})\in \mathbb R^{M\times M} $ 。

    矩阵W$ \mathbf W $ 刻画的是超边之间的连接,这里用对角矩阵表示任意两个超边之间没有连接。

    超图可以用关联矩阵 incidence matrixHRN×M$ \mathbf H\in \mathbb R^{N\times M} $ 来表示,其中:如果超边ϵE$ \epsilon\in E $ 包含节点viV$ v_i\in V $ ,那么Hi,ϵ=1$ H_{i,\epsilon} = 1 $ 否则Hi,ϵ=0$ H_{i,\epsilon} = 0 $ 。

    对于每个节点和每个超边,它们的 degree 定义为:

    Di,i=ϵ=1MWϵ,ϵHi,ϵ,Bϵ,ϵ=i=1NHi,ϵ

    节点的度矩阵为D=diag(Di,i)RN×N$ \mathbf D = \text{diag}(D_{i,i})\in \mathbb R^{N\times N} $ ,超边的度矩阵为B=diag(Bϵ,ϵ)RM×M$ \mathbf B = \text{diag}(B_{\epsilon,\epsilon})\in \mathbb R^{M\times M} $ 。

  3. 超图的线性图 line graph:给定超图G=(V,E)$ G=(V,E) $ ,超图的线性图L(G)$ L(G) $ 定义为这样的一个图:

    • 线性图L(G)$ L(G) $ 中的每个节点对应于超图G$ G $ 中的一条超边。
    • 如果超图G$ G $ 中的两条超边共享至少一个节点,那么位于线性图L(G)$ L(G) $ 中对应于这两条超边的节点是相连的。

    具体而言,L(G)=(VL,EL)$ L(G) = (V_L,E_L) $ ,其中:

    VL={ve:eE},EL={(vep,veq):ep,eqE,|epeq|1}

    我们为线性图的每条边(vep,veq)$ (v_{e_p},v_{e_q}) $ 赋予一个权重Wp,q=|epeq||epeq|$ W_{p,q} = \frac{|e_p\cap e_q|}{|e_p\cup e_q|} $ 。

30.1.1 超图构建

  1. 为了在 session-based 推荐中捕获超越 pairwise 的关系,我们采用超图G=(V,E)$ G=(V,E) $ 将每个 session 表示为超边。具体而言,我们将每个超边表示为[is,1,is,2,,is,ms]E$ [i_{s,1},i_{s,2},\cdots,i_{s,m_s}]\in E $ ,每个 itemis,kV$ i_{s,k}\in V $ 。

    超图构建前后,数据结构的变化如下图所示。

    • 原始的 session 数据组织为线性序列,其中两个 itemis,k1,is,k$ i_{s,k-1},i_{s,k} $ 被连接起来当且仅当用户在交互了is,k1$ i_{s,k-1} $ 之后紧接着交互is,k$ i_{s,k} $ 。
    • session 数据转换为超图之后,session 中的任意两个 item 都将被连接起来。

    需要注意的是,我们将 session 序列转换为无向图,这符合我们的直觉,即 session 中的 item 仅仅是时间相关temporally related的而不是顺序依赖sequentially dependent 的。通过这种方式,我们具体化了 many-to-many 的高阶关系。

  2. 此外,我们进一步导出了超图的线性图。每个 session 被建模为一个节点,并且不同的 session 通过共享 item 来连接。与描述 item-level 高阶关系的超图相比,线性图描述了 session-level 关系,也称作 cross-session 信息。

30.1.2 双通道超图卷积网络

  1. 在超图构建之后,我们开发了一个双通道超图卷积网络 Dual channel Hypergraph Convolutional Network: DHCN,从而捕获 item-level 高阶关系和 session-level 关系。网络中的每个通道都负责从一个图/超图中抽取有用信息,从而通过图/超图卷积来改善 session-based 推荐。

a. 超图通道和卷积

  1. 超图通道对超图进行编码。由于有两个通道,直接将完整的 basic item embeddingX(0)RN×d$ \mathbf X^{(0)}\in \mathbb R^{N\times d} $ 同时馈入两个通道是不明智的。为了控制流向每个通道的 embedding 的幅度,我们使用带 self-gating unit: SGUpre-filter,它的定义为:

    Xc(0)=fc,gate(X(0))=X(0)σ(X(0)Wc,g+bc,g)

    其中:

    • Wc,gRd×d,bc,gRd$ \mathbf W_{c,g}\in \mathbb R^{d\times d},\mathbf{\vec b}_{c,g}\in \mathbb R^d $ 为待学习的 gating 参数,c{h,a}$ c\in \{h,a\} $ 代表通道。
    • $ \odot $ 为逐元素乘积,σ()$ \sigma(\cdot) $ 为 sigmoid 函数。

    self-gating 机制通过在各维度上重新加权从而以 feature-wise 粒度来调节 basic item embedding 。然后我们获得特定于超图通道的 item embeddingXh(0)$ \mathbf X_h^{(0)} $ 以及特定于线性图通道的 item embeddingXa(0)$ \mathbf X_a^{(0)} $ 。

    为什么直接将完整的 basic item embeddingX(0)$ \mathbf X^{(0)} $ 同时馈入两个通道是不明智的?作者并未给出理由。个人猜测的原因是:希望两个通道各司其职,从而得到更好的效果。但是,这里并没有监督信息使得两个通道的能力尽可能不同(因为如果两个通道的能力尽可能相同,那么只需要一个通道就够了)。

  2. 在超图上定义卷积操作的主要挑战是如何传播 item embedding 。参考 《Hypergraph neural networks》 中提出的谱超图卷积spectral hypergraph convolution,我们将超图卷积定义为:

    xi(l+1)=j=1Nϵ=1MHi,ϵHj,ϵWϵ,ϵxj(l)P(l)

    其中:P(l)Rd×d$ \mathbf P^{(l)}\in \mathbb R^{d\times d} $ 为两个卷积层之间的可学习的参数矩阵。

    上式的括号内可以重新组织为:ϵ=1MHi,ϵWϵ,ϵj=1N(Hj,ϵxj(l)P(l))$ \sum_{\epsilon=1}^{M}H_{i,\epsilon}W_{\epsilon,\epsilon}\sum_{j=1}^{N}\left(H_{j,\epsilon}\mathbf{\vec x}_{j}^{(l)}\mathbf P^{(l)}\right) $ 。 其中:

    • 内层:对于每条超边ϵ$ \epsilon $ ,聚合它包含的所有节点representation 。其中权重为Hj,ϵ$ H_{j,\epsilon} $ (这里设定为 0/1 的二元值),并且节点 representation 经过P(l)$ \mathbf P^{(l)} $ 的线性投影。
    • 外层:聚合节点i$ i $ 所属的所有超边,其中权重为Hi,ϵ×Wϵ,ϵ$ H_{i,\epsilon}\times W_{\epsilon,\epsilon} $ 。由于本文中Wϵ,ϵ$ W_{\epsilon,\epsilon} $ 设置为 1,因此权重等于Hi,ϵ$ H_{i,\epsilon} $ (为 0/1 二元值)。

    根据 《Simplifying graph convolutional networks》 的建议,我们不使用非线性激活函数。对于Wϵ,ϵ$ W_{\epsilon,\epsilon} $ ,我们为每条超边分配相同的权重 1 。因此,上述等式的行归一化row normalization形式的矩阵方程为:

    Xh(l+1)=D1HWB1HXh(l)P(l)

    超图卷积可以看做是对超图结构执行 node-hyperedge-node 特征变换的两阶段 refinement

    • 乘法操作HXh(l)$ \mathbf H^\top\mathbf X_h^{(l)} $ 定义了从节点到超边的信息聚合。
    • 而在前者的基础上在左乘H$ \mathbf H $ 可以视为聚合从超边到节点的信息。W$ \mathbf W $ 用于对超边加权,而D$ \mathbf D $ 和B$ \mathbf B $ 用于归一化。
  3. 在将Xh(0)$ \mathbf X_h^{(0)} $ 通过了L$ L $ 个超图卷积层之后,我们将每一层获得的 item embedding 取平均,从而获得 final item embedding

    Xh=1L+1l=0LXh(l)

    这里直接取平均的优势是计算简单。但是,是否每一层都是同样地重要?可以考虑非均匀加权,通过模型自动学习权重(例如参数化的权重系数,或者 attention 机制)。

    可以通过聚合该 sessionitemrepresentation 来表达 session embedding 。我们遵循 SR-GNN 中使用的策略来 refine sessions=[is,1,is,2,,is,ms]$ \mathbf s = [i_{s,1},i_{s,2},\cdots,i_{s,m_s}] $ 的 embedding

    αt=fσ(W1xms+W2xt+c)s~g=t=1msαtxt,sh=W3[xmt;s~g]

    其中:

    • xms$ \mathbf{\vec x}_{m_s}^* $ 为 sessions$ \mathbf s $ 中 last itemis,ms$ i_{s,m_s} $ 的 embedding ,它表示当前用户意图。
    • xt$ \mathbf{\vec x}_t^* $ 为 sessions$ \mathbf s $ 中第t$ t $ 个 itemembedding
    • s~g$ \tilde {\mathbf{\vec s}}_g $ 为用户在整个 session 中的 general interest embedding,它通过 soft-attention 机制聚合 item embedding 来表示,其中 item 具有不同的重要性。
    • fRd,W1Rd×d,W2Rd×d$ \mathbf{\vec f}\in \mathbb R^d,\mathbf W_1\in \mathbb R^{d\times d},\mathbf W_2\in \mathbb R^{d\times d} $ 是用于学习 item 权重αt$ \alpha_t $ 的注意力机制的参数。
    • hybrid session embeddingsh$ \mathbf{\vec s}_h $ 拼接了xmt$ \mathbf{\vec x}_{m_t}^* $ 和s~g$ \tilde {\mathbf{\vec s}}_g $ 从而表示从超图结构推断出的完整的用户偏好。
    • W3Rd×(2d)$ \mathbf W_3\in \mathbb R^{d\times (2d)} $ 将 hybrid session embedding 转换到Rd$ \mathbb R^d $ 空间。
  4. 注意,根据我们在前面描述的动机,我们放弃了其它 session-based 推荐技术中使用的序列建模技术,如 GRU 单元和 self-attention 机制。当前意图是我们使用的唯一的时间因素 temporal factor,因此我们的模型非常高效且轻量级。

b. 线性图通道和卷积

  1. 线性图通道对超图的线性图进行编码。下图展示了我们如何将超图转换为它的线性图。线性图可以看做是一个简单的图,它包含 cross-session 信息并描述了超边的连通性。

  2. 在卷积操作之前,类似地,我们通过将X(0)$ \mathbf X^{(0)} $ 传入 SGU 从而获得特定于线性图通道的 item embeddingXa(0)$ \mathbf X^{(0)}_a $ 。由于线性图通道中不涉及任何 item,我们首先通过查找属于每个 sessionitem 并取这些 item embedding 的均值(从Xa(0)$ \mathbf X^{(0)}_a $ 中取得),从而来初始化特定于线性图通道的 session embeddingSa(0)$ \mathbf S_a^{(0)} $ 。

    L(G)$ L(G) $ 的关联矩阵 incidence matrix 定义为ARM×M$ \mathbf A\in \mathbb R^{M\times M} $ ,其中M$ M $ 为线性图中的节点数量,并且根据前面的定义有:Ap,q=Wp,q$ A_{p,q} = W_{p,q} $ 。令A^=A+I$ \hat{\mathbf A} = \mathbf A + \mathbf I $ ,其中I$ \mathbf I $ 为单位矩阵。令D^RM×M$ \hat{\mathbf D}\in \mathbb R^{M\times M} $ 为度矩阵,它是对角矩阵并且D^p,p=q=1MA^p,q$ \hat D_{p,p} = \sum_{q=1}^M \hat A_{p,q} $ 。那么线性图的卷积定义为:

    Sa(l+1)=D^1A^Sa(l)Q(l)

    其中:Q(l)Rd×d$ \mathbf Q^{(l)}\in \mathbb R^{d\times d} $ 为待学习的权重矩阵。

    在每个卷积层中,session 都从它的邻居那里收集信息。通过这种方式,学到的Sa(l+1)$ \mathbf S_a^{(l+1)} $ 可以捕获 cross-session 信息。同样地,我们将Sa(0)$ \mathbf S_a^{(0)} $ 通过L$ L $ 个图卷积层,然后将每一层获得的 session embedding 取平均,从而获得 final session embedding

    Sa=1L+1l=0LSa(l)

    这里直接取平均的优势是计算简单。但是,是否每一层都是同样地重要?可以考虑非均匀加权,通过模型自动学习权重(例如参数化的权重系数,或者 attention 机制)。

30.1.3 模型优化和推荐生成

  1. 给定一个 sessions$ \mathbf s $ ,我们对所有候选 itemiI$ i\in \mathcal I $ 计算推荐分z^i$ \hat z_i $ :

    z^i=(sh+sa)xi

    其中xi$ \mathbf{\vec x}_i $ 来自于X(0)$ \mathbf X^{(0)} $ 。拼接所有的z^i$ \hat z_i $ ,则我们得到推荐分的分布(未归一化的):z^=(z^1,,z^N)RN$ \hat{\mathbf{\vec z}} = \left(\hat z_1,\cdots,\hat z_N\right)^\top\in \mathbb R^N $ 。

    这里假设每个通道都是同样重要,是否可以区分不同通道的重要性?

    然后,我们使用一个 softmax 函数来计算每个 item 成为 sessionnext item 的概率:

    y^=softmax(z^)

    我们的学习目标为交叉熵损失函数(单个样本):

    Lr=i=1N[yilog(y^i)+(1yi)log(1y^i)]

    其中:y$ \mathbf{\vec y} $ 是 ground-truthone-hot 编码向量,yi$ y_i $ 为y$ \mathbf{\vec y} $ 的第i$ i $ 个分量。

    为简单起见,我们忽略了 L2 正则化项。我们通过 Adam 优化器来优化该损失函数。

30.1.4 增强 DHCN 的自监督学习

  1. 超图建模使得我们的模型能够实现显著的性能。然而,我们认为 session 数据的稀疏性可能会阻碍超图建模,这将导致推荐性能次优suboptimal。受到简单图上自监督学习成功实践的启发,我们创新地将自监督学习集成到网络中,从而增强超图建模。

  2. 自监督学习通过以下两个步骤进行:

    • 创建自监督信号:回想以下,在 DHCN 中,我们通过两个通道学习两组特定于通道的 session embedding。由于每个通道都编码一个图/超图,因此两组 embedding 对彼此知之甚少但是可以相辅相成。简单而言,这两组 embedding 可以作为彼此的 ground truth 而用于自监督学习,并且这种 one-to-one 映射被视为 label augmentation 。如果两个 session embedding 都表示同一个 session 的不同视图,那么我们将这一对标记为 ground-truth,否则标记为 negative

    • 对比学习:我们将 DHCN 中的两个通道视为刻画 session 不同方面的两个视图。然后对比了通过两个视图学到的两组 session embedding 。我们采用 InfoNCE ,并使用来自 ground-truth 样本(positive)和 negative 样本之间的二元交叉熵作为学习目标:

      Ls=[logσ(fD(sh,sa))+logσ(1fD(s~h,sa))]

      其中:

      • s~h$ \tilde{\mathbf {\vec s}}_h $ (或s~a$ \tilde{\mathbf {\vec s}}_a $ )是 negative 样本,它是通过对Sh$ \mathbf S_h $ ( 或Sa$ \mathbf S_a $ ) 进行逐行和逐列随机混洗得到的。
      • fD(,):Rd×RdR$ f_D(\cdot,\cdot): \mathbb R^d\times \mathbb R^d\rightarrow \mathbb R $ 是一个判别器函数,它以两个向量作为输入,然后对它们之间的一致性进行评分。我们简单地将两个判别器实现为两个向量之间的内积。

      这个目标函数被解释为最大化在不同视图中学到的 session embedding 之间的互信息(《Deep Graph Infomax》)。通过这种方式, 它们可以从彼此获取信息,从而改善它们各自在 item/session 特征抽取中的性能。尤其是那些仅包含几个 itemsession 可以利用 cross-session 信息来改善它们的 embedding

  3. 最后,我们将推荐任务和自监督任务统一为一个 primary&auxiliary 学习框架,其中推荐任务是主任务、自监督任务是辅助任务。联合学习的目标函数为:

    L=Lr+βLs

    其中β$ \beta $ 平衡了自监督任务的重要性。

30.2 实验

  1. 数据集:YoochooseDiginetica

    对于这两个数据集,我们遵循 SR-GNNNARM 从而删除仅包含一个 itemsession 、以及删除出现次数少于 5 次的 item ,然后将数据集拆分为训练集和测试集。

    • 对于 Yoochoose 数据集,测试集由最近几天的 session 组成。
    • 对于 Diginetica 数据集,测试集由最近几周的 session 组成。

    然后我们通过序列拆分的方式来进行数据集增强,即对于 sessions=[is,1,is,2,,is,ms]$ \mathbf s = [i_{s,1},i_{s,2},\cdots,i_{s,m_s}] $ ,我们生成多个标记序列:

    ([is,1],is,2),([is,1,is,2],is,3),,([is,1,is,2,,is,ms1],is,ms)

    由于 Yoochoose 的训练集非常大,我们遵循 SR-GNNSTAMPNARM 仅利用整个训练序列中最近的 1/641/4 ,从而形成两个新的训练集,并将它们命名为 Yoochoose1/64Yoochoose1/4

    数据集的统计信息如下表所示。

  2. baseline 方法:

    • item-KNN:推荐与 session 中先前点击的 item 所相似的 item,其中相似度使用 session 向量之间的余弦相似度。

      session 向量:长度为总的 session 个数。如果 item 出现在第i$ i $ 个 session 中,则该向量的第i$ i $ 个元素为 1

    • FPMC:是一种基于马尔科夫链的序列方法。

    • GRU4REC:利用 session-parallelmini-batch 训练过程,并采用 ranking-based 损失函数来建模用户行为序列。

    • NARM:一个 RNN-based 模型来建模用户序列行为。

    • STAMP:采用自注意力机制来增强 session-based 推荐。

    • SR-GNN:应用 gated graph convolutional layer 来学习 item transition

    • FGNN:将 session 中的 next item 推荐形式化为图分类问题。

    此外,我们评估了 DHCN 的另一个变体S2-DHCN$ S^2\text{-DHCN} $ (其中β=3$ \beta = 3 $ ),表示自监督版本。

    没有和 HyperRec 的对比。毕竟相关工作里已经提到了 HyperRec 。猜测原因是:HyperRec 是在不同数据集上评估的,因此作者这里没有把 HyperRec 拿来对比。

  3. 评估指标:Precision: P@KMean Reciprocal Rank: MRR@K

  4. 超参数配置:

    • 通用配置:embedding size = 100batch size = 100L2 正则化系数为105$ 10^{-5} $ 。
    • 对于 DHCN:采用两层架构,初始学习率为 0.001
    • 对于 baseline 模型:我们参考了他们在原始论文中报告的最佳参数配置,并在可用时直接报告他们的结果,因为我们使用相同的数据集和评估设置。
  5. 实验结果:整体性能如下表所示。我们没有像 NARM 一样报告 FPMC 的结果,因为在 Yoochoose1/4 数据集上运行 FPMC 的内存需求对于普通的深度学习计算平台而言太大了。

    可以看到:

    • GNNs-based 模型:SR-GNNFGNN 优于 RNN-based 模型。这些改进可以归因于 GNN 的巨大容量。但是,与 DHCN 带来的改进相比,这些改进是微不足道的。

    • DHCN 在所有数据集的所有 baseline 上都展示出压倒性的优势,尤其是在 Diginetica 数据集上。在分析了 Diginetica 的数据模式之后,我们发现许多 item 经常以 item-set 的形式在不同的 session 中共现,这是超图建模的理想选择。这可能是导致如此卓越结果的原因。

      SR-GNNFGNN 相比,我们的模型有两个优势:

      • 它使用超图来捕获超越 pairwise 的关系。通过将每个超边建模为团 clique(其中,团内的 item 之间完全相互连接) ,可以利用远距离 item 之间的关联。
      • 线性图考虑了 cross-session 信息。

      此外,需要注意的是,MRR 的改进比 Precision 的改进更为显著,这意味着 DHCN 不仅可以成功命中 groud-truth item,而且在 top-K 推荐列表中的排名也大大提升。

    • 虽然不如超图建模带来的效果那么可观,但是自监督学习带来的提升也还可以。具体而言,在两个平均 session 长度较短的数据集上,自监督学习发挥着更重要的作用,这与我们的假设一致:即 session 数据的稀疏性可能会阻碍超图建模的好处。同时,通过自监督学习来最大化DHCN 中两个视图之间的互信息可以解决这个问题。

  6. 消融研究:为了研究 DHCN 中每个模块的贡献,我们开发了 DHCN 的三个变体:

    • DHCN-H:仅使用超图通道。

      即:推荐分z^i=shxi$ \hat z_i = \mathbf{\vec s}_h^\top \mathbf{\vec x}_i $ 。

    • DHCN-L:仅使用线性通道。

      即:推荐分z^i=saxi$ \hat z_i = \mathbf{\vec s}_a^\top \mathbf{\vec x}_i $ 。

    • DHCN-NA:没有 soft attention 机制的版本。

      即:s~g=1ms×t=1msxt$ \tilde {\mathbf{\vec s}}_g = \frac{1}{m_s}\times \sum_{t=1}^{m_s} \mathbf{\vec x}_t^* $ 。

    我们将它们在 Yoochoose1/64Diginetica 数据集上与完整的 DHCN 进行比较。

    从下图可以看到:

    • 每个组件都对最终性能有贡献。
    • 超图通道贡献最大。当仅使用超图通道时(使用注意力机制),在这两个数据集上的效果远高于其它的两个变体。
    • 相比之下,仅使用线性图通道会导致模型在这两个数据集上的性能大幅下降。这可以证明建模高阶 item 相关性的有效性,以及捕获 cross-session 信息以捕获 item-level 信息的必要性。
    • 此外,移除超图通道中的 soft attention 也导致模型这两个数据集上的性能大幅下降,这与我们在前面的假设保持一致,即,session 中的 item 是时间相关的。

    根据这个消融实验,我们可以得出结论:一个成功的 session-based 推荐模型应该同时考虑时间因素temporal factor和高阶的item 相关性。

    这里时间因素是通过 last click item 来表现的。

  7. 超参数研究:

    • 不同 session 长度的影响:遵从 STAMP,我们将 Yoochoose1/64Digineticasession 分为两个不同长度的组,分别命名为 ShortLongShort 包含长度小于或等于 5session,而 Long 包含长度大于 5session。我们选择切分点为 5,是因为它是所有 session 中最常见的长度。

      然后我们比较了 DHCN, NARM, STAMP, SR-GNNShort 组和 Long 组上的 P@20 性能,结果如下表所示。可以看到:在这两个数据集上,在大多数情况下,DHCN 在不同 session 长度的情况下稳定地优于所有其它 baseline 模型,尤其是在 Long 组。

    • 模型深度的影响:我们将 DHCN 的层数范围限制在 {1, 2, 3, 4} 以内,结果如下图所示。可以看到:DHCN 对于层数不是很敏感。层数为 2 时效果最好,但是层数大于 2 时由于过度平滑导致模型性能略有下降。

    • 自监督学习的影响:我们向S2-DHCN$ S^2\text{-DHCN} $ 引入一个超参数β$ \beta $ 来控制自监督学习的重要性,其中β{0.1,1,3,5,10,20,50}$ \beta\in \{0.1,1,3,5,10,20,50\} $ 。实验结果如下图所示。可以看到:

      • 当使用自监督任务时,推荐任务获得了不错的收益。
      • 小的β$ \beta $ 可以在两个数据集上同时提升 Prec@20MRR@20
      • 随着β$ \beta $ 的增加,MRR@20 开始下降,但是 Prec@20 仍然保持增加。目前,我们不知道为什么 Prec@20 没有性能下降,希望我们在未来的工作中解决这个问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文