实践线性模型对于大规模一类别协同过滤

来源:互联网 发布:pc端口 命令 编辑:程序博客网 时间:2024/06/05 14:24

摘要:协同过滤是对于个性化推荐问题的方法。然而,一个困难的场景是在时间中对于one-class协同过滤(OC-CF),一个用户更偏爱有Item的例子。在这种例子中,个性化的推荐算法高度可以缩放。现存的OC-CF线性推荐系统在标准任务完成很好的表现,但他们包含解一个大量的回归子问题,限制了他们的能力到大规模问题。我们显示这可能缩放线性推荐系统到大数据通过学习一个OC-CF模型关于user-item相互矩阵。
1 简介
个性化推荐系统是一个核心组成在现代电子商务服务。协同过滤是一个标准方法对于基于数据集中的信息的推荐选项从一类用户中。在CF上大多数任务考虑了精确的反馈设定,其中用户表达了正和负的反馈设定,对于就rating 或者喜欢、不喜欢的偏好。相反,在one-class 协同过滤设定,我们没有精确的负偏好信息。例如考虑推荐item给user基于他们购物历史。可以假设一次购物暗示了一次正偏好。然而,购物的缺失不代表负偏好,这可能仅仅是用户没意识到这个item。
在设计实际推荐系统有很多因素去考虑。首先,一个推荐系统应该产生好的推荐项可以就相关性来量化。推荐系统的相关性是用来衡量评估指标例如precision@k, recall@k 等等。第二一个推荐系统应该可以高度拓展的。在现在应用中,很普通有百万级用户和items和百亿级交易记录。一个模型应该能够处理数据以一种效率计算的方式,当user items的数量上升到该规模。第三,推荐相似的items在现实推荐系统中很普遍的。例如Amazon显示产品建议给用户基于他们之前浏览的items。因此一个推荐算法应该合理的对量item之间的相似度。并且推荐系统的可解释性很重要。通过节食推荐系统,系统变得透明,建立用户的信任并且使他们信服去消费推荐项。例如“为嘛这个被推荐”特征在Netfix给用户解释他们的推荐通过对他们展现相似的电影,他们过去喜欢的类型。
然而由许多文章关于OC-CF,现存的方法缺乏一个或更多的急需之物。基于近邻的方法是可拓展的,包含一个相似度度量并给出可解释性的推荐。然而他们的推荐的相关性是很弱的。矩阵分解模型优化一个非凸目标,其解对初始化和超参敏感。矩阵分解模型对于top-k ranking表现是无法比较的。并且推荐系统模型中没相似度就无法解释。另一方面,线性推荐器就相关性的来说是最好的,并且模型精确学习了一个相似度度量。并且想近邻模型,推荐系统从线性模型更容易解释。然而当前线性方法计算昂贵限制了他们应用到大规模数据。
本文我们解决了线性模型计算的瓶颈,能使他们拓展到大规模OC-CF问题。我们的方法Linear-Flow,形式化OC-CF 作为一个正则化的线性回归问题使用一个随机SVD为了快速降维。经管正则化的回归和随机SVD不是新的idea,但把他们结合一起使用到OC-CF内容是第一次。
2 背景
u表示用户集合,I表示item集合,m=|U|,n=|I|. 在OC-CF,我们有购物矩阵R{0,1}m×n. 我们使用Rui表示对于用户u和item i之间的购物状态。我们使用R:i表示每个用户关于item i的指示向量, 相似度Ru:表示一个用户的偏好向量对于每个item i。我们表示R(u)为用户u的购物集合。在OC-CF中的目标是去学习一个推荐器,也就是一个矩阵R^Rm×n. 我们称R^为推荐矩阵。
2.1 近邻方法
在基于item的近邻方法,我们产生一个下列形式的推荐矩阵:

R^=RS
(1)
SRn×n 表示item的相似度矩阵,使用预定义矩阵S依赖于R。一个典型的例子是余弦相似度:
Si,i=RT:iR:i||R:i||2||R:i||2

稀疏化S以便于它们列只包含top-k相似项。近邻方法有很多原因具有吸引力。很简单实现,有效,可解读。然而他们不能采用数据的特征,它们依赖于一个固定的S,不能从新数据中学习。进一步推荐表现对于S的选取很敏感。
2.2 矩阵分解
矩阵分解方法是一种带精确反馈的协同过滤。基本思想是嵌入用户和items到一些共享隐藏空间,旨在推断复杂偏好的简要对于用户和items. 加权矩阵分解对于One class协同优化下列优化函数:
minA,BuU,iIJui(RuiAT:uB:i)2+λ(||A||2F+||B||2F)

其中ARk×m,BRk×n, JRm×n+是一个预定义的加权矩阵其中
Jui=||Rui=0||+α||Rui>0||

原创粉丝点击