推荐算法综述

一、A Survey on Accuracy-oriented Neural Recommendation: From Collaborative Filtering to Information-rich Recommendation[2022]

  1. 推荐的研究可以追溯到 1990 年代(《Using collaborative filtering to weave an information tapestry》),在这个时代,早期的工作已经为 content-based filteringCollaborative Filtering: CF 开发了很多启发式方法。

    受到 Netflix 挑战赛的普及,矩阵分解Matrix Factorization: MF方法(《Matrix factorization techniques for recommender systems》)后来成为很长一段时间(从 2008年到 2016 年 )的主流推荐模型(《Multiverse recommendation: n-dimensional tensor factorization for context-aware collaborative filtering》《Factorizing personalized markov chains for next-basket recommendation》)。然而,矩阵分解模型的线性特性使得它在处理大型复杂数据时效果较差,例如复杂的 user-item 交互,并且 item 可能包含需要彻底理解的复杂语义(例如文本和图像)。

    大约在 2010年代中期的同一时间,深度神经网络(又叫做深度学习)在机器学习中的兴起已经彻底改变了包括语音识别、计算机视觉、自然语言处理在内的多个领域。深度学习的巨大成功源于神经网络的强大表达能力,这特别有利于从具有复杂模式的大数据中学习。这自然为推荐技术的进展带来了新的机遇。毫无疑问,在过去的几年里,出现了很多关于开发推荐系统的神经网络方法的工作。在这项工作中,论文《A Survey on Accuracy-oriented Neural Recommendation: From Collaborative Filtering to Information-rich Recommendation》旨在对使用神经网络的推荐模型(称作 neural recommender models)进行系统性的评价。这是当前推荐研究中最蓬勃发展的课题,不仅近年来取得了许多令人振奋的进展,而且显示出成为下一代推荐系统技术基础的潜力。

  2. 相关工作:鉴于推荐研究的重要性和受欢迎程度,最近发表的一些 survey 也回顾了该领域,如《Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions》(2005)《Collaborative filtering beyond the user-item matrix: A survey of the state of the art and future challenges》(2014)《Cross domain recommender systems: A systematic literature review》(2017)《Explainable recommendation: A survey and new perspectives》(2020)《Graph learning based recommender systems: A review》(2021) 。这里我们简要讨论下我们与这些工作的主要区别,从而强调我们这个 survey 的必要性和意义。

    现有的 survey 包括两个主要部分:

    • 第一个部分侧重于具体的主题或方向,如协同过滤中的辅助信息的利用(《Collaborative filtering beyond the user-item matrix: A survey of the state of the art and future challenges》)、跨域推荐(《Cross domain recommender systems: A systematic literature review》)、可解释性推荐(《Tem: Tree-enhanced embedding model for explainable recommendation》)、知识图谱增强的推荐(《A survey on knowledge graph-based recommender systems》)、序列推荐(《Deep learning for sequential recommendation: Algorithms, influential factors, and evaluations》《Sequence-aware recommender systems》)、基于会话的推荐(《A survey on session-based recommender systems》)。
    • 另一部分遵循深度学习的分类法来总结推荐方法。例如,《Deep learning based recommender system: A survey and new perspectives》 将关于推荐方法的讨论组织为 MLP basedautoencoder basedRNN basedattention based《A review on deep learning for recommender systems: challenges and remedies》《Recommendation system based on deep learning methods: a systematic review and new directions》 也是类似的 survey。这些 survey 主要比较了使用各种深度学习方法进行推荐的技术差异。

    和现有 survey 不同,我们的 survey 是从推荐建模的角度以准确率为目标进行组织的,涵盖了最典型的推荐场景,如 CF 方法、content-enriched 方法、时序 temporal/sequential 的方法。这不仅有助于研究人员了解深度学习技术为何、以及何时起作用,而且有助于从业者为特定推荐场景设计更好的解决方案 。

  3. 文章组织方式:无论推荐领域和场景如何,我们都可以将 learning to recommend 问题抽象为:

    y^u,i,c=f(Du,Di,Dc)

    也就是说,学习预测函数 f(,,) 来估计用户 u 在上下文 c 下偏好 item 的可能性。其中,数据 Du 描述用户 u、数据 Di 描述 item i 、数据 Dc 描述上下文 c 。在这样做的过程中,我们允许一个统一的框架来总结神经推荐模型:

    • 首先我们回顾了协同过滤collaborative filtering: CF 模型。协同过滤模型构成了个性化推荐的基础,是推荐领域中研究最多的主题。协同过滤模型可以被视为忽略上下文数据 Dc ,并仅仅使用 DuDi 中的 id 或者交互历史。
    • 然后我们回顾了将用户或 item 的辅助信息集成到推荐中的模型,例如用户的画像和社交网络、item 的属性和知识图谱。我们将它们称作 content-enriched 模型,它们通过集成辅助信息到 DuDi 中从而自然地扩展了协同过滤,但是它们也忽略了上下文数据 Dc
    • 最后我们回顾了使用上下文信息的模型。上下文数据与每个 user-item 交互相关联,但是不属于用户内容或 item 内容,如时间time、位置 location、历史交互序列。除了用户相关数据 Duitem 相关数据 Di 之外,上下文感知context-aware 模型还基于上下文数据 Dc 进行预测。由于篇幅有限,我们聚焦于时间上下文,这是最常见的上下文数据之一。

    下图说明了用于推荐建模的典型数据和三种模型类型。值得注意的是,不同的模型是针对不同的推荐场景而设计的。尽管如此,在很多情况下,我们可以对模型的组件进行简单的调整,使其适合(至少在技术上可行)另一种场景。例如:

    • 许多 CF 模型被设计为首先获得 user representationitem representation,然后在给定这些 user representationitem representation 的情况下学习预测函数。为了使得它们 content-enriched,我们只需要通过内容建模来增强 representation learning 组件。
    • 另一个例子是我们可以将上下文信息视为用户数据的一部分,即构建 Du,c 来代替 Du ,从而使得 content-enriched 模型也具有上下文感知的能力。

    尽管这些调整后的模型可能没有正式提出或公布,但是它们可以很简单地获得,值得在实际应用中探索。这种设计灵活性可以归因于神经推荐模型的逐层架构layer-wise architecture,其中不同的层是为不同的目标而设计的。我们希望这个 survey 能够提供一个清晰的路线图,从而促进从业者理解和更好地设计模型来服务于他们的目标。

1.1 协同过滤模型

  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 中,令用户集合为 Uitem 集合为 VM=|U| 为用户数量,N=|V|item 数量,user-item 交互行为矩阵为 RRM×NRepresentation Learning 的总体目标是学习一个 user embedding 矩阵 PRM×d 和一个 item embedding 矩阵 QRN×d,其中 puP 的第 u 行表示用户 urepresentationqiQ 的第 i 行表示 item irepresentationdrepresentation 维度。

    事实上,由于每个用户的行为数量是有限的(相比于 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 作为输入,经典的潜在因子模型将每个 UID u 关联一个 embedding 向量 pu 、将每个 IID i 关联一个 embedding 向量 qi 。研究人员进一步提出利用用户的历史行为来更好地建模 user representation,而不是仅采用 free embedding (即单个 ID embedding 向量)。例如:

    • Factored Item Similarity Model: FISM 将交互的 item embeddings 进行池化从而作为user representation vector
    • SVD++UID embedding pu 和交互历史 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 为用户 uID embeddingqiitem iID emebddingRu 为用户 u 历史交互的 item 集合,α(u,j) 为注意力权重,它被定义为:

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

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

    注意,α(u,j) 依赖于用户 uID embedding 、历史行为 item jID 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) 表示在预测用户 utarget item i 的偏好时,历史 item juser representation 的贡献。
    • β 是一个介于 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) 表示 free user latent matrixQ(0) 表示 free item latent matrix,即 0 阶的 user embeddinigitem embedding 。这些基于神经图的模型以邻域聚合的方式迭代地更新 (l+1) 阶的 user embeddingitem embedding 。例如,每个用户 u(l+1) 阶的 user embedding 更新为:

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

    其中:

    • qj(l)item j 在第 l 层的 representationpu(l) 为用户 u 在第 l 层的 representation
    • Ru 表示用户 u 的交互 item 集合,au(l+1) 为用户交互 itemrepresentation 在第 l 层的聚合。
    • W(l) 为待学习的投影矩阵,[,] 为向量拼接操作,ρ() 为激活函数。

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

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

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

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

1.1.2 交互建模

  1. puqi 分别表示从 representation 模型中学到的用户 uitem iembedding ,交互建模组件interaction modeling component 旨在建模交互函数 interaction function,其中交互函数根据user representationitem representation 来估计用户对 target item 的偏好。在下文中,我们描述了如何根据学到的 embedding 来建模用户的预估偏好,记做 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 倾向于购买 item ij ,则item ijrepresentation 应该在潜在空间中接近。

    • 为此,CML《Collaborative metric learning》)在欧氏空间中最小化每个 user-item 交互 <u, i>之间的距离:du,i=puqi22

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

      具体而言,用户 urepresentation 被视为 item irepresentation 和接下来要访问的 item jrepresentation 之间的翻译向量 translation vector,即 qj+puqi

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

      su,i=pu+rqiF2

      其中关系向量 rRd 是使用一个 memory matrix M 上的神经注意力机制构建的。MRm×d 为可训练的 memory 模块,mmemory 槽的个数。因此 rmmemory 槽的 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) 。此外,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 进行显式的编码。

1.2 Content-Enriched 模型

  1. 在协同过滤中,item representation 仅对协同信号(用户的行为模式)进行编码,但是忽略了语义相关性 semantic relatedness 。为了增强 representation learning,许多研究人员跳出了 user-item 交互的范畴并利用辅助数据。辅助数据可以分为两类:基于内容content based 的信息、上下文感知context-aware 数据。

    • 基于内容的信息:包含用户关联的内容、item 关联的内容,例如常规的用户特征和 item 特征、文本内容(如 item tagitem 文本描述、item 评论)、多媒体描述(如图像信息、视频信息、音频信息)、用户社交网络、知识图谱。

      我们根据可用的内容信息将相关工作分为五类:用户和 item 的常规特征、文本内容信息、多媒体信息、社交网络、知识图谱。

    • 上下文感知数据:包含用户做出 item 决策时的环境,这通常表示一些不在用户或 item 范畴内的描述。上下文信息包括时间time 、位置location、以及从传感器收集到的特定数据(如速度和天气)等等。由于篇幅有限,我们讨论最典型的上下文数据:时间数据。

    我们在下图中说明了一些代表性工作。

1.2.1 建模通用特征交互

  1. 分解机 Factorization Machine: FM 提供了特征交互建模的直观思想。由于特征通常是稀疏的,FM 首先将每个特征 i 嵌入到 latent embedding vi 中,并将任何两个特征实例 xi (如,年龄)和 xj (如,性别)的二阶交互 second-order interaction 建模为:(xixj)×vivj 。自然地,FM 对二阶交互显式地建模,并使用 embedding based 模型来降低参数规模从而计算任意两个特征的相似度。

    • Field-aware FM: FFMFM 扩展而来,它通过 field aware 特性来使用多个 latent embeddings 从而扩展每个特征。
    • 高阶 FM 也从 FM 扩展而来,它通过直接扩展了二阶特征交互而来。

    尽管这些模型能够建模高阶特征交互,但是它们在建模过程中会受到 noisy 的特征交互的影响。

    研究人员探索了采用神经网络自动发现复杂的高阶特征交互,从而进行 CTR 预估和推荐的可能性。如下表所示,除了基于 FM 的方法之外,当前关于该主题的相关工作可以分为三类:隐式 MLP 结构、显式 K 阶建模、树增强模型。

a. 基于 MLP 的高阶建模
  1. 由于特征交互是 hidden 的,研究人员建议首先通过一个 embedding layer 来嵌入特征,然后利用 MLP 来发现高阶相关性。由于 MLP 是黑盒方法,因此可以将这类方法视为对特征交互进行隐式地建模,并且我们不知道 MLP 结构的模型的输出中会产生什么样的特征交互。由于 MLP 存在训练困难,一些研究人员提出了预训练技术。其他一些研究人员在 MLP 中注入特定结构从而更好地捕获特征交互:

    • DeepCrossing 设计了残差结构,从而在每两层 MLP 之后添加 original input
    • NFM 架构在 MLP layer 之前提出了 Bi-Interaction 操作。
    • PNN 同时建模了bit-wisefeature embedding 交互,以及vector-wise 的特征交互。

    除了复杂的高阶交互之外,还有一种有效的方法是将 MLP based 的高阶建模与经典的线性模型相结合(如 Wide&DeepDeepFM)。

b. 用于 K 阶建模的 Cross Network
  1. 交叉网络cross network不同于 MLP based 的算法,它具有精心设计的交叉网络操作,因此一个 K 层的交叉网络就可以对最高 K 阶的特征交互进行建模。第 khidden layer 的输出 xk 通过交叉运算来计算:

    xk=x0xk1wk+bk+xk1

    其中 x0xk1Rd×d 为向量笛卡尔积得到的矩阵,dembedding 维度。

    xDeepFM 不是在 bit-wise level 进行交叉操作,而是在 vector-wise level 显式地应用交叉交互。这些类型的模型能够学习有界bounded-degree 的特征交互。

c. 树增强模型
  1. 由于树可以天然地表达交叉特征,研究人员将树作为一个代理proxy,从而用于推荐中的交叉特征解释 cross feature explanation 。具体而言,TEM 首先利用决策树以交叉特征的形式提取特征的高阶交互,然后将交叉特征的 embedding 输入到注意力模型中进行预测。因此,决策树的深度决定了特征交互的最高阶次。此外,通过无缝结合 embeddingtree based 模型,TEM 能够统一它们的优势:强大的表达能力和可解释性。

1.2.2 建模文本内容

  1. 神经网络技术彻底改变了自然语言处理 Natural Language Processing: NLP。这些神经网络 NLP 模型能够对文本内容进行 multi-level 的、自动的 representation learning,并且可以结合在推荐框架中从而实现更好的 user semantic embedding learningitem semantic embedding learning 。鉴于上述基于神经网络的 NLP 模型,我们讨论了一些基于上述技术的、典型的文本增强推荐模型。

    用于推荐的文本内容输入可以分为两类:

    • 第一类是与 item 或用户相关联的内容描述,例如文章的摘要、用户的内容描述。
    • 第二类是链接 user-item pair,例如用户将 tag 添加到 item 上、或用户对 item 撰写评论。

    对于第二类,大多数模型聚合了与每个用户或每个 item 相关的内容。此时,第二类内容信息退化为第一类。

    接下来,我们不区分输入文本内容的数据类型,并将上下文内容contextual content 建模的相关工作总结为以下几类:基于自编码器的模型、word embedding、注意力模型、用于推荐的文本解释。

a. 基于自编码器的模型
  1. 通过将 item 内容视为原始特征,例如 bag-of-words representationitem tag representation,这些模型使用自编码器及其变体来学习 itembottleneck hidden content representation

    例如,Collaborative Deep Learning: CDL 同时学习每个 item iembedding qi 为两部分的组合:通过堆叠降噪自编码器stacked denoising autoencoder 学习来自 item 内容 xihidden representation,以及一个并未编码到内容中的辅助 embedding θi。即:

    qi=fe(xi)+θi,θiN(0,σ2)

    其中:

    • fe() 使用自编码器将原始内容输入转换为 bottleneck hidden vector
    • θi 为未在 item 内容中捕获的 free item latent vector (类似于许多经典的、基于潜在因子的 CF 模型),N 为正态分布,σ2 为正态分布的方差。

    在模型优化过程中,目标函数是同时优化来自用户历史行为的 rating based 的损失,以及来自autoencoder 的内容重建损失:

    L=LR(R,R^)+λLX(X,fd(fe(X)))

    其中:

    • LR(,)rating based 的损失,LX(,) 为内容重建损失,λ 为衡量两个损失项之间相对权重的超参数。
    • Ruser-item 评分矩阵,R^ 为预估评分。
    • fd() 为解码器,fe() 为编码器,X 为输入内容。
  2. 在这个基础的基于自编码器的推荐模型之后,一些研究提出了改进从而考虑内容信息的唯一性 uniqueness 。例如,人们提出了 Collaborative Variational AutoEncoder: CVAE ,它不是学习 item 内容的确定性的 vector representation,而是用变分自编码器同时恢复评分矩阵和辅助内容信息。

    研究人员还建议利用 item 内容中的 item 邻居信息来更好地表达 bottleneck representation《Embedding-based news recommendation for millions of users》 提出了一种具有弱监督的降噪自编码器来学习每个 item 的分布式 representation vector 。此外,由于用户和 item 都可以关联内容信息,因此人们已经提出了基于双自编码器dual autoencoder的推荐模型。

b. 利用 Word Embedding 来推荐
  1. 自编码器为无监督 feature learning 提供了通用的神经解决方案,它不考虑文本输入的唯一性 uniqueness。最近,研究人员提出利用 word embedding 技术来获得更好的内容推荐。随着 TextCNN 的成功,人们提出了 Convolutional Matrix Factorization: ConvMF 从而将 CNN 集成到概率矩阵分解中。令 xi 表示 item i 的文本输入,则 item 潜在 embedding 矩阵 Q 表示为以 embedding representation 为中心的高斯分布:

    p(QW,X,σ2)=i=1|V|N(qiTextCNN(W,xi),σ2)

    其中: WTextCNN 的参数,X 为所有文本拼接的输入矩阵;σ 为高斯分布的标准差;qiitem iembedding 向量。

    除了 CNN based 模型之外,研究人员还采用了各种 state-of-the-art 内容embeddign 技术(例如RNN ),从而用于 item 内容 representation

  2. 评论信息广泛出现在推荐 application 中,是用户表达对 item 的感受的自然形式。给定用户的评分记录和相关评论,大多数基于评论的推荐算法将用户(或 item)的历史评论文本聚合为用户内容输入 D(u)(或 item 内容输入 D(i))。

    深度模型 DeepCoNN 是基于评论的推荐。如下图所示,DeepCoNN 由两个用于内容建模的并行 TextCNN 组成:

    • 一个专注于通过用户 u 撰写的评论内容 D(u) 来学习用户行为。
    • 另一个专注于通过 item i 收到的评论内容 D(i) 来学习 item embedding

    然后,DeepCoNN 提出了一种分解机来学习 user latent vectoritem latent vector 之间的交互。具体而言,DeepCoNN 可以表述为:

    r^u,i=FM(TextCNN(Du),TextCNN(Di))

  3. 许多研究实验发现,评论文本的最大预测能力来自于 target usertarget item 的特定评论。由于 user-item pair 的相关评论在测试阶段不可用,因此人们提出了 TransNet 来解决 target 评论信息不可用时的情况。

    TransNet 有一个 source network ,该 source network 是不包含联合评论joint review revu,iDeepCoNN。此外,TransNet 也有一个 target network,该 target network 建模当前的 user-item pair (u,i) 的联合评论revu,i。因此,即使没有用户对 item 的评论,target network 也可以近似被测试的 user-item pair 的、预估的评论 rev^u,i

c. 注意力模型
  1. 注意力机制也被广泛用于 content enriched 推荐系统。给定 item 的文本描述,人们已经提出了基于注意力的模型来为不同的内容分配注意力权重,以便为 item content representation 自动选择信息元素。

    • 例如,给定一条推文,基于注意力的 CNN 会学习推文中的 trigger words ,从而获得更好的标签推荐(《Hashtag recommendation using attention-based convolutional neural network》)。
    • 利用用户的历史评分item,人们提出了一种注意力模型来选择性地聚合每个历史 itemcontent representation,从而用于用户 content preference embedding 建模。
    • 给定 user collaborative embeddingsitem collaborative embeddings ,注意力网络也被设计用于捕获这两种数据源之间的相关性correlation 和对齐性alignment
    • 研究人员还提出了一种 co-evolutionarytopical 注意力正则化矩阵分解模型,其中用户注意力特征从结合了用户评论的注意力网络中学习。
    • 对于基于评论的推荐,研究人员认为,大多数基于内容的 user representationitem representation 模型忽略了 user-item pair 之间的交互行为,并且提出了一种叫做 DAML 的双注意力模型来学习相互增强的 user representationitem representation
    • 由于 item 内容有时以多视图形式(如标题、正文、关键字等)呈现,多视图注意力网络通过聚合来自不同视图的多个 representation 来学习统一的 item representation
    • 通过文本描述和图像视觉信息,人们利用 co-attention 来学习两种模式之间的相关性,从而更好地学习 item representation
d. 用于推荐的文本解释
  1. 人们开始对为推荐提供文本解释(而不是提高推荐准确率)的兴趣越来越大。当前使用文本输入的可解释性推荐解决方案可以分为两类:基于抽取的模型、基于生成的模型。

  2. 基于抽取的模型:基于抽取的模型聚焦于选择重要的文本片段进行推荐解释。注意力技术被广泛用于基于提取的可解释推荐,学到的注意力权重经验性地展示了不同元素对模型输出的重要性。之后,抽取注意力权重较大的文本片段作为推荐解释。

    除了从评论中抽取文本片段之外,还有其他方法可以抽取有用的文本信息进行解释,例如 review-level 的解释(即,评论粒度)。

  3. 基于生成的模型:随着语言生成技术的巨大成功,基于生成的模型引起了越来越多的关注。同时给定用户的评分记录和评论,这些模型的关键思想是设计一个 encoder-decoder 结构,其中编码器部分对 user and item 的、相关的 embedding 进行编码,解码器生成与相应 user-item 评论文本的 ground truth 相似的评论。

    NRT 是一种 state-of-the-art 模型,它可以同时预测评分并生成评论。编码器部分输入 one-hot user representationone-hot item representation 并输出 user latent embeddingitem latent embedding ,解码器基于 RNN 结构并生成评论,最后 MLP 结构预测评分。由于我们既有ground truth 的评分记录,也有相应的评论记录,所以评分预测和评论生成这两个任务可以在多任务框架中进行训练。

    同时,additional information 和更高级的 encoder-decoder 结构也应用于解释生成。例如,一些方法在编码器中考虑了用户属性和 item 属性,另一些方法在编码器中考虑了多模态 item 数据,还有一些方法在解码器中设计了一个高级的注意力 selector

1.2.3 建模多媒体内容

  1. 这里我们介绍在推荐系统中建模多媒体内容的相关工作。为了便于解释,我们在下表中总结了不同类型输入数据的、基于多媒体推荐的相关工作。

a. 建模图像信息
  1. 当前的图像推荐解决方案可以分为两类:基于内容的模型、混合推荐模型。基于内容的模型利用视觉信号来构建 item 视觉 representation。相比之下,混合推荐模型通过 item 视觉建模来缓解 CF 中的数据稀疏问题。

  2. 基于图像内容的推荐:基于图像内容的模型适用于严重依赖视觉影像的推荐场景(如时尚推荐)或用户 feedback 很少的新品。

    • 由于视觉图像通常关联文本描述(如tag、标题),因此研究人员设计了一些非个性化的推荐系统从而为图像提供 tag 。这些模型应用 CNN 来提取图像视觉信息,并应用 content embedding 模型来获取文本 embedding

      然后,为了建模视觉信息和文本信息之间的相关性,这些模型要么将文本和图像投影到同一个空间、要么拼接来自不同模态的 representation、要么设计 co-attention 机制从而更好地描述 item

      这是为图像打 tag,跟图像本身属性有关,与用户无关,因此为非个性化的。

    • 对于个性化图像推荐,一个典型的解决方案是将 useritem 投影在同一视觉空间中,其中 item 视觉空间来自于 CNNuser 视觉空间要么来自用户喜欢的 item 、要么来自以用户画像为输入的深度神经网络。

      研究人员还认为,CNN 聚焦于全局的 item 视觉 representation,没有细粒度的建模。因此,人们已经提出了一些复杂的图像语义理解模型image semantic understanding models 来提高图像推荐性能。

      • 例如,为了给人们推荐美妆 makeups,首先将与美妆相关的面部特征分类为结构化的 coding,然后将面部属性输入到基于深度学习的推荐系统,从而用于个性化的美妆合成personalized makeup synthesis
      • 在一些基于视觉的推荐领域,如时尚领域,每个产品都关联多个语义属性。为了利用用户对详细时尚属性的语义偏好,通过在细粒度的、可解释性的语义属性空间中投影用户和 item,人们提出了一种语义属性的可解释性推荐系统。
  3. 混合推荐模型:混合模型同时利用协同信号和视觉内容进行推荐,这可以缓解 CF 中的数据稀疏性问题并提高推荐性能。有研究人员提出先提取 item 视觉信息作为特征,然后将 item 视觉特征馈入分解机进行推荐。最近的研究提出了混合视觉推荐的端到端学习框架,而不是效果较差的、两步的学习过程。

    • Visual Bayesian Personalized Ranking: VBPR 是利用视觉内容进行统一的混合推荐的少数尝试之一。在 VBPR 中,每个 user(item) 被投影到两个潜在空间中:一个视觉空间(该视觉空间基于视觉特征从 CNN 投影而来)、一个协同潜在空间collaborative latent space (该协同潜在空间捕获了用户潜在偏好)。然后,给定一个关联图像 xiuser-item pair (u,i),结合两个空间的用户偏好来预测的 r^u,i 为:

      r^u,i=puqi+wuf(CNN(xi))

      其中:

      • f(CNN()) f(CNN()) 表示通过从原始视觉空间 CNN(xi) 变换而来的 item content representation ,即 item 视觉 embedding
      • pu 为用户潜在向量,qiitem 潜在向量,wu 为用户视觉 embedding

      第一项建模 user-item 的协同效应collaborative effect ,第二项建模 user-item 的视觉内容偏好。

    • 鉴于 VBPR 的基本思想,研究人员进一步介绍了视觉空间中视觉趋势的时间演变temporal evolution ,或图像关联的 location representation

    • 在基于矩阵分解的模型中,item 的视觉内容不是将用户的偏好表示为两个空间,而是作为正则化项,从而确保每个 item 学到的 item 潜在向量与从 CNN 学到的视觉图像 representation 相似。

    • 除了学习用于 item 视觉representationCNN content representations 之外,人们还提出了许多模型来考虑来自图像的 additional information从而进行 item 视觉 representation ,例如从 deep aesthetic network 学到的预训练的 aesthetics

      当用户在视频帧上显示 time-synchronized 的评论时,研究人员提出了一种多模态框架来同时预测用户对关键帧的偏好并生成个性化的评论。与评论生成模型相比,视觉 embedding 被注入到用户偏好预估部分、以及 LSTM 架构的每个 hidden state 从而实现更好的文本生成。

    • 最近,GNN 在使用启发式图卷积graph convolution 建模图数据方面表现出了强大的性能。PinSage 是将 GNNs 应用于 web-scale 推荐系统的少数尝试之一。给定一个 item-item correlation graphPinSage 将节点属性作为输入,并通过迭代式的图卷积来生成 node embedding 从而学习图结构。研究人员还建议形式化 user、服装、item 的异质图,并执行 hierarchical GNNs 从而进行个性化的服装推荐outfit recommendation

b. 视频推荐
  1. 研究人员提出了具有丰富视觉信息和音频信息的、content-based 的视频推荐系统。具体而言,这些提出的模型首先提取视频特征和音频特征,然后采用神经网络将这两种特征通过 early fusionlate fusion 等技术进行融合。由于这些 content-based 的视频推荐模型不依赖于用户与视频的交互行为,因此它们可以应用于新的视频推荐而无需任何历史行为数据。

  2. content-based 的推荐模型相比,研究人员提出了一种用于多媒体推荐的注意力协同过滤Attentive Collaborative Filtering: ACF 模型,该模型使用了用户视频交互记录。ACF 利用visual inputs的注意力机制来学习注意力权重,从而 summarize 用户对历史 itemitem component 的偏好。

    ACF 的核心思想是:利用用户的多媒体行为并将用户显式地投影到两个空间中:协同空间 collaborative space和视觉空间 visual space,这样用户的关键帧偏好key frame preference 就可以在视觉空间中被逼近approximated 。作者设计了一个模型来识别用户的协同维度和视觉维度,并建模用户如何从这两个方面做出决定性的 item 偏好。

1.2.4 建模社交网络

  1. 随着社交网络的出现,用户喜欢在这些社交平台上表达对 item 的偏好,并通过社交关系分享他们的兴趣。这些平台中出现了社交推荐,其目标是建模用户之间的社交影响social influence 和社交相关性social correlation ,从而提高推荐性能。社交推荐的根本原因是社交邻居之间存在社交影响,导致用户在社交网络中的兴趣的相关性。我们将社交推荐模型总结为以下两类:社交相关性增强和正则化模型、GNN based 模型。
a. 社交相关性增强和正则化
  1. 通过将用户的社交行为作为社交域social domain,将 item 偏好行为作为itemitem domain ,社交相关性增强和正则化模型试图将来自两个域的用户行为融合在一个统一的 representation 中。对于每个用户,其潜在 embeddign pu 由两部分组成:一个来自 item domainfree embedding eu,以及一个来自社交域的刻画社交相似性的 social embedding hu。换句话讲,我们有:

    hu=g(u,S),pu=f(eu,hu)

    其中:

    • g(,) 以社交网络结构为输入从而建模 social embedding
    • S 为刻画了社交网络结构的邻接矩阵。
    • f(,) 融合了两种 embedding

    不同的模型在社交域 representation hu 的详细实现上有所不同。例如,可以直接从社交网络 embedding 模型来学习(《Collaborative neural social recommendation》),也可以从社交邻居的 embedding 中来聚合(《A hierarchical attention model for social contextual image recommendation》《Hers:Modeling influential contexts with heterogeneous relations for sparse and cold-start recommendation》),或者使用 attention basedtransfer learning 模型从社交域迁移到 item 域 (《An efficient adaptive transfer neural network for social-aware recommendation》)。

    此外 ,社交网络还被用作模型优化过程中的正则化项,假设社交网络中相连的用户在学到的 embedding 空间中更相似(《Collaborative neural social recommendation》)。

  2. 在现实世界中,由于用户个人兴趣的变化和不同的社交影响力,用户的兴趣会随着时间的推移而变化。研究人员使用 RNN 扩展了 social correlation based 的模型,从而建模动态社交影响下用户偏好的演变(《Attentive recurrent social recommendation》《Neural framework for joint evolution modeling of user feedback and social links in dynamic social networks》)。具体而言,每个用户 u 在时刻 t 的潜在偏好 hu(t) 可以建模为该用户前一时刻潜在偏好 hu(t1) 的转移 transition、以及在 t1 时刻来自社交邻居的社交影响 :

    hu(t)=fRNN(Ru(t),hu(t1),vNuαv,uhv(t1))

    其中:

    • Ru(t) 为用户 u 在时刻 t 的时间行为temporal behaviors
    • vNuαv,uhv(t1) 为来自该用户的社交邻居的影响,Nu 为用户 u 的社交邻居,αv,u 为用户 v 对于用户 u 的社交影响力(可以使用均匀的影响力,或者使用注意力模型)。
b. GNN based 方法
  1. 上述大多数社交推荐模型都利用局部一阶邻居进行社交推荐。在现实世界中,社交扩散过程 social diffusion process呈现出一种动态的递归效应来影响用户的决策。换句话讲,每个用户都受到全局社交网络图结构的递归影响。为此,研究人员认为,最好利用基于 GNN 的模型来更好地建模推荐的全局社交扩散过程global social diffusion process

    DiffNet 旨在通过社交 GNN 建模来模拟用户如何受到递归社交扩散过程的影响,从而进行社交推荐。具体而言,DiffNet 递归地将社交影响从第 0 步扩散到 stable diffusion depth K 。令 hu(k) 表示用户 u 在第 k 层扩散过程中的 user embedding,则模型为 :

    hu(0)=fNN(xu,eu)hNu(k1)=Pool(hv(k1)vNu)hu(k)=s(W(k)[hNu(k1),hu(k1)])

    其中:

    • xu 为用户 u 的特征向量,eu 为用户 ufree embeddingfNN(,) 为建模初始社交扩散的神经网络。
    • Nu 为用户 u 的邻居集合,hNu(k1) 建模了来自用户 u 的社交邻居的扩散。
    • W(k) 为第 k 层的待学习的权重矩阵,[,] 为向量拼接,s() 为激活函数。

    随着 kstep 1 扩散到深度 K ,则上式捕获了递归的社交扩散过程。

  2. 除了在 user-user 社交图上执行 GNN 之外,研究人员还考虑使用基于异质 GNN 的模型联合建模社交网络中的社交扩散过程和 user-item 二部图中的兴趣扩散过程interest diffusion process。例如,人们提出 DiffNet++ 从而联合建模来自 user-item 二部图的兴趣扩散、以及来自 user-user 社交图的影响扩散,从而用于社交推荐中的用户建模,并取得了 state-of-the-art 性能。

c. 建模知识图谱
  1. 研究人员还考虑利用知识图谱Knowledge Graph: KG 进行推荐,其中知识图谱为 item 提供丰富的辅助信息(如 item 属性、外部知识)。通常,知识图谱以有向图 G={(h,r,t)h,tV,rR} 的形式来组织这类 subject-property-object 的事实 fact,其中每个三元组表示存在从 head 实体 htail 实体 t 的关系 rV 为所有实体集合,R 为所有关系集合。

    探索这种内部链接interlink以及 user-item 交互,是丰富 item 画像、增强 user-item 之间关系的有前景的解决方案。此外,这种图结构赋予推荐系统可解释的能力。最近对知识图谱的工作可以大致分为三类:基于路径的模型 path-based model 、基于正则化的模型regularization-based model、基于 GNN 的方法GNN-based approach

  2. 基于路径的方法:许多工作引入了 metapath 和路径从而表达用户和 item 之间的高阶连接,然后将路径输入预测模型来直接推断用户偏好。具体而言,从用户 uitem i 的路径可以定义为一系列实体和关系:

    path=[v1r1v2r2rL1vL]

    其中:

    • v1=u,vL=ivlV 为节点,rlR 为关系。
    • (vl,rl,vl+1) 为第 l 个三元组,L1 表示三元组的数量。

    因此,连接 ui 的路径集合可以定义为:P(u,i)={path}

    FMG, MCRec, KPRN 将路径集合转换为 embedding 向量从而表示 user-item 的连接性connectivity.。这种范式可以概括如下:

    c=fpooling({fembed(path)pathP(u,i)})

    其中:

    • fembed() 为一个 embedding 函数旨在将路径 path 嵌入到一个向量。
    • fpooling() 为一个池化函数旨在将所有路径信息聚合为 connectivity representation 。例如,MCRecKPRN 中采用注意力网络来作为池化函数。

    RippleNet 为每个用户构建 ripple 集合(即从 P 派生的高阶邻域 item)从而丰富 user representation

    虽然这些方法显式建模高阶连接性,但是它们在现实世界的推荐场景中极具挑战性,因为它们中的大多数都需要广泛的领域知识来定义 metapath、或者繁重的特征工程来获得有效的路径。此外,当涉及大量知识图谱实体时,路径的规模很容易达到数百万甚至更大,这使得有效地迁移知识变得困难。

  3. 基于正则化的方法:这个研究方向设计了一个联合学习框架,其中使用直接的 user-item 交互来优化推荐器的损失,并使用知识图谱三元组作为 additional loss 项来正则化推荐器模型的学习。具体而言,两个模型分量之间的锚点 anchoroverlapped itemsembedding

    CKE 利用 Knowledge Graph Embedding 技术(尤其是 TransR)来生成 itemadditional representation,然后将它们与推荐器 MFitem embedding 集成,即:

    qi=fembed(i)+fKGE(iG)

    其中:

    • fembed() 为以 item ID 为输入的 embedding 函数。
    • fKGE() 为考虑了知识图谱结构的 KGE 方法的item representation

    类似地,DKNNCFTransE 中生成 item embedding。这些方法聚焦于通过联合学习框架来丰富 item representation

  4. 基于 GNN 的方法:基于正则化的方法仅考虑实体之间的直接连接性,并且以相当隐式的方法来编码高阶连接性。由于缺乏显式地建模高阶连接性,因此既不能保证捕获长程连接long-range connectivity、也无法保证高阶建模的结果是可解释的。最近的研究(如 KGAT, CKAN, MKM-SR, KGCN) 受到 GNN 进展的启发,探索了图上的消息传递机制从而以端到端方式来利用高阶的连接性。

    KGAT 通过将每个用户行为表示为三元组 (u,interact,i) ,从而将 user-item 交互和知识图谱编码为统一的关系图 relational graph。基于 item-entityalignment setuser-item 二部图可以和知识图谱无缝地集成为所谓的协同知识图 collaborative knowledge graph G={(h,r,t)h,tV,rR} ,其中 V=VU 为集成后的节点集合,R=R{interact} 为集成后的关系集合。在这样的图上,KGAT 递归地从节点的邻居(可以是用户节点、item 节点、或者其它实体节点)传播 emebdding 从而改善 node embedding ,并且在传播过程中采用注意力机制来区分邻居的重要性:

    pu=fGNN(u,G)

    其中:fGNN()GNN 函数。

1.2.5 总结

  1. 辅助数据(如文本、多媒体、以及社交网络)能够增强 user representation learningitem representation learning,从而提升推荐性能。关键是辅助数据的选择和集成方法。例如:

    • 文本信息可以帮助模型生成相应的推荐解释,社交网络信息对于提供用户之间的社交影响力和社交相关以便更好地推荐非常有用。
    • 同时,注意力机制是一种从辅助数据中选择最相关信息从而增强 representation learning 的通用方法,基于 GNN 的方法擅长获取结构信息和高阶相关性从而利用辅助数据。

    综上所述,根据推荐目标(推荐准确率、可解释性、冷启动问题等),选择合适的辅助数据和集成方法可以帮助推荐模型获得良好的性能。

1.3 时序模型

  1. 用户的偏好不是静态的,而是随着时间的推移而动态演变。与使用上述模型对用户的静态偏好static preference 进行建模不同,基于时序 temporal/sequential 的推荐聚焦于对用户的动态偏好dynamic preference 或随着时间的序列模式sequential pattern进行建模。

    给定一个用户集合 U={u1,,uM},以及一个 item 集合 I={i1,,iN},当前的时序推荐可以分为三类:

    • 基于时间的推荐temporal based recommendation:对于一个用户 uU 和一个 item iI ,相关的 user-item 交互行为被表示为一个四元组:(u,i,ru,t,tu,i) 。其中:ru,i 为详细评分,tu,i 为该评分的时间戳。基于时间的推荐聚焦于对用户行为随时间的动态性进行建模。
    • 基于会话的推荐session based recommendation:在某个会话 S=[i1,i2,,i|S|] 中(SI),用户与一组 item 进行交互(例如,用购物车消费、在有限的时间段内浏览互联网)。在许多基于会话的 application 中,用户不登录且用户 ID 不可用。因此,基于会话的推荐的流行方向是从会话数据中挖掘序列的 item-item 交互模式从而获得更好的推荐。
    • 基于时间和会话的推荐temporal and session based recommendation:这种方法结合了时间推荐和会话推荐的定义,其中每个事务 transaction 被描述为 (u,S,t) ,其中 SI 为用户 u 在特定时间 t 消耗的 item 的集合。在这种情况下,需要同时捕获 item 的时间演变temporal evolution和序列模式。

    我们在下表中总结了推荐系统中建模时间和序列效应的主要技术,并在下图中说明了一些代表性工作。