一种改进的基于隐式信任信息的社交推荐模型
2022-02-19盛立群
盛立群,宋 燕
(上海理工大学 光电信息与计算机工程学院,上海 200093)
1 引 言
随着互联网的快速发展,推荐系统伴随着信息过载问题应运而生[1].根据推荐算法所采用的数据的差异,推荐系统通常大致被分为3类,即基于协同过滤、内容以及两者混合的推荐[2].并且,协同过滤是当前推荐系统领域运用得最为成熟的算法之一.但是由于比如基于用户或者项目的协同过滤方法均分别基于用户兴趣特征矩阵和项目特征矩阵进行推荐,因此,很难避免带来用户冷启动或者推荐结果缺少新颖性等缺陷.而相比较而言,基于模型的协同过滤包括常用的潜在因子模型,在推荐效果、稳定性方面则具有更好的表现[3].其中,基于潜在因子模型的协同过滤方法由于其简单、效果好的特点被广泛应用[4,5].迄今为止,很多研究者在基于潜在因子的协同过滤算法中也做出了大量非常具有价值的研究成果.例如,邓爱林等在计算目标用户的相似用户的问题上提出了一种创新性的相似性度量方法[6];针对模型中的正则化参数张航等提出了一种新颖的推荐方法[7];张笑虹等基于矩阵分解进行有效的修正,得到一种优势明显的推荐方法[8];基于项目特征属性和评级矩阵,何慧提出了一种高斯模型与概率矩阵分解混合的推荐算法[9];曹玉琳等人提出了一种高效利用标签的语义性的联合概率矩阵分解的推荐算法[10]. 然而,随着网络数据量的爆炸式增加,数据稀疏性问题日益突出,基于矩阵分解的协同过滤方法的发展受到了严重的制约.
为解决稀疏性问题,一种常用方法是在算法中引入一些用户的社交信息,以弥补用户-项目交互信息的缺乏,从而提高推荐质量.其中,基于信任信息的推荐方法是融合社交信息推荐方法中最活跃的研究分支之一,Ma等人提出了基于信任关系的矩阵分解方法,利用矩阵分解方法将信任关系矩阵进行分解,通过实验可以证明,SoRec模型在数据集相当稀疏的情况下依然能保证推荐算法精度的有效提升,因此其应用非常广泛[11].
然而,SoRec模型只应用在显式的二值信任信息数据集上,对大部分缺乏信任信息的数据集并不能有效的进行利用,所以在此基础上,本文首先利用评分数据构建出用户间的隐式的信任关系矩阵;其次为了更好的利用这些信息去塑造潜在矩阵的特征空间,在SoRec模型的基础上进一步考虑用户潜在因子的多样性,并提出了ISoRec模型;最后,为保证模型的非负性在模型训练中引入了基于梯度下降法的单因素乘法更新规则[4].
综上所述,本文的主要贡献如下:
1)基于SoRec模型,提出了出了ISoRec模型,该模型充分考虑了用户在不同环境下的特征矩阵情况;
2)考虑到评级矩阵和信任矩阵的非负性,引入基于梯度下降法的单因子乘子法更新规则进行模型训练;
3)对真实公共数据集的实证研究表明,与SoRec模型相比,所提出的ISoRec模型显著提高了预测精度.
2 相关工作
2.1 信任预测指标
由于隐式信任可以很好地处理显式信息不可用的问题[12],特别地,本文采用隐式信任预测指标如下:
(1)
其中,u和v是两个用户,Fu,v表示用户u和用户v具有联合评级的项目集;|·|表示“·”的基数;(u,v)∈U,其中u是为S的行数,smax对应评级矩阵S中最大的元素.利用这个公式,可以只通过评级信息来挖掘潜在的用户间的信任矩阵.显然,在由U个用户组成的推荐系统,T=|tu,v|U×U表示用户的信任矩阵,其中的元素满足:tu,v=tv,u.
2.2 SoRec模型和社交信任集成(Social Trust Ensemble,STE)模型
对于SoRec模型,它是将评级矩阵和信任矩阵的用户潜在特征矩阵设置为相同即K,其具体形式如下:
(2)
式中WU×d表示被信任者特征矩阵,则SoRec模型的损失函数如下所示:
(3)
随后,Ma等人提出了STE模型,该模型同时考虑了自身偏好与可信用户两者对用户的影响,并且以信任值作为目标用户评级预测的影响因素[13],给出损失函数如下:
(4)
3 主要结果
3.1 改进的SoRec模型
因为影响用户偏好变化的因素很多,如情绪波动等主观因素或其他影响自身品味的外部因素.由此提出了ISoRec模型,其损失函数形式具体如下所示:
s.t. ∀u∈U,i∈I,l∈(1,2,…,d),ku,i,pu,i,qi,l,wv,l≥0
(5)
另外,为了避免模型训练产生过拟合结果,进一步在模型中加入了Tikhonov正则化项,从而提高模型的性能[14],所以最终得到目标函数如下:
(6)
s.t. ∀u∈U,i∈I,l∈(1,2,…,d),ku,i,pu,i,qi,l,wv,l≥0
其中λ1,λ2,λ3表示正的正则化系数.
接下来,按照AGD(additive gradient descent)方法,得到各变量的训练规则如下:
(7)
1https://www.yelp.com/dataset/challenge
(8)
为避免训练过程中出现负项,根据单元素可乘性更新规则[4],我们设置各学习率如下:
(9)
然后将式(9)代入式(7)中我们就可以得到变量的最终训练规则如下所示:
(10)
其中,Γ(u),Γ(i)分别表示被用户u评过分的项目的集合以及对项目i有过评分的所有用户的集合,Λ(u),Λ(v)表示所有被用户u,v信任的用户的集合.
3.2 算法设计和复杂度分析
显然,算法1的存储消耗与所有已知项Γ和Λ线性相关,因此即使在算法适用于高维数据集,存储成本不难计算.具体而言,由ΦISoRec表示的算法1的计算成本可由下式给出:
ΦISoRec=t[2Θ(|U|×d)+Θ(|I|×d)+|Λ|(Θ(d)+4d×Θ(1))+|Γ|(Θ(d)+4d×Θ(1)+|U|×d×3Θ(1)+|I|×d×Θ(1)]+3Θ(|U|×d)+Θ(|I|×d)+6Θ(1)=5Θ(t×|U|×d)+2Θ(t×|I|×d)+5Θ(|Λ|×d×t)+5Θ(|Γ|×d×t)+3Θ(|U|×d)+Θ(|I|×d)+6Θ(1)≈Θ(|Λ|×d×t)+Θ(|Γ|×d×t)
(11)
式(11)基于(|Γ|,|Λ| )≫max{|U|,|I|}这个前提条件,因此低量级的项5Θ(t×|U|×d)、2Θ(t×|I|×d)、6Θ(1)、3Θ(|U|×d)、Θ(|I|×d)均可以忽略不计.除此以外,因为d和t是正常数,因此计算复杂度与|Γ|和|Λ|是线性相关的.
4 实验结果与分析
4.1 评估指标
为了衡量所提出的模型对给定矩阵的预测精度,我们将评价指标设置如下[15]:
(12)
算法:改进的SoRec模型推荐算法(ISoRec)
输入:原评分矩阵T中已知元素的集合Λ和信任矩阵S中已知元素集合Γ
输出:潜在特征矩阵K,P,Q和W
初始化:K,P,Q,W,正则化系数λ1,λ2,λ3,潜在空间维数d,最大迭代次数Δ
综上所述,Eg感染过程中Tim-3诱导负性调控机制可能与TGF-β/Smads通路共同影响Treg细胞分化和IL-10的产生,但是Tim-3与Smad3/Smad7是如何相互作用的还值得进一步探讨,本课题组将继续开展一系列相关研究,通过体内外阻断Tim-3功能试验研究其在细粒棘球蚴感染中的作用机制,为棘球蚴病的预防和治疗提供实验依据。
1.t=1
2.如果不收敛且t≤Δ:
5. 结合第4步的结果与式(10)分别计算K,P,Q,W;
6.t=t+1,继续循环
4.2 实验数据集
为了说明我们提出的模型在实际应用中的有效性,收集了5个不同工业企业的实验数据集.
D1(Epinions):该数据集是Paolo Massa在2013年期间于Epinions.com网站上收集并整理得到[16].数据集中的评分范围是1-5,但由于实验机容量的限制,我们只记录那些得分超过50部电影的用户.在解决后,数据集包含了2751个用户的84216个分数1777项,数据密度为1.72%.同时这个数据集包含了4487183个信任值,这些信任值是由3396名信任者对49288名被信任者产生的,该信任矩阵的密度为0.029%.
D2(filmtrust):这是2011年从Film Trust网站获取的不完整数据集,其中包含3508名用户和2071部电影,评分矩阵密度为1.14%,评级范围为0.5~4.其中信任关系数据集包括609位信任者对732位被信任者产生的1853个信任值,密度为0.42%[17].
D3(ml-20m):这个数据集为电影[MovieLens][18]的从0.5~5的电影评级.创建时间是1995年1月至2015年3月之间,其密度为0.52%[18].
D4(Ciao):Ciao/review中的280391个等级是1~5的整数,由18197年的7375个用户生成,还包括由6792名信任者对7297名被信任者产生的111781个信任值.评级矩阵和信任矩阵的密度分别为0.03%和0.23%[19].
D5(Yelp)1:此数据集收集自Yelp 2016数据集挑战赛,其中选择评论数据集进行实验.它包含了6225个用户对269109个不同餐厅的评分,从1~5,其密度为0.21%.
需要注意的是,所有实验数据集都是低密度的,是实际工业数据的代表行业.为了保证模型的公正性和客观性,本实验采用80%-20%的训练测验设置以及5倍交叉验证.这样的过程重复5次,取5次结果的平均值作为最终结果.
另外,所有实验都是在戴尔Precision Tower 7910台式机工作站和一台1.8GHz AMD Ryzen7 4800U 16GB RAM的笔记本电脑上进行的,并在pycharm社区版和matlab R2015a上实现.
4.3 实验结果分析
本文所提出的ISoRec模型源于传统的SoRec模型.因此,为了评估我们模型的有效性,我们将对表1所示的4个模型进行对比实验.在对比实验进行之前,需要对上述模型中的参数利用交叉验证法进行敏感度实验.为简便起见,将M1、M2、M3模型中的正则化系数λ1、λ2和λ3预设为λ1=λ2=λ3=λ,即仅对单一参数进行训练.此外,还需要训练M3模型中的参数利用交叉验证法进行敏感度实验.为简便起见将M1、M2、M3模型中的正则化系数λ1、λ2和λ3预设为λ1=λ2=λ3=λ,即仅对单一参数进行训练.
表1 实验对比模型Table 1 Comparison models in experiments
表2 模型M1- M4在D1-D5上的最优λ和ωTable 2 Optimal λ and ω of models M1-M4 on D1-D5
图1 模型M2在D1-D5的训练过程Fig.1 Trainning process of M2 on D1-D5
表2给出了参数λ和ω在每个数据集上的最优值;图1给出了模型M2在5个数据集上关于指标RMSE的训练过程;图2描述了模型M2分别在5个数据集上关于评估指标MAE的训练过程;表3和表4总结了模型M1-M4在数据集D1-D5上分别关于指标RMSE和MAE的实验结果.因此,我们有以下发现:
1)模型M2在5个数据集上关于两个评估指标的表现整体较好,但是在不同的数据集上差异也有所不同,比如在图1(a)、图2(a)、图2(b)中可以看到,模型2的收敛曲线是明显低于模型M3之外,与模型M1和M4相差很小,所以认为模型的性能在不同的数据集上表现是有差异的,但是在不同数据集之间,M2模型的精度仍然是最高的,除了在数据集D1上关于RMSE指标M4的精度稍高以外.
表3 模型M1-M4在D1-D5上的RMSETable 3 RMSE of models M1-M4 on D1-D5
图2 模型M2在D1-D5的训练过程Fig.2 Trainning process of M2 on D1-D5
2)其次,从图1和图2可以很容易看出,模型M的收敛迭代次数整体上是多于M1和M4的,这是因为由模型M2的损失函数可以看出,其引入了更多的变量,这会增加模型的训练时间;而模型M4的收敛速度是最快的,这是显然的一点,因为其结合的广义动量法能够很好的加快收敛速度.
表4 模型M1- M4在D1-D5上的MAETable 4 MAE of models M1- M4 on D1-D5
3)由表2可以看到,ω的最优值随数据集的不同而不同.不同模型在同一数据集上的λ的最优值有差别,另外对于同一模型在不同的数据集上的λ的最优值也是不同的.
图3 模型M2在D1-D5上的潜在因子的分布情况Fig.3 Distribution of latent factors obtained by M2 on D1-D5
表5总结了模型M1-M4在数据集D1-D5上关于RMSE的迭代收敛时间;图3是模型M2分别在D1-D5上得到的低秩特征矩阵中元素的分布.由此,我们发现:M2的平均收敛时间相较于M1和M4更长,且M2能够保证非负性.
表5 模型M1-M4平均收敛时间(毫秒) Table 5 Average converge time of models M1-M4 (MS)
(13)
基于式(13),测试分数可以通过下式计算:
(14)
式(14)是自由度为m-1和(m-1)(n-1)的F分布,因此如果FF大于这个临界值,则可以用临界水平α拒绝原假设.在我们的实验中,涉及3个模型和5个数据集,并且对每个数据集进行一个测试,因此m=4和n=5.因此,FF的分布即为自由度为m-1=3和(m-1)(n-1)=12的F分布,在α=0.05的置信水平上F(3,12)的临界值为3.49,因此,如果我们实验的测试分数大于这个临界值,就可以拒绝零假设.通过计算,关于指标RMSE和MAE以及时间损失的测试分数分别为16.95、8.5和37.67.结果均大于3.49,因此可以认为在95%的置信水平下,各测试模型性有显著性差异.
5 结 论
本文从SoRec模型出发,充分考虑了用户潜在因子的多样性.一方面由评分信息预先计算出用户间的信任关系矩阵,另一方面通过引入额外的用户特征矩阵,进而构建了ISoRec模型.特别地针对使用数据集非负性的特点,将基于梯度下降法的单因子乘法更新规则加入到模型的训练中以保证输出的潜在因子的非负性.最后,在5个真实的工业数据集上进行了对比实验,结果表明我们提出的ISoRec模型的预测精度与SoRec相比有明显的提高.将来,我们也可以在其他基于矩阵分解的推荐模型中进行拓展,并进一步考虑信任者和受信任者的影响来优化本文所提出的模型.此外,还可以从上下文等其他信息中获取隐含信任矩阵,而不是仅仅依赖评级信息.最后,尝试研究正则化参数的自适应性也是未来的工作方向之一.