协调滤波:基于领域的推荐
1. 基于用户评分
基于用户评分
- 基于领域用户:预测用户$$u$$ 对 物品$$i$$的评分$$r_{ui}$$;利用和用户$$u$$ 兴趣相近且对物品$$i$$做出评分的用户;
- $$w_{uv}$$ 是用户$$u$$和$$v$$的兴趣相近程度
- 用户的$$k$$近邻:k个与用户$$u$$ 相似度$$w_{uv}$$最高的用户$$v$$ , 表示为$$N(u)$$
- 选择k个和用户$$u$$兴趣相近似且对物品$$i$$已经评价过的用户代替$$k$$ 近邻,表示为$$N_i(u)$$
** 用户预测的评分$$r_{ui}$$,用 $$k$$ 近邻用户的评价得分
$$\hat{r}{ui}=\frac{1}{|N_i(u)|}\sum{v \in Ni(u)} r{vi}$$
($$|N_i(u)|$$表示个数)
** 添加权值
$$\hat{r}{ui}=\frac{\sum{v \in Ni(u)} w{uv} r{vi}}{\sum{v \in Ni(u)} |w{uv}|}$$
** 上式没有考虑到用户使用不同的评价尺度。将$$r{vi}$$进行标准化的转换$$h(r{vi})$$
$$\hat{r}{ui}=h^{-1}[\frac{\sum{v \in nNi(u)} w{uv}h(r{vi})}{\sum{v \in Ni(u)}|w{uv}|}]$$
OK@@@ Empirical analysis of predictive algorithms for collabotive filtering
* 基于用户分类
- 上述通过对领域用户的评分加权计算,本质是回归
2. 基于物品的推荐
- 基于用户推荐是依赖于和自己兴趣相同的用户来预测一个评分
- 基于物品推荐是通过评分相似的物品来预测
$$N_u(i)$$:用户u 已经评分且和物品$$i$$ 评分相近的 物品
用户 u 对物品 i 的评分时用户$$N_u(i)$$中物品的评分的加权平均
$$\hat{r}{ui}=\frac{\sum{j \in Nu(i)} w{ij}r{uj}}{\sum{j \in Nu(i)}|w{ij}|}$$
- 不同用户拥有不同的评分尺度
$$\hat{r}{ui}=h^{-1}[\frac{\sum{i \in nNu(i)} w{ij}h(r{uj})}{\sum{v \in Nu(i)}|w{ij}|}]$$
基于物品推荐的分类
3 基于用户和基于物品的对比
* 准确性
- 推荐系统的准确性很大程度取决于系统中用户和物品数之间的比例
- 用户数量大,物品少,Amazon等,基于物品的推荐
- 用户数量少,物品多,论文推荐等,基于用户的推荐
* 效率
- 推荐系统的内存和计算效率也依赖于用户和物品的数量比例
* 稳定性
- 如果物品的列表稳定性高于用户,那么使用基于物品的推荐效果更好
- 反之
* 合理性
- 基于物品的推荐,很理性强
* 惊喜度
- 基于用户的方法,惊喜度高
4. 近邻方法的要素
- 评分标准化
- 效率
- 近邻的选择
* 评分标准化
* 均值中心化
(1)基于用户的原公式
$$\hat{r}{ui}=\frac{\sum{v \in Ni(u)} w{uv} r{vi}}{\sum{v \in Ni(u)} |w{uv}|}$$
$$\hat{r}{ui}=h^{-1}[\frac{\sum{v \in nNi(u)} w{uv}h(r{vi})}{\sum{v \in Ni(u)}|w{uv}|}]$$
设均值平均化评分
$$h(r{ui})=r{ui} - \bar{r}_u$$
$$\hat{r}{ui}=\bar{r}_u+\frac{\sum{v \in Ni(u)}w{uv}(r{vi}-\bar{r}_v)}{\sum{v \in Ni(u)}|w{uv}|}$$
(2) 基于物品的原公式
$$\hat{r}{ui}=\frac{\sum{j \in Nu(i)} w{ij}r{uj}}{\sum{j \in Nu(i)}|w{ij}|}$$
$$\hat{r}{ui}=h^{-1}[\frac{\sum{i \in nNu(i)} w{ij}h(r{uj})}{\sum{v \in Nu(i)}|w{ij}|}]$$
设均值平均化评分
$$h(r{ui})=r{ui} - \bar{r}_i$$
$$\hat{r}{ui}=\bar{r}_u+\frac{\sum{j \in Nu(i)}w{ij}(r{uj}-\bar{r}_j)}{\sum{j \in Nu(i)}|w{ij}|}$$
* Z-score标准化
考虑到个人的评分范围带来的差异性
(1) 基于用户
$$h(r{ui}) = \frac{r{ui-\bar{r}_u}}{\sigma_u}$$
$$\hat{r}{ui}=\bar{r}_u+\sigma_u \frac{\sum{v \in Ni(u)} w{uv}(r{vi}-\bar{r}_v)/ \sigma_v}{\sum{v \in Ni(u)}|w{uv}|}$$
(2) 基于物品
$$h(r{ui}) = \frac{r{ui-\bar{r}_i}}{\sigma_i}$$
$$\hat{r}{ui}=\bar{r}_i+\sigma_i \frac{\sum{j \in Nu(i)} w{ij}(r{ui}-\bar{r}_j)/ \sigma_j}{\sum{j \in Nu(i)}|w{ij}|}$$
- 基于用户偏好的过滤
@@@learning to order things
@@@ An efficient boosting algorithm for combining preference
@@@ collabotive filtering with decoupled models for preferences and ratings
@@@preference-based graphic models for collaborative filtering
5. 相似度的计算
* 余弦相似度
$$CV(u,v)=cos(xu,x_v)=\frac{\sum{i \in T{uv}}r{ui}r{vi}}{\sqrt{\sum{i \in Tu}r^2{ui}\sum{j \in T_v} r^2{vj}}}$$
$$T_{uv}$$是用户u和用户v都评价过的物品
未考虑用户u和v评分的均值和方差间的差异
* 调整后的相似度
(1) 用户相似度
$$PC(u,v)=\frac{\sum{i \in T{uv}}(r{ui}-\bar{r}_u)(r{uj}-\bar{r}v)}{\sqrt{\sum{i \in T{uv}}(r{ui}-\bar{r}u)^2 \sum{i \in T{uv}}(r{uj}-\bar{r}_v)^2}}$$
(2) 物品相似度
$$PC(i,j)=\frac{\sum{u \in u{ij}}(r{ui}-\bar{r}_i)(r{uj}-\bar{r}j)}{\sqrt{\sum{u \in u{ij}}(r{ui}-\bar{r}i)^2\sum{u \in u{ij}}(r{ij}-\bar{r}_v)^2}}$$
* 其他相似度方法
ok@@@An empirical analysis of design choices in neighborhood-based collaborative filtering
* 均方差(不合适)
* 斯皮尔曼等级关联(SRC)
$$src(u,v) = \frac{\sum{i \in T{uv}}(k{ui}-\bar{k}_u)(k{vi}-\bar{k}v)}{\sqrt{\sum{i \in T{uv}}(k{ui}-\bar{k}u)\sum{i \in T{uv}}(k{vi}-\bar{k}_v)}}$$
$$k_ui$$ 是物品 $$i$$ 在用户 $$u$$ 所评分的排名 排名绕开了标准化的问题。但是当评分只是少数的时候,这种方法会产生大量的并列排名
@@@ rank correlation methods
相似度的重要性
- 例如:用户评分相等,则认为用户相同,实际上用户对不同物品有不同的喜欢,只是计算后的数值相同。
相似度权重要性: 当只有少数评分用于计算时,会降低相似度的权值 ok@@@An algorithmic framework for performing collaborative filtering ok@@@Effective missing data prediction for collaorative filitering
当两个人共同评价的物品数,$T{uv}$ 小于$$\gamma$$, 则相似度$$w{uv}$$:
$$w{uv}^{'}=\frac{min{|T{uv}|,\gamma}}{\gamma}* w_{uv}$$
用户评分过少的物品间的相似度
$$w{ij}^{'}=\frac{min{|u{ij}|, \gamma}}{\gamma}* w_{ij}$$
当$$r>=25$$可以显著提高预测评分的准确性,其中$$\gamma=50$$ 为最佳
收缩 @@@modeling relationships at multiple scales to improve accuracy of large recommender system
贝叶斯观点下,少量评分情况下的用户相似度权值:
$$w{uv}^{'}=\frac{|T{uv}|}{|T{uv}|+\beta}*w{uv}$$
- $$\beta$$通常需要交叉验证,文献中介绍,优化的值是$$\beta = 100$$
差异的说明
ok@@@ Empirical analysis of predictive algorithms for collabotive filtering
* 用户给出一致的喜欢与不喜欢,不如给出差异较大的评分,可以提供更多的信息
* 反用户频率
- 每个物品$$i$$被赋予权重$$\lambda_i$$
- $$\lambda_i = log \frac{|u|}{|u_i|}$$
- 评论了物品$$i$$的用户比例
* 频率加权皮尔逊系数
$$FWPC(u, v) = \frac{\sum{i \in T{uv}}\lambdai(r{ui}-\bar{r}u)(r{vi}-\bar{r}v)}{\sqrt{\sum{i \in T{uv}}\lambda_i(r{ui}-\bar{r}u)^2\sum{i \in T{uv}}\lambda_i(r{vi}-\bar{r}_v)^2}}$$
- 补充 OK@@@ an automatic weighting sheme for collbarative filtering
领域的选择
- 全局过滤选择最有可能的n个物品
- 每一步选择最有可能的n个物品
* k的选择
- k<=20的时候,预测精度低
- k>50后重要关联下降
* 缺点
- 覆盖受限 用户近邻的数目很少
- 数据稀疏
1.冷启动
@@@methods and metric for cold-start recommendations
2 .解决办法:
(1) 用默认数据区填充 评分用户的中值,物品或者用户的平均分 ok@@@Emprical analysis of predictive algorithms for collaborative filtering ok@@@item-based weighted top-Nrecommender system
(2) 内容信息去填充 ok@@@a content-collaborative recommender that exploits wordnet-based user porfile for neighborhood formation ok@@@combining coolaborative filtering with personal agents for better recommendations ok@@@ content-based collaborative filtering for improved recommendations
(3)filterbots自动填充 ok@@@combining coolaborative filtering with personal agents for better recommendations ok@@@Grouplens:applying coolaborative filtering to usenet news
(4) 内容相似性替代和补充评分关联性 OK@@@Learning collaborative information filters OK@@@Combining usage,content and structrue data to improve web site rcommendation OK@@@ A framework for collaborative ,content-based and demographic filtering. @@@Combining content and collaboration in text filtering
* 上述填充方法的缺点:
用默认数据区填充缺失数据会导致推荐的偏差 用内容填充的方法不适应计算评分或者相似性