基于用户社交关系的个性化推荐
摘要:推荐系统是为了推荐用户可能感兴趣的产品,推荐平台上的内容为用户提供个性化服务逐渐成了很多平台的重要任务。但是很多平台只能获取到用户的隐式反馈信息,而且每一个用户只在少量的商品上产生行为,导致平台获取到的数据集是非常稀疏的。传统的推荐算法在面对这两个问题的时候效果并不好。在这篇文章中,我们提出了一个基于社交中相似好友的贝叶斯个性化排序算法(SFSBPR),缓解了在基于用户隐式反馈的推荐中的数据稀疏性问题。实验结果表明我们的方法比其他推荐算法在现实世界的稀疏数据集上效果更好。
关键词:个性化推荐,社交关系,隐式反馈,稀疏数据集
Abstract:The goal of recommender system is recommending products users may be interested in. Recommending content is an important task in many platforms. But many platforms only have implicit feedback information from users. Each single user generates behavior on only a few products lead to sparse datasets from users. And traditional recommending algorithms show poor performance when face the two problems. In this paper, we present a social bayesian personalized ranking based on similar friends (SFSBPR). We alleviate the sparsity problem when recommend by users’ implicit feedback. Experiment on real-world sparse datasets show that our method outperforms current state-of-the-art recommendation method.
Key Words:Personalized Recommendation, Social Relationship, Implicit Feedback, Sparse Datasets
1.引言
个性化推荐系统在很多信息系统中发挥着越来越重要的作用。大多数的电商网站,像Amazon,eBay 和淘宝都在不同程度上采用了各式各样的推荐系统。还有很多新闻网站还有内容社区,像头条,知乎,抖音也都用推荐系统来为用户提供优质的个性化服务。人民网能通过个性化推荐技术来对用户提供推荐,让用户能更好地获得他们感兴趣的内容。
可是,在很多平台的推荐中有两个主要问题。第一个问题是很多平台只从用户那里获得了隐式反馈信息,显式的反馈需要用户去给推荐的内容打分,这样对用户并不友好。第二个问题是获取的数据的稀疏性,这些平台的数据量是非常巨大的,但是每个用户所能看到的是有限的。每个用户最终选择使用或购买的产品也只占总量的很小一部分。
推荐系统会对用户没有给予评价的产品做出预测,大多数的预测都是推荐系统依据显式反馈(用户对商品的评分)来做出的。可是,在很多平台,像今日头条,微博,淘宝中,隐式反馈的收集会更简单,并且对用户更友好。隐式反馈包括用户点击,浏览,选择收藏等行为。我们几乎能在所有平台中通过记录用户的行为来获得正反馈,但是用户的负反馈就很难获取到。打比方说,一个用户点击阅览一篇文章可能代表着用户对这个文章有好感,但是没有选择点击这篇文章并不代表用户对其没有好感。
另一个问题是每一个用户只在少量的商品上产生行为,但是总的商品数量是巨大的,导致用户选择的公共商品比较稀少,用户对商品的反馈数据也是极其稀疏的。
在网络社区中,用户的社交关系往往是比较容易获取到的。事实上,用户的偏好除了可以从自身的行为中获取外,还可以从他们的好友的行为中获取。具有相似兴趣的朋友对彼此有更强的影响,更容易产生相同的行为[10]。
在这篇文章中,尝试着引入了用户间的社交关系以此来缓解推荐系统中的数据稀缺问题,一个基于SBPR的推荐算法被提了出来[5]。SBPR的主要思想是利用贝叶斯最大后验估计来从找到商品对之间的全序排列关系。
这篇论文中的主要贡献总结如下:
1.我们着眼于推荐系统中的数据稀疏问题和单类协同过滤问题[8],提出了一个新颖的名为SFSBPR的基于相似好友的BPR(Bayesian Personalized Ranking)算法,有效的缓解了推荐中的这两个问题。
2.在稀疏数据集上评估了提出的方法,实验结果表明提出的方法极大的提高了推荐效果。
2. 相关工作
在推荐系统中,最被广泛使用的是KNN协同过滤[1]。其中包括两种协同过滤,基于用户的协同过滤和基于物品的协同过滤。这两种方法的大致思想是找到和用户相似的人,然后这些人的偏好也跟该用户相似。
紧随其后的是隐因子模型,隐因子模型依靠学习没有直接观察到的参数来补充用户-物品矩阵中的值。隐因子模型被广泛运用在推荐系统中[3],很多学习特征矩阵的算法被提了出来。奇异值分解(SVD)是其中之一[2],并且在推荐系统中得到了好的运用效果。但是用SVD来学习矩阵分解模型容易过拟合,所以SVD++被提出来解决这个问题。但是当数据集非常稀疏的时候,这些方法就不是好的选择了。
基于社交网络得推荐算法也被提了出来[11],像基于概率矩阵分解的社交化推荐(SoRec) [7],将用户对商品的评分矩阵与用户社交关系网络的信息融合,进行概率矩阵分解。这个算法缓解了数据稀缺性问题和冷启动问题。可是这个方法只适用于评分预测问题,它在解决单类协同过滤问题的时候效果比较差。然后一些处理单类协同过滤问题的方法就应运而生了[8, 12].。
推荐系统主要的目的是预测用户偏爱的Top-k商品,然后将这些商品推荐给用户。个性化排序的方法就可以就更适合这个过程,这一类算法不是优化用户对商品的评分预测,而是直接优化用户对商品的排序预测。在推荐系统中的隐式推荐,像BPR这种类型的算法就有更出色的表现[4]。随着用户和商品数量的增长,基于排序的推荐算法可以更准确地反映用户的偏好。
关于SFSBPR,SVD和SoRec和传统的BPR这几种方法的对比讨论会在后面详细给出。对比上面这些方法,在单类推荐中,数据集非常稀疏的时候,我们的方法能够产生更好的预测结果。
6. 结论和未来的工作
在这个工作中,我们引入了社交关系来缓解数据稀疏问题并且提高了在单类推荐问题中的效果。在稀疏数据集上的实验表明我们的方法有效的提高了推荐的准确性。在未来的工作中,我们将着重于基于用户隐式反馈的推荐。我们会探究更多的因素来缓解数据稀缺问题并且用更多的特征来对用户偏好建模。我们会探索更多方法来对用户偏好建模和解决冷启动问题。
分享让更多人看到
推荐阅读
相关新闻
- 评论
- 关注