周 明
(安徽理工大学计算机科学与工程学院,淮南 232001)
推荐系统在很多场景已经得到了广泛的应用,并且通过非常多的关键词汇向用户提供更加个性化的项目。对于高效的推荐系统来说,其关键核心就是通过用户的历史交互行为来预测下一阶段用户可能感兴趣的项目。伴随着对比学习在推荐系统领域的成功,基于对比学习社交推荐模型——旨在构建一种通过对比学习[1]的反事实交互特征和观测交互特征来增强用户表征的框架,也取得一定的进展。通常而言,现代化社交推荐系统[2]采用两个主要组件来预测用户偏好:用户和项目嵌入学习,接下来是用户-项目交互建模。那么在ciao 和epinions 两个数据集中用户对于以往交互项目的评级便至关重要。
社交推荐考虑推荐用户感兴趣的内容,即用户关系链中的推荐内容。近年来,Fan 等[3]研究了项目特征之间的相关性,将用户特征空间和项目特征空间抽象为两个图网络,以提高社会化推荐的准确率。Wu 等[4]提出了一种项目关系图神经网络,用于同时发现多个复杂关系,并为无法直接获得的项目或用户信息提供解决方案。Salamat 等[5]将社交网络建模为异质图,并采用图神经网络和注意力机制来聚集来自所有来源的信息,并建立用户-用户、项目-项目和用户-项目关系。关于关系,在实体之间还存在更高阶的关系。许多研究已经考虑整合知识图和用户-项目图来捕捉这些高阶关系。鉴于图神经网络[6]的力量,它们被纳入了本文的框架。
基于对比学习的自监督学习,在计算机视觉和自然语言处理等领域取得了杰出的成绩。对比学习的核心技术是在嵌入空间中将“正”样本尽可能地拉一起,并尽可能放大“负”样本之间的距离。例如,Gao等[7]考虑社区结构并设计BiGI来识别二分图的全局性质,最终提出了一种基于双塔DNN的对比SSL模型。该算法旨在利用项目属性改进基于协同过滤的推荐。
设U={u1,u2,…,un}和V={v1,v2,…,vm}分别表示用户和项目的集合,其中n和m分别为用户和项目的数量。L∈Lx×y表示用户-项目的交互图。用户对相应项目给出的评分值用eij来表示。如果用户不对项目进行评分或者两者没有互动,eij= 0。一般来说,矩阵L是稀疏的。将用户社交图定义为PU=(U,QU),其中QU被用作连接用户的边集。
图1说明了总体架构,它由两个主要模块组成:①审阅感知模块:基于图形输入将评级合并到用户偏好建模中;②图形对比学习模块:引入对比从两个方面提高推荐性能,用户/项目嵌入学习和交互建模。
图1 本模型框架
对于用户建模,目的是学习用户的潜在因素偏向。在这一节中,本文说明了如何从项目聚合中对用户的潜在因素偏差进行建模,而用户ui的潜在因素偏差是由两部分组成的,一部分是从相关项目聚合得到的,另一部分是从社会聚合得到的。为了从数学上得到用户ui的潜在因素偏差,我们使用以下函数:
其中:σ是非线性激活函数的集合,w和b表示权重和偏差。
与项目聚合类似,用户建模的目的是学习用户ui对相应项目vj的潜在因素偏差,并将其表示为Hjv:
接下来,我们定义表示Gα和Gβ:
其中:Gα是用户和项目之间的意见意识互动的集合;Gβ是一个评级感知的互动表示。然后用Ru表示多层感知器,作为嵌入rij和意见嵌入mj的组合。
基于之前的对比学习用于图数据学习的工作中,本文将对比学习用于用户表征增强模块中。具体来说分以下两个步骤(如图2所示)。
图2 反事实示意图
图3 在Ciao数据集上的表现
图4 在Epinions数据集上的表现
步骤一:首先对原始交互特征,依据目标项目识别出可缺少的概念、不可或缺的概念。然后对其进行反事实转化。替换原始行为特征中可缺少的概念的特征作为反事实特征的正样本,替换原始行为特征中不可缺少的概念的特征作为反事实特征的负样本。
步骤二:在获得反事实特征的正负样本后,分别对原始行为交互特征与反事实特征正负样本进行对比学习,以及目标项目与事实特征正负样本进行对比学习。
这个过程可以表述如下:
其中:u1是输入用户;u2是从U*U↑中采样的负用户。
在得到潜在的因素偏差Hu,Hv组成,分别代表用户和物品。最后使用多层感知器来获得的偏好评级:
我们从评级预测的角度来评估我们提出的模型。假设α是数据集中的所有评分的集合,α={(i,j):eij≠0} 。目标函数:
其中,eij是用户ui对物品vj的基础真实评价。
我们将模型分别放在Ciao 和Epinions 数据集上进行评估,这两个数据集都取自流行的社交网站,都包含了用户、项目、评级和社交关系等组成部分,每个社交数据项包括“追随者数据指数”和“追随者指数”。
表1 数据集信息
在比较本模型与其他模型的评分预测性能时,我们使用两个指标来评估推荐算法的预测准确性,即MAE和RMSE。
我们使用Python 3.8、PyTorch 1.7和Cuda 11作为算法构建的环境。对于每个数据集的参数设置,用80%作为学习参数的训练集,用10%作为优化的验证集,最后用10%作为测试集。对于嵌入大小,我们测试了[8,16,32,64,128,256]的值,而学习率在[0.0005,0.001,0.005,0.01,0.05,0.1]之间。
SVD:是一个经典的矩阵分解模型,它通过用户和项目潜在因素的内积来估计评分。
NCF:使用神经网络来预测基于用户和项目自由嵌入的评级。
DeepSoR:基于深度神经网络并结合矩阵分解方法来获得用户项的表示。
GraphRec:第一次将图神经网络和社交网络结合起来,分别表示用户和项目的潜在表示。
通过数据对比可知,Epinions数据集比Ciao数据集有更多的用户项目互动,而且用户对特定项目的兴趣往往会随着时间而波动。因此,像DeepSoR 这样仅仅利用评级信息的模型在Ciao 数据集上的表现稍好,但像Graphrec 这样利用数据集中的社会关系的模型在Epinions数据集上的表现稍好。相对而言,本文的方法优于以前的推荐模型,因为它结合了社会数据并更广泛地利用了数据本身的全局特征。同时本文加入的对比学习可以更好地增强用户表征,更精确地降低推荐误差。
为了更好地利用用户-项目二分图的独特结构和评分特征,同时利用评级信息增强用户/项目嵌入和用户-项目交互建模,一个基于图的用户偏好建模和评分预测的对比学习框架。具体来说,我们设计了一个新的评分感知图学习模块,以更有效地将评论信息整合到用户和项目嵌入学习中。在这个组件中,评级用于调整相应邻居和评论本身的影响。此外,还开发了一个额外的比较学习模块来调整模型,以更好地建模节点嵌入和交互。最后,在推荐的两个基准数据集上进行了大量实验,验证了模型的优越性和有效性。未来,我们将使用更先进的评论嵌入方法来实现更好的评论表示,并设计更好的融合和对齐方法来对评论和用户(项目)之间的复杂交互进行建模。