问题背景
协同过滤是目前构建推荐系统最流行的方法,并且已成功应用于许多应用程序中。
通常,在推荐系统中,我们有一组用户和一组项目。每个用户通过一些值对一组项目进行评分。推荐系统的任务是预测用户u在未评级项目i上的评级,或者通常根据已经存在的评级为给定用户u推荐一些项目。
随着在线社交网络的出现,信任传播已被证明是社会科学,社交网络分析和基于信任的推荐中的关键现象,因此将社交网络纳入推荐系统变得越来越重要,基于社交网络的推荐方法已经出现。该方法假设用户之间存在社交网络,并根据与给定用户的直接或间接社交关系对推荐提供辅助参考。
下图显示了一个样本社会评分网络。
基本思想
本文中,作者探索了一种基于矩阵分解的社交网络推荐方法,将信任传播机制纳入模型中,以提高推荐质量,称为SocialMF。模型中,作者使每个用户的特征都取决于他在社交网络中直接邻居的特征向量,即在社交网络中连接的用户的潜在特征将是依赖的,以此来表现信任的传播。这有效解决了推荐过程中的冷启动问题。
冷启动用户是推荐系统中最重要的挑战之一。由于冷启动用户比评分用户更依赖于社交网络,因此对于冷启动用户而言,使用信任传播的效果变得更加重要。而且,在许多现实生活中的社交评分网络中,很大一部分用户不进行任何评分,他们仅参与社交网络。SocialMF模型强制用户特征向量接近其邻居的特征向量,从而能够为没有评分或评分很少的用户学习潜在的用户特征。
论文模型
为了对本文所设计的SocialMF算法有更为直观的理解,我们先介绍一下传统的PMF算法:
假设我们有M个项目,N个用户,评分1-K。Rij表示用户i对项目j的评分。U和V分别代表用户和项目特征矩阵。列向量Ui和Vj分别表示特定的用户特征向量和项目特征向量。
那么,我们将评分的条件概率定义为:
其中,g(x)是一个逻辑函数,如下:
此外,假设用户和项目特征向量均符合均值为0的球形高斯先验分布:
通过贝叶斯推断,可以得出U和V的对数后验概率,如下所示:
可以等价于最小化如下所示的二次正则项目标函数:
综上,我们可以纯粹基于用户项目评分矩阵来学习用户和项目的潜在特征向量。相应的图形模型如图所示:
再介绍本文提出的将信任传播纳入矩阵分解模型以在社交网络中进行推荐的方法:
由于社会网络的存在,用户u的行为受到其直接邻居的影响。换句话说,用户u的潜在特征向量取决于其所有直接邻居的潜在特征向量。将此影响定义如下:
请注意,社交网络仅影响用户潜在特征向量,并不会改变观察到的评分的条件分布它。因此,观察到的评分的条件概率与PMF算法相同:
与PMF相似,通过贝叶斯推断,对于给定等级和社交网络矩阵,潜在特征向量的后验概率满足:
其中有关用户潜在特征的部分依旧是一个正态分布,它是两个不同正态分布的乘积,以使用户特征向量既小又接近其直接邻居的特征。
类似的,会得到SocialMF算法的后验概率的对数以及正则化目标函数。
利用梯度下降法即可求解得到目标函数的最小值。
SocialMF图形模型如图所示:
注意,与普通的社会化推荐不同的是,社交矩阵未在图中明确显示,而是通过信任数据来更新传统的用户特征矩阵(下图所示为传统社会化推荐)
算法复现
参数设置
PMF原始模型
本文所建模型涉及信任数据的处理
SocialMF核心模型
为了节省时间,进行5次迭代,2次交叉验证,输出结果如下:
参考资料:
http://web.cs.ucla.edu/~yzsun/classes/2014Spring_CS7280/Papers/Recommendation/p135-jamali.pdf
https://blog.csdn.net/qq_43741312/article/details/97548944
https://github.com/hongleizhang/RSPapers
https://blog.csdn.net/shenxiaolu1984/article/details/50372909
https://zhuanlan.zhihu.com/p/27399967
---------- END ----------