Title
On both Cold-Start and Long-Tail Recommendation with Social Data
写在前面
这篇论文提出了一种基于MF的协同过滤算法,来同时解决现实世界推荐系统面临的两个挑战:冷启动和长尾推荐。
- 冷启动是针对一个完全新的用户或商品做推荐;
- 长尾推荐的核心是给大多数交互信息少的用户或商品做推荐。
创新点
- 是一个能同时解决冷启动和长尾推荐的模型;
- 此外,提出了该模型的快速扩展,并且分析了误差边界和泛化边界;
方法
普通的矩阵分解形式如下:
(Y为评分矩阵,k为隐向量维度,U为用户隐向量矩阵,I为物品隐向量矩阵)
传统的MF模型,存在冷启动问题,毕竟有用户交互信息才能参与训练。
为了解决冷启动问题:
文中提到需要参考一些辅助信息,例如:
- 用户属性(性别、年龄、出生地等)
- 商品属性(图片的CNN特征等)
- 社交属性(用户朋友群体)
本文提出的MF模型正利用了用户维度的辅助信息:
这里的s为用户辅助信息的维度,比如信息包括(年龄、性别、出生地、社交关系),那么s就等于4;W相当于是一个从用户信息到物品评分的映射;
这是一个关于用户辅助信息的线性模型,因此不存在冷启动问题。
为了解决长尾推荐问题,文中提出一种思路:
将长尾问题中的短头(short head)和长尾(long tail)分开来讨论,这样做是因为SH部分的数据通常是低秩的,LT部分的数据是稀疏的。分开讨论,便于引入不同的正则项。
因此问题转换成了:
SH部分使用了核范数为正则项,确保低秩;LT部分使用了L1范数,确保稀疏。
核范数部分可以写成XW奇异值的和:
最终得到下面的目标函数:
这个函数是非凸的,文中提出一种交替优化的算法:
固定LT部分,优化SH;然后固定SH部分,优化LT,迭代直到收敛。
原模型的扩展
扩展部分涉及到大量公式推导,这里就不详细介绍了。
实验结果
可以看到,在几个公开数据集上的效果优于NCF以及一些传统方法。
结论
本文通过提出一种对用户辅助信息线性建模的算法,将用户冷启动问题和长尾推荐问题在一个模型上解决,并提出了一系列的优化方法和理论分析。