目录
一、社会化推荐概述
社会化推荐是推荐系统中能够有效提高推荐准确率和推荐系统性能的方法,其基本思想就是认为,用户在选择候选物品时的决策会受到该用户的社交关系的影响。根据这种思想,许多研究者通过挖掘用户之间的社交关系,并将这种社交关系信息考虑到推荐系统的设计中,从而诞生了许多不同的方法,且在一定程度上提高了推荐系统的性能。
本文研究了从2010年开始,到2021年各会议上社会化推荐相关的文章,并挑选出其中10篇,分别对其提出的问题、应用的解决方法等进行介绍,并提出对这些方法的评价和一些思考。
二、社会化推荐技术发展
这篇文章标题为"A matrix factorization technique with trust propagation for recommendation in social networks",来自于2010年的RecSys会议,是较早将用户的社交因素考虑引入推荐系统中的一种技术。
2.1.1 提出的问题
社会学家长期以来一直假设选择和社会影响的作用。选择是指人们倾向于与具有相似属性的人建立联系,由于社会影响,在一个社交网络中,相关的人相互影响,变得更加相似。在线社交网络数据的不断增加终于允许对这些社会学模型进行验证。因此作者考虑加入这种信任传播之后是否能提高推荐的质量。
2.1.2 提出的解决方法
作者提出了一个基于于矩阵因子分解的社交评级网络推荐模型,称为SocialMF。为了将社交影响注入到模型中,作者使每个用户的特征依赖于其在社交网络中的直接邻居的特征向量,从而间接体现信任的传播。同时,对于冷启动问题来说,该模型强制让用户向量与其邻居的特征向量联系起来,方便为冷启动用户学习用户特征。
模型中使用到的数据有用户集合U、项目集合I、用户-项目矩阵R,用户社交信任网络T等。对于一个用户,令其潜在向量的估计值为其直接邻居的潜在特征向量的加权平均。有了这些假设之后,通过概率矩阵分解的方法,求出用户特征向量的条件概率公式,并通过取对数的形式得到目标函数,使用梯度下降的方法训练模型,得到最终的用户潜在向量,并以此进行用户-项目评分的预测。该模型的概念结构如下图所示。
图2-1 SocialMF
2.1.3 评价与思考
该文章是较早将用户社交关系考虑进推荐系统的技术之一,文章的实验结果部分将SocialMF与较早的CF、STE等技术进行了对比,在Epinions和Flixster数据集上展示出了较好的效果。在创新型上,该文章简单地将用户向量视为其朋友的特征向量的加权和,具有社会性但并不一定完全合理。在之后也有相应的工作,将用户自己的特征向量和朋友的特征向量进行加权结合,属于对该模型的进一步改进,使得该模型结构上更加合理。由于原理相似,此处不再赘述。
该文章标题为"Leveraging Social Connections to Improve Personalized Ranking for Collaborative Filtering",来自2014年的CIKM会议,从用户的社交关系的角度来对协同过滤技术进行改进,从而提高推荐系统的性能。
2.2.1 提出的问题
该文章提出了一种很有意思的假设:在许多实际应用中,每个用户的评分行为应该在某种程度上与他们的朋友相似,但这种相似性可能无法使用显式的数字进行评分,而可以尝试对某种形式的隐式反馈来进行建模,例如用户消费的媒体,他们浏览的网页,他们听的音乐或与他们谁成为朋友。这种设置被称为“一类(one-class)”推荐,作者提出通过直接建模个性化推荐项目的相对偏好或排名,来将社会关系引入推荐系统中。
2.2.2 提出的解决方法
作者建立了一个排名假设模型,如图所示。
图2-2 排名假设模型
作者认为,在一个用户心中的偏好排名大致分为以下三种:用户自己已经选择过的物品的偏好程度最高,自己没有选择过而朋友选择过的物品的偏好程度其次,而对自己和朋友都没有选择过的物品的偏好程度则最低。
根据这种假设,作者建立了相应的贝叶斯模型,对用户u建立排序函数,函数的输入为用户信息、社交信息、用户-物品信息和待排序的候选物品信息,输出为对该用户预测出的候选物品排名信息。建立该函数之后,再根据已有的数据进行训练,得到最终的预测函数。该模型简称为SBPR。
2.2.3 评价与思考
SBPR模型的创新型在于提出了较为符合实际情况的用户偏好假设,将社交信息较为巧妙地融合进协同过滤技术中,将用户的偏好细化为三种,并进一步计算用户对每个物品的偏好程度。
这篇文章题目为"Social Recommendation with an Essential Preference Space",来自于2018年的AAAI会议,提出了一种“基本偏好空间”的概念,研究了如何利用推荐系统和社交网络中用户偏好的差异,进一步改进社会化推荐的性能。
2.3.1 提出的问题
在用户对物品进行评级和用户考虑在社交中是否信任他人时,用户所考虑的因素是不一样的。也就是说,在面对物品和面对人时,用户考虑的是不一样的因素,映射到推荐系统中,作者认为推荐系统和社交网络中的用户潜在向量应该属于不同的潜在空间。
2.3.2 提出的解决方法
为了解决上述问题,作者假设不同场景中的用户偏好是来自更底层的用户偏好空间的不同线性组合的结果。这样,引入了一个基本偏好空间来描述用户,而推荐系统和社交网络中的用户潜在空间被假设为基本偏好空间的不同投影。基于这一假设,作者提出了模型SREPS。
在模型中,用户-项目评级信息、用户消费信息、社交网络结构信息等分别被用来建立不同场景的用户潜在向量。模型结构如下图所示。
图2-3 SREPS
可以看到,评分矩阵经过矩阵分解,被用来进行评分空间的建模;对于社交网络结构等信息,作者采用了大规模信息网络嵌入技术(LINE)进行了网络嵌入,得到社交网络空间的用户向量。分别经过消费信息、评分信息、社交网络信息进行建模后,将这些元素进行联合建模,学习出图中中间部分表示的基本偏好空间中的用户潜在向量。得到这种用户潜在向量后,将其投影到评分空间中,即可得到评分空间的用户向量,从而进行最终评分的预测。
2.3.3 评价与思考
该文章的创新型在于,提出了一种“基本偏好空间”的概念,来解决推荐系统和社交网络中用户向量“异构”的问题,将异构的用户向量统一成基本偏好空间中的用户向量,进行联合建模。在实验部分,作者将SREPS与之前的许多种方法在多种数据集(Epinions, Flixster, Ciao, FilmTrust)上进行了对比,结果表明这种方法相对于SoReg、SocialMF、TrustMF等方法都具有更好的效果。
这篇文章题目为"Social Attentional Memory Network Modeling Aspect- and Friend-level Differences in Recommendation",来自2019年的WSDM会议,考虑了用户偏好的两种不同层次,以及引入了两个层次的注意力机制来进行建模。
2.4.1 提出的问题
在社交推荐中,存在着两个问题影响了用户偏好的推断,且在当前并没有被现有方法广泛研究:
- 用户与朋友喜好层面的差异:用户可能最关注某个朋友的一个方面,而关注另一个朋友的另一个方面。
- 用户在朋友层面的差异:每个朋友对用户的影响大小是不同的。
2.4.2 提出的解决方法
作者提出了一种用于社交意识推荐系统的新模型,该模型考虑了用户-朋友之间的喜好层面差异以及社交影响力上的朋友层面差异。
作者使用基于注意力的记忆模块来构造用户-朋友特定的关系向量,还引入了朋友级的注意力来适应在用户的朋友之间的社交影响强度。这两部分被融合在了一个统一的框架中。模型命名为SAMN,框架如下图所示。
图2-4 SAMN
(1) 通过Embedding层将用户和项目转换为稠密向量表示。u和v分别是用户向量和项目向量。
(2) 该模型包含两个主要组件,即基于注意力的记忆模块和朋友层面的注意力组件。基于注意力的记忆模块旨在解决喜好层面的差异引起的问题。朋友向量f是使用神经注意力机制在扩充记忆矩阵M上产生的。它取决于用户和朋友,并学习表示用户和他的朋友之间的偏好关系。用户层面的注意力用于选择信息丰富的朋友,以便更好地推断用户的偏好。
在基于注意力的记忆模块中,通过给定的用户-朋友对,进行联合嵌入,得到联合嵌入向量s。在用户向量内部引入一个注意力机制,保存朋友对不同种类信息的偏好程度信息。即在物品种类维度上分配不同的权重。根据这种权重得到该模块的向量输出。每个朋友输出一个f向量。
得到f向量后,采用一个双层网络来学习朋友层面上的注意力评分。得到每个朋友的注意力权重后,进行加权结合,得到用户u的最终表示。根据这种最终表示即可用于预测。
2.4.3 评价与思考
该模型的创新点在于,提出了两种层面上的差异问题,并通过两个层次的注意力机制对该问题较好地进行了解决。在实验部分中,该模型与NCF、SocialMF、SBPR等模型在数据集Ciao、Delicious、Epinions上的效果进行了对比,在召回率等指标上,SAMN模型的效果要好于上述模型。
该文章题目为"Session-Based Social Recommendation via Dynamic Graph Attention Networks",来自于2019年的WSDM会议,提出了一种基于会话的社交推荐模型。
2.5.1 提出的问题
该文章针对的是在线社区的推荐问题,该问题具有以下特点:
- 用户的兴趣是动态的。
- 用户收到朋友的影响。
此外,影响者还和上下文有关。也就是说,不同情况下用户可能会倾向于相信不同朋友的建议或影响。因此,在这种场景中,对这两种特点的建模是非常重要的。
2.5.2 提出的解决方法
作者提出了一种方法来对用户基于会话的动态兴趣和用户的动态社交活动进行建模,具体方法如下。
将用户的行为序列作为用户的会话过程。在会话基础上的推荐目标是,在下一个会话中推荐一组用户可能感兴趣的项目。
作者使用循环神经网络RNN来在会话中建模用户行为,获取用户的动态兴趣。在此基础上,使用图注意力网络来捕获朋友对用户的影响。同时,为了提供会话层面上的推荐,作者将朋友的短期兴趣模型和长期兴趣模型区分开来。然后,根据用户当前的兴趣,使用注意力机制来自动确定每个朋友的影响力大小。模型被命名为DGREc,结构如下图所示。
图2-5 DEGEc
2.5.3 评价与思考
该文章的创新型在于,引入了行为序列建模的方法,将推荐问题转换成了动态的会话问题,并考虑了用户的动态兴趣、用户朋友的动态和长期兴趣,以及对用户朋友的注意力大小等因素。
该文章的题目为"An Efficient Adaptive Transfer Neural Network for Social-aware Recommendation",来自于2019年SIGIR会议,作者将迁移学习机制引入社会化推荐中,并在此基础上引入了注意力机制,从而提高推荐系统的性能。
2.6.1 提出的问题
在社交域和项目域之间迁移部分信息,有助于从项目域和社交域中学习用户的偏好。然而现有的框架大都采用静态迁移方案在项目域和社交域之间共享用户的共同偏好,这在现实生活中并不稳健,因为不同用户的共享程度和信息丰富程度各不相同。因此,非个性化的迁移方案可能是无效且不成功的。也就是说,迁移学习要应用在社会化推荐中,应该使用动态的迁移方案。
2.6.2 提出的解决方法
作者提出了一个高效自适应的迁移神经网络,简称EATNN,并通过引入注意力机制,使得该模型能够分配个性化迁移方案给每个用户。模型框架如下图所示。
图2-6 EATNN
(1) 用户和项目通过嵌入转换为密集向量表示。特别地,作为迁移学习的桥梁,每个用户u具有三个潜在向量。 Uc表示在项目域和社交域的知识共享。Ui和Us表示用户u的分别对应于项目域和社交域的特定偏好。
(2) 基于注意力的自适应迁移层旨在利用共享表示对域关系进行自动建模并学习域特定函数。它允许自动分配参数以捕获共享知识和领域专有知识,同时避免添加许多新参数的需要。注意力机制上面,将注意力网络分别应用于项目域和社交域。对于用户而言,如果两个域的相关性较低,那么共享知识Uc的注意力权值会相应更少,相应的Ui或Us信息的权值会更大。计算用户u在两个域的向量表示。用项目域的用户表示进行评分预测。
2.6.3 评价与思考
该文章的创新型在于,引入迁移学习机制,将项目域和社交域的用户向量视为两个部分不同的向量,在这两个域的用户向量之间进行一部分的迁移共享。在此基础上,还为每个用户进行个性化的迁移权重分配,达到动态迁移学习的目的。
这篇文章题目为"Deep Adversarial Social Recommendation",来自于2019年IJCAI会议,作者提出了一种深度对抗网络下的推荐框架。
2.7.1 提出的问题
用户在项目域和社交域两个领域中的行为和交互是不同的,这使得他们的表示应该是异构的。这种问题和上面SREPS模型作者提出的问题大致相同,但使用了全新的方法进行解决。
2.7.2 提出的解决方法
作者提出了一个新的深度对抗性社会推荐框架DASO。它采用双向映射的方法,利用对抗性学习在社交域和项目域之间传递用户信息。模型结构如下图所示。
图2-7 DSAO
模型所用到的信息来自两个领域,即项目领域I和社会领域S。该模型由三个组成部分组成:循环用户建模、项目领域对抗学习和社会领域对抗学习。
循环用户建模是对两个领域的用户表示进行建模。项目域对抗式学习是采用对抗式学习来动态生成“困难的”和信息消极的样本来引导user和item表示的学习。生 成器用于为每个用户“采样”(推荐)项目,并输出用户项目对作为假样本;另一个是鉴别器,它将从真实用户-项目交互中采样的用户-项目对样本与生成的用户-项目对样本区分开来。社会领域的对抗性 学习同样包括一个发生器和一个鉴别器。 最终学习到用户和项目的向量表示,利用这两种向量表示来进行最终预测
2.7.3 评价与思考
该文章的创新型在于,提出了一种对抗博弈性质的学习机制,让模型能够自我产生新的样本用于训练,是一种非常新颖的想法。
这篇文章题目为"Deep social collaborative filtering",来自于2019年的Recsys会议,作者提出了一种深度社交协同过滤框架。
2.8.1 提出的问题
当直接邻居不能共享有用的信息时,用户可能会提到遥远的邻居(或弱关系)。因此,推荐系统需要考虑遥远的社会关系。
2.8.2 提出的解决方法
作者提出了一种基于深层神经网络的主要方法,从遥远的社会关系中提取有用的信息,提出了一个深度社交协同过滤框架,可以充分利用社交网络信息进行推荐,简称为DSCF。模型框架如下图所示。
图2-8 DSCF
模型方法如下:
- 不仅考虑直接邻居的信息,还要考虑远处邻居的信息;
- 选择每个邻居的相关信息以推荐特定项目;
- 在对用户-项目交互建模时捕捉邻居对项目的意见。
问题1和2由随机游走层来解决,问题3由嵌入、序列学习等来解决。由图中的模型各个部分可以看出,首先由随机游走层生成项目感知社交序列,然后嵌入层对用户项目交互进行建模。之后,序列学习层来学习习项目感知社交序列的向量表示,并加入注意力机制,最后由输出层来进行最终的评分预测。
该文章题目为"Social Recommendation with Optimal Limited Attention",来自于2019年KDD会议,作者提出了一种“有限注意力问题”,给每个人选择最优的社交关系数量。
2.9.1 提出的问题
作者的核心观点在于,人的注意力是有限的。每个人应该只会被有限数量的社会关系影响,因此他的偏好也只取决于这些社会关系的偏好。此外,社会连接通常会受到目标用户的不均匀分布的关注,从而对目标用户产生不同的影响。
2.9.2 提出的解决方法
对于第一个问题,有效地为每个人选择最优的社交联系数量,这样这些选择的朋友的喜好就能够最大程度地影响目标用户;对于第二个问题,自适应地学习目标用户对这些好友的最佳关注度,也就是引入注意力机制。
该文章的模型方法比较特殊,作者通过社会学中的一些定理来寻找用户的最佳朋友子集大小k。得到每个用户的k值之后,给每个用户选择k个最信任的朋友。此后,计算出每个用户对k个朋友的注意力分量,从而得到该用户的最优注意力向量,再和矩阵分解相结合,进行最终的预测。
该文章题目为"ConsisRec: Enhancing GNN for Social Recommendation via Consistent Neighbor Aggregation",来自2021年SIGIR会议,作者提出了基于GNN的解决社交不一致性问题的推荐模型。
2.10.1 提出的问题
大多数现有的基于GNN的社会推荐模型忽略了社交上的不一致性问题。具体来说,社交不一致性表明社交联系不一定与评级预测过程一致。盲目聚集来自不一致的社交邻居的信息会破坏GNN为推荐而描述有益信息的能力。
社交不一致性问题可以分为两个层次:
- 上下文级:它表示在社交图中连接的用户可能有不同的项目上下文,也就是说不同用户关注的项目或物品不同。
- 关系层:用户对关注的相同项目具有不同的评价。
2.10.2 提出的解决方法
核心思想为,聚合具有一致性的邻居。
该模型建立在GNN模型的基础上,聚集邻居来学习节点嵌入。为了缓解社交不一致性问题,ConsisRec首先生成一 个查询嵌入来选择一致性更高的邻居。然后,在选择过程中使用邻居采样策略,其中采样概率基于我们提出的查询嵌入和邻居嵌入之间的一致性得分。抽样后,采用关系注意力处理关系层次的不一致性。因此,具有一致关系的邻居被分配了用于聚集的高注意力因子。因此,用于评级预测的学习节点嵌入是从一致的上下文和关系中聚集的。
模型框架如下图所示。
图2-9 ConsisRec
整个模型由四部分组成,分别为嵌入层、查询层、邻居采样层和关系注意力机制层。
在查询层中,为了克服社交不一致性问题,我们应该聚集一致邻居来学习节点嵌入。由于社交不一致性既存在于语境 层面,也存在于关系层面,我们应该区分每一对(u,t)的一致邻居。因此,ConsisRec使用查询层专门为 查询对(u,t)选择一致的邻居。它通过映射用户和项目嵌入的连接来生成查询嵌入q。查询层根据不同的项目动态地对邻居进行采样。因为当用户购买不同的商品时,他们会询问不同的朋友。因此,u对t的评分与熟悉这个查询项t的朋友有关。
在邻居采样层中,使用GNN网络。ConsisRec基于不同的项目对不同的社会邻居进行动态采样。GNN共有L层,第0层的输入是初始嵌入向量 ,h是第l层的输出向量。AGG为聚合函数,W为2d*d的矩阵。Nv是v在这一层的采样邻居结点集合。我们应该更多地强调一致的邻居,而忽略那些不一致的邻居,而不是平等地聚集所有邻居。因此,我们使用邻居抽样方法来选择那些一致的邻居。抽样过程中,每个邻居的抽样概率大小与该邻居与本次查询的相似度成正比,也就是说,更一致的邻居被抽样的概率更大。
在采样完成后,模型为这些采样的邻居应用了一个关系注意模块,通过考虑关联关系来学习这些采样节点的重要性。
最终,经过了L层传播后,我们得到u和t的嵌入向量,表示为hu和ht,通过它们做内积,即可得到最终评分。
参考文献
[1] Xin Wang,Wenwu Zhu,Chenghao Liu. Social Recommendation with Optimal Limited Attention[P]. Knowledge Discovery & Data Mining,2019.
[2] Mohsen Jamali,Martin Ester. A matrix factorization technique with trust propagation for recommendation in social networks[P]. Recommender systems,2010.
[3] Tong Zhao,Julian McAuley,Irwin King. Leveraging Social Connections to Improve Personalized Ranking for Collaborative Filtering[P]. Conference on Information and Knowledge Management,2014.
[4] Chong Chen,Min Zhang,Chenyang Wang,Weizhi Ma,Minming Li,Yiqun Liu,Shaoping Ma. An Efficient Adaptive Transfer Neural Network for Social-aware Recommendation[P]. Research and Development in Information Retrieval,2019.
[5] Weiping Song,Zhiping Xiao,Yifan Wang,Laurent Charlin,Ming Zhang,Jian Tang. Session-Based Social Recommendation via Dynamic Graph Attention Networks[P]. Web Search and Data Mining,2019.
[6] Xin Wang,Wenwu Zhu,Chenghao Liu. Social Recommendation with Optimal Limited Attention[P]. Knowledge Discovery & Data Mining,2019.
[7] Wenqi Fan,Yao Ma,Dawei Yin,Jianping Wang,Jiliang Tang,Qing Li. Deep social collaborative filtering[P]. Recommender Systems,2019.
[8] Hao Ma,Irwin King,Michael R. Lyu. Learning to recommend with social trust ensemble[P]. Research and development in information retrieval,2009.
[9] Fan W, Derr T, Ma Y, et al. Deep adversarial social recommendation[J]. arXiv preprint arXiv:1905.13160, 2019.
[10] Yang L, Liu Z, Dou Y, et al. ConsisRec: Enhancing GNN for Social Recommendation via Consistent Neighbor Aggregation[J]. arXiv preprint arXiv:2105.02254, 2021.