1. 论文简介
下载地址:http://www.eng.tau.ac.il/~noamk/papers/KNPS12.pdf
文章发表在Recsys 2012上,作者是微软以色列Herzliya研发中心的。
2. 论文场景
主要为了解决微软Xbox Live Marketplace上的游戏和电影推荐。因此希望推荐算法能够做到跨领域(cross-domain)。
3. 数据特点
Xbox的用户平均拥有18款游戏,观看7部电影。其中用户不怎么玩的游戏,或没完整观看的电影都被过滤掉了。
由于Xbox的用户量很大,一部新的游戏或电影上架很快就有用户找到并购买,因此不存在item冷启动问题。
用户会主动搜索游戏并购买,因此对游戏来说,也不存在用户冷启动问题。但是对电影来说,存在用户冷启动问题。这也是希望推荐算法能够跨领域的原因,通过游戏数据来弥补电影数据的不足。
没有评分信息,只有隐式反馈(购买、观看)正样本。
负样本是随机生成的,从item的池子里过滤掉这个用户拥有的,再按照item的热度随机生成与正样本数量相等的负样本。热度即是item在正样本池子里出现的次数。
4. 系统架构
5. 关键模型
推荐模型基于SVD,即将稀疏的0-1矩阵分解为M=U'V。与传统的SVD方法不同,加上了一步bayesian推导的过程:
其中p(l_ij | u_i, v_j, b_j)即是带偏置的SVD的预测函数,q(u_i) q(v_j)等用于计算各个latent vector的先验概率,假设参数服从高斯分布。
u_i v_j b_j q(u_i) q(v_j) q(b_j)都是离线算好的, p(l_ij | u_i, v_j, b_j)是实时计算的。
6. 评测方法
评测方法用了2个: Precision和Mean rank。
将用户的positive samples留下一个用于测试,剩下的用来训练。
计算Precision时首先构建一个分类问题:除了预留的一个正样本,再从用户没有关联的item中按照热度随机选一个负样分,对正样本和负样本做分类。效果如下,其中Non-Uniform即是按照热度选择测试负样本,Uniform是等概率选的:
Mean rank是指,把这个正样本塞到剩下的大约8000个item中进行排序,看能排到第几。结果也很有意思,历史记录越丰富的用户,效果越差。论文解释说,纪录越丰富的用于,选择的长尾内容越多,不太好建模。
7. 外部技术
论文进行bayesian推导时用了一个近似算法,来自于:Expectation Propagation。
求解是用的是微软剑桥研究院开发的MatchBox库。
8. 其他摘要
论文强调说,推荐系统的关键在于”长尾化用户的体验“:把合适的长尾内容推送给可能感兴趣的特定用户,这对提升用户的活跃度很很有帮助的。