【每周一文】Collaborative Filtering for Implicit Feedback Datasets(2008)

来源:互联网 发布:ubuntu 语言包 编辑:程序博客网 时间:2024/05/17 23:04

概述

协同过滤(Collaborative Filtering)是推荐领域非常重要的算法策略,由于它的领域无关性,应用非常广泛。本文解决的一个问题是:在训练数据集合中,只有用户的隐式反馈,例如用户的浏览行为、收藏行为等,没有用户直接打分行为;即只有用户偏好行为,对于用户不喜欢的商品没有数据支持;基于以上数据本文提出一种隐式因子模型(Factor Model)解决该问题,并给出优化求解。

问题建模

矩阵分解

推荐问题解决的问题归纳为给用户u推荐物品i,并且满足用户偏好、新奇度和多样性等。协同过滤和矩阵分解是常用的方法。

协同过滤

按照用户和物品维度可以分为基于用户的协同过滤和基于物品的协同过滤,主要思想是计算用户与用户、物品与物品以及用户和物品的相关度。以物品协同过滤举例,将物品表示为用户维度的向量,这样就可以计算物品之间的相似度,则用户与物品相似度为

rui=jSki:usijrujjSki:usij
其中Si:u表示和物品i最相似的物品集合

矩阵分解

用户对物品的打分矩阵可以通过矩阵分解技术得到用户和物品在低维空间的表示,这样可以通过向量相似度计算得到用户-用户、物品-物品以及用户到物品之间的相似度。
SVD分解:可以解决该问题,由于用户对物品打分矩阵不是完备的,需要对缺少数据进行处理,此时应用SVD才能得到较好效果。
因子分解:对SVD问题进行补充,仅仅考虑已知的打分,归约为

min rui0(ruixTuyi)2+λ(||xu||2+||yi||2)
该文提出的隐式反馈模型就是基于该模型进行改进。

模型

隐式反馈特征

相对于显示反馈数据,隐式反馈有以下几方面特征
1. 没有负反馈,只能得到用户喜欢那些物品,对于用户不喜欢的物品没有数据支持。
2. 隐式反馈噪声比较多,不像用户评分行为是用户强烈的主动行为,用户浏览行为、点击行为都相对比较被动。以浏览行为为例,可能某个页面是用户默认打开页面导致打分较高。
3. 显式反馈代表用户真实的喜好程度,隐式反馈代表置信度
4. 评估相对不容易

建模

在该模型中对rui引入喜好变量和置信度变量,分别表示如下
喜好变量pui,定义如下

f(n)={1,0,if rui0if rui=0 

置信度变量cui表示用户对物品喜好的置信程度,常用度量为cui=1+αrui或者cui=1+αlog(1+rϵ)
最终模型为
min uicui(puixTuyi)2+λ(||xu||2+||yi||2)

这里需要解决两个问题1)如何对置信度进行度量2)如何求解该最优化问题

模型求解

针对以上两个问题

1.置信度度量方法,可以采用上面提及的两种方法,其中针对第一种方法实验验证当α40效果较好
2. 模型求解,该模型相对于因子分解,需要求解一个稠密矩阵的分解,按照原始SGD进行求解时间复杂度较高
3. ALS进行求解,对用户维度和物品维度分别进行求解,每一步求解都是一个最优化问题,可以采用正规方程进行求解

总结

该文提出一个隐式反馈模型对隐式反馈数据进行建模,将用户对物品的观测行为分解为喜好程度和置信程度两个维度变量进行求解,通过TV播放数据验证效果较其他方法较好。
在后面工作中,给用户推荐页面,可以将对用户隐式行为即浏览和点击行为进行建模,进行效果优化。

0 0