二、Collaborative Filtering for Implicit Feedback Datasets
阅读笔记
1.介绍
-
推荐系统分类——基于策略
- 基于行为的策略:信息冗余且难以收集
- 协同过滤:冷启动问题
-
推荐系统分类——基于输入类型
- 显示反馈
- 隐式反馈
-
隐式反馈的特点
- 没有负反馈,也就是说即使用户没有行为也并不意味着用户不喜欢
- 隐式反馈本质上是含有很多噪音的,并不能真正反映出用户的偏好
- 显示反馈的数值反映了用户的偏好;而隐式反馈的数值反映了置信度(也就是用户有多大可能性对该物品感兴趣)
- 隐式反馈的推荐需要合适的方法来进行评估
2.准备工作
- 准备了用户数据矩阵$R$,这里的$R_{ui}$不是偏好值,而是对用户行为的观察。论文中$R_{ui}$是用户$u$全程观看电影$i$的次数。如果用户$u$观看了电影$i$的70%,那么$R_{ui}$就被设置为0.7
3.以前的研究
- 近邻模型
- 潜在因子模型(即PPT中的显式反馈)
4.我们的模型
$$p_{ui} = \left{ \begin{array}
\overline 1 & r_{ui} > 0 \ 0 & r_{ui} = 0 \
\end{array}\right.$$
- 使用$置信度C_{ui}来为偏好度$P_{ui}$加权$
$$C_{ui}=1+αR_{ui}$$ - $λ(\sum_u|x_u|^2 + \sum_i|y_i|^2)$防止过拟合
- 交替最小二乘过程,前文已经叙述
- 每次迭代时间开销$O(f2N+f3M)$,其中$N$是非0观察值的数量,$M$是用户数量,$f$是特征数量
- 特点
- 转换直接观察值($r_{ui}$)到两个解释数值:偏好度$p_{ui}$和置信度$r_{ui}$
- 输入规模线性倍数的时间开销
5.推荐解释
- 好的推荐需要有理论解释 —— 文献10[Well Accepted]
- 通过对于${P_{ui}}\prime=X_uT\times Y_i$的推导,证明推荐的数学合理性
- $W^u$被看做是用户$u$的权重矩阵
- 物品$i$和物品$j$在用户$u$眼中的加权相似度为$S_{ij}u=Y_iTW^uY_j$
$$
\begin{align}
{P_{ui}}^\prime & =Y_i^T\times X_u\
& =Y_i^T\times (YTCuY + λI)^{-1}\times YTCup(u)\
& =Y_i^T\times W^u\times YTCup(u)\
& =\sum_{j:r_{ui}>0}S_{ij}^uC_{uj}\
\end{align}
$$
6.实验
- 实验数据处理
- 预处理
- 评估方法
- 对比策略
- (1) 按照节目流行度进行推荐排序
- (2) 基于物品的邻域模型$ P_{ui} = \sum_j \frac{ r_i^T r_j } { ||r_i|| ||r_j|| } r_{uj} $
- 评估结果
- 使用$r_{ui}$效果不佳,改为使用$p_{ui}$
- Dense SVD算法用于协同过滤参考文献18
7.讨论
这篇论文主要做了哪些工作,创新点在哪里
- (1)
隐式
用户观察值分解为偏好值和置信度(对于显示用户行为无效) - (2) 使用了潜在因子(特征向量)算法,将所有User-Item矩阵中的数值作为输入(即使没有观察值)
- (3) 优化算法,使迭代的时间开销只随输入数量线性增长
- (4) 使用代数演算转换为基于物品的邻域公式,从而进行推荐解释
未来的工作
- (1) 使用一个随时间变化的变量来确定用户在特定时间观看特定节目的可能
- (2) 特定节目在不同时间段的吸引度