返回介绍

数学基础

统计学习

深度学习

工具

Scala

1.1 协同过滤模型

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

  1. CF 的概念源于以下思想:利用所有用户的协同行为collaborative behavior 来预测目标用户的行为。早期的方法使用 memory based 模型直接计算用户的行为相似度(user-based CF)、或者直接计算 item 的行为相似度 (item-based CF))。后来,基于矩阵分解的模型通过寻找编码了 user-item 交互矩阵的潜在空间从而流行开来。鉴于神经网络的复杂建模能力,目前神经 CF 的解决方案可以概括为两类: useritemrepresentation 建模、给定 representation 条件下的 user-item 交互的建模。

1.1.1 Representation Learning

  1. CF 中,令用户集合为U$ \mathcal U $ 、item 集合为V$ \mathcal V $ ,M=|U|$ M=|\mathcal U| $ 为用户数量,N=|V|$ N=|\mathcal V| $ 为 item 数量,user-item 交互行为矩阵为RRM×N$ \mathbf R\in \mathbb R^{M\times N} $ 。Representation Learning 的总体目标是学习一个 user embedding 矩阵PRM×d$ \mathbf P\in \mathbb R^{M\times d} $ 和一个 item embedding 矩阵QRN×d$ \mathbf Q\in \mathbb R^{N\times d} $ ,其中pu$ \mathbf{\vec p}_u $ 为P$ \mathbf P $ 的第u$ u $ 行表示用户u$ u $ 的 representationqi$ \mathbf{\vec q}_i $ 为Q$ \mathbf Q $ 的第i$ i $ 行表示 itemi$ i $ 的 representationd$ d $ 为 representation 维度。

    事实上,由于每个用户的行为数量是有限的(相比于N$ N $ ),因此 CF 中的一个关键挑战是 user-item 交互行为的稀疏性。不同类型的 representation learning 模型在输入数据、以及 representation modeling 等方面有所不同。我们将这些模型分为三类:历史行为聚合增强的模型history behavior aggregation enhanced models、基于自编码器的模型、图学习方法。为了便于说明,我们在下表中列出典型的、用于 CFrepresentation learning 模型。

a. 历史行为 attention 聚合的模型

  1. 通过将 one-hot User ID: UIDone-hot Item ID: IID 作为输入,经典的潜在因子模型将每个 UIDu$ u $ 关联一个 embedding 向量pu$ \mathbf{\vec p}_u $ 、将每个 IIDi$ i $ 关联一个 embedding 向量qi$ \mathbf{\vec q}_i $ 。研究人员进一步提出利用用户的历史行为来更好地建模 user representation,而不是仅采用 free embedding (即单个 ID embedding 向量)。例如:

    • Factored Item Similarity Model: FISM 将交互的 item embeddings 进行池化从而作为user representation vector
    • SVD++UID embeddingpu$ \mathbf{\vec p}_u $ 和交互历史 embedding (即 FISM user representation)相加从而作为 final user representation
  2. 这些模型依赖于简单的线性矩阵分解,并使用启发式heuristics 或等权重equal weights 的方式来聚合交互历史 interaction history。

    然而,不同的历史 item 对用户偏好建模的贡献应该不同。因此,一些研究人员将神经注意力机制 neural attention mechanism 集成到 history representation learning 中。一项具有代表性的工作是注意力协同过滤 Attentive Collaborative Filtering: ACF,它为每个交互 item 分配了一个 user-aware 注意力权重,从而表明该 itemuser representation 的重要性:

    r^u,i=(pu+jRuα(u,j)qj)qi

    其中:pu$ \mathbf{\vec p_u} $ 为用户u$ u $ 的 ID embeddingqi$ \mathbf{\vec q}_i $ 为 itemi$ i $ 的 ID emebddingRu$ \mathcal R_u $ 为用户u$ u $ 历史交互的 item 集合,α(u,j)$ \alpha(u,j) $ 为注意力权重,它被定义为:

    α(u,j)=exp(F(pu,qj))jRuexp(F(pu,qj))

    其中F(,)$ \mathcal F(\cdot,\cdot) $ 是一个函数,可以实现为 MLP 或者简单的内积。

    注意,α(u,j)$ \alpha(u,j) $ 依赖于用户u$ u $ 的 ID embedding 、历史行为 itemj$ j $ 的 ID embedding ,因此它是 user-aware 的。

    • 对于同一个用户,不同的 target item 不会改变注意力权重。
    • 对于不同的用户,即使是相同的历史行为序列,注意力权重也有所不同(因为不同用户的 ID embedding 不同)。
  3. 在实践中,历史 item 的影响可能取决于 target item。例如,购买手机壳与用户之前购买手机的相关性更高,而购买裤子与用户之前购买衬衫的相关性更高。因此,在考虑预测不同 target item 时,具有动态的 user representation 可能是有益的。为此,Neural Attentive Item Similarity: NAIS 模型将注意力机制修改为 target item-aware

    r^u,i=(jRuα(i,j)qj)qiα(i,j)=exp(F(qi,qj))[kRuexp(F(qi,qk))]β

    其中:

    • α(i,j)$ \alpha(i,j) $ 表示在预测用户u$ u $ 对 target itemi$ i $ 的偏好时,历史 itemj$ j $ 对 user representation 的贡献。
    • β$ \beta $ 是一个介于 01 之间(如 0.5 )的超参数,用于平滑不同长度的交互历史。

    这种方式的 user representation 依赖于 target item,因为无法离线预计算好 user representation ,因此也无法方便地部署到线上。

    类似的注意力机制已被用于从交互历史中学习 representation,例如 Deep Item-based CF: DeepICF 模型、Deep Interest Network: DIN 模型。因此,交互历史要比单个 user ID 包含更多信息,是 representation learning 的合适选择。

b. 基于自编码器的 representation learning

  1. 基于自编码器的模型基于以下思想:重构输入从而获得更好的 representation learning 。基于自编码器的模型将 incompleteuser-item 矩阵作为输入,并使用编码器学习每个 instancehidden representation ,然后进一步使用解码器基于这个 hidden representation 来重构输入。

    • 通过将每个用户的历史记录作为输入,基于自编码器的模型通过复杂的编码器神经网络学习每个用户的潜在 representation,并将学到的 user representation 馈入解码器网络从而输出每个用户的预测偏好。
    • 另一种方法是将每个 item 被所有用户的评分记录作为输入,并学习每个 item 的潜在 representation 从而重构每个 item 在所有用户上的预测偏好。
  2. 与自编码器的发展类似,基于自编码器的模型的扩展也可以分为两类:

    • 第一类利用自编码器变体,并将降噪自编码器、变分自编码器注入 CF。这些模型可以被视为使用复杂的深度学习技术来学习用户编码器或 item 编码器。
    • 第二类利用自编码器中 useritem 的对偶性,设计了两个并行编码器来学习 user representationitem representation,然后还使用内积来建模用户对 item 的偏好。
  3. 值得注意的是:基于自编码器的 CF 方法也可以归类为 historical behavior attention based 模型的扩展,因为这些方法采用深度神经网络来聚合历史行为。因此,为了简单起见,我们只简单介绍了基于自编码器的模型,并没有重复具体的技术细节。

c. 基于图的 representation learning

  1. CF 效应反映在一群用户的交互历史中。因此,使用群体性的交互历史有可能提高 representation 质量。从 user-item 交互图interaction graph 的角度来看,单个用户的交互历史相当于用户的一阶连接性first-order connectivity 。因此,一个自然的扩展是从 user-item 图结构中挖掘高阶连接性 higher-order connectivity 。例如,某个用户的二阶连接性由与相同 item 共同交互的相似用户所组成。

    幸运的是,随着社区中对图数据结构进行建模的图神经网络 Graph Neural Networks: GNNs 的成功,人们已经提出了一些研究来建模 user-item 二部图结构,从而用于基于神经图neural graphrepresentation learning 。给定 user-item 二部图,就像许多经典的基于潜在因子的模型一样,令P(0)$ \mathbf P^{(0)} $ 表示 free user latent matrixQ(0)$ \mathbf Q^{(0)} $ 表示 free item latent matrix,即 0 阶的 user embeddinigitem embedding 。这些基于神经图的模型以邻域聚合的方式迭代地更新(l+1)$ (l+1) $ 阶的 user embeddingitem embedding 。例如,每个用户u$ u $ 的(l+1)$ (l+1) $ 阶的 user embedding 更新为:

    au(l+1)=Agg(qj(l)jRu)pu(l+1)=ρ(W(l)[pu(l),au(l+1)])

    其中:

    • qj(l)$ \mathbf{\vec q}_j^{(l)} $ 为 itemj$ j $ 在第l$ l $ 层的 representationpu(l)$ \mathbf{\vec p}_u^{(l)} $ 为用户u$ u $ 在第l$ l $ 层的 representation
    • Ru$ \mathcal R_u $ 表示用户u$ u $ 的交互 item 集合,au(l+1)$ \mathbf{\vec a}_u^{(l+1)} $ 为用户交互 itemrepresentation 在第l$ l $ 层的聚合。
    • W(l)$ \mathbf W^{(l)} $ 为待学习的投影矩阵,[,]$ [\cdot,\cdot] $ 为向量拼接操作,ρ()$ \rho(\cdot) $ 为激活函数。

    每个 itemi$ i $ 的(l+1)$ (l+1) $ 阶 item embedding 更新也是类似的。最后,每个用户(或者 item)的 final embedding 可以视为该用户(或者 item)在每一层的 embedding 的组合。

  2. 上述步骤可以视为 user-item 二部图中的 embedding 传播。使用预定义的层数L$ L $ ,则 user embedding representationitem embedding representation 生成步骤中直接编码了高达L$ L $ 阶的子图结构。例如:

    • SpectralCF 利用 CF 的谱图卷积 spectral graph convolution
    • GC-MCNGCF 建模了原始空间中 user-item 交互的图卷积,在实践中更加有效effective 和高效efficient

    最近,研究人员认为,这些基于神经图的 CF 模型与经典 GNN 不同,因为 CF 模型不包含任何用户特征或 item 特征。直接复用 GNN 中的 embedding 变换(即W(l)$ \mathbf W^{(l)} $ 权重矩阵)和非线性激活函数(即ρ()$ \rho(\cdot) $ 函数)等复杂的步骤可能不是一个好的选择。人们已经提出了简化的神经图 CF 模型,包括 LR-GCCFLightGCN,它们消除了不必要的深度学习操作。这些简化的基于神经图的模型在实践中显示出卓越的性能,而无需仔细选择激活函数。

1.1.2 交互建模

  1. pu$ \mathbf{\vec p}_u $ 和qi$ \mathbf{\vec q}_i $ 分别表示从 representation 模型中学到的用户u$ u $ 和 itemi$ i $ 的 embedding ,交互建模组件interaction modeling component 旨在建模交互函数 interaction function,其中交互函数根据user representationitem representation 来估计用户对 target item 的偏好。在下文中,我们描述了如何根据学到的 embedding 来建模用户的预估偏好,记做r^u,i$ \hat r_{u,i} $ 。为了便于解释,我们在下表中总结了交互建模的三个主要类别:基于经典内积的方法、基于距离的方法、基于神经网络的方法。

a. 基于经典内积的方法

  1. 大多数之前的推荐模型依赖于 user embeddingitem embedding 之间的内积来估计 user-item pair score

    r^u,i=puqi

    尽管基于内积的方法取得了巨大的成功并且非常简单,但是之前的工作表明:简单地执行内积有两个主要限制:

    • 首先,违反了三角不等式。也就是说,内积仅鼓励 user representation 和历史itemrepresentation 相似,但是无法保证 user-user 关系、item-item 关系之间的相似性传播similarity propagation
    • 其次,仅建模线性交互,可能无法捕获到用户和 item 之间的复杂关系。

    然而,在交互建模方面,与复杂的函数和度量相比,简单的内积要高效的多,尤其是在在线推荐和大规模推荐方面。

b. 基于距离的方法

  1. 为解决第一个问题(即,相似性传播),一些工作借鉴了翻译原理的思想,并使用距离度量来作为交互函数。距离度量固有的三角不等式在帮助捕获用户和 item 之间的潜在关系方面发挥着重要作用。例如,如果用户u$ u $ 倾向于购买 itemi$ i $ 和j$ j $ ,则itemi$ i $ 和j$ j $ 的 representation 应该在潜在空间中接近。

    • 为此,CML《Collaborative metric learning》)在欧氏空间中最小化每个 user-item 交互 <u, i>之间的距离:du,i=puqi22$ d_{u,i} = \left\|\mathbf{\vec p}_u - \mathbf{\vec q}_i\right\|_2^2 $ 。

    • TransRec《Translation-based recommendation》)不是最小化每个观察到的 user-item pair 之间的距离,而是利用翻译原理建模用户的序列行为。

      具体而言,用户u$ u $ 的 representation 被视为 itemi$ i $ 的 representation 和接下来要访问的 itemj$ j $ 的 representation 之间的翻译向量 translation vector,即qj+puqi$ \mathbf{\vec q}_j + \mathbf{\vec p}_u\simeq \mathbf{\vec q}_i $ 。

    • 与使用简单的 metric learningCML 不同( CML 假设每个用户的 embedding 与该用户喜欢的每个 item embedding 同样地接近),LRML《Latent relational metric learning via memory-based attention for collaborative ranking》)引入了关系向量r$ \mathbf{\vec r} $ 来捕获 user-item pair 之间的关系。正式地,得分函数定义为:

      su,i=pu+rqiF2

      其中关系向量rRd$ \mathbf{\vec r}\in \mathbb R^d $ 是使用一个 memory matrixM$ \mathbf M $ 上的神经注意力机制构建的。MRm×d$ \mathbf M\in \mathbb R^{m\times d} $ 为可训练的 memory 模块,m$ m $ 为 memory 槽的个数。因此r$ \mathbf{\vec r} $ 是m$ m $ 个 memory 槽的 attentive sum 。结果,关系向量不仅保证了三角不等式,而且获得了更好的表达能力。

c. 基于神经网络的度量

  1. 与使用线性度量的上述方法不同,最近的研究采用了多种神经网络架构(从 MLPCNN 到自编码器),作主要构建块 main building block 来挖掘 user-item 交互的复杂和非线性模式。

    • 研究人员试图用 MLP 来代替 user-item 之间的相似性建模,因为 MLP 是对任何复杂连续函数进行建模的通用函数逼近器。NCF 采用 MLP 建模每个 user-item pair 之间的交互函数:r^u,i=fMLP(pu||qi)$ \hat r_{u,i} = f_\text{MLP}\left(\mathbf{\vec p}_u|| \mathbf{\vec q}_i\right) $ 。此外,NCF 还在交互建模中加入了通用的 MF 组件,从而同时利用了 MF 的线性和 MLP 的非线性来提高推荐质量。
    • 研究人员还提出利用 CNN based 架构来建模交互。这种模型首先通过 user embeddingitem embedding 的外积来生成 interaction maps ,从而显式地捕获 embedding 维度之间的 pairwise correlations《Outer product-based neural collaborative filtering》《Personalized top-n sequential recommendation via convolutional sequence embedding》)。这些基于 CNNCF 模型侧重于 representation 维度之间的高阶相关性。然而,这种性能提升是以增加模型复杂度和时间成本为代价的。
    • 此外,一系列研究利用自编码器直接在解码器部分完成 user-item 交互矩阵的补全。由于编码器和解码器可以通过神经网络来实现,这种非线性变换的 stacks 使得推荐器更有能力从所有历史交互 item 的复杂组合中建模 user representation

1.1.3 总结

  1. 最近的许多研究表明 GNNuser representation learningitem representation learning 中的优越性。我们将其成功归因于:

    • 基本的数据结构,其中 user-item 交互可以天然地表示为 user 节点和 item 节点之间的二部图。
    • GNN 可以通过消息传播机制对 user-item 交互关键的协同过滤信号collaborative filtering signal 进行显式的编码。

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

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

发布评论

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