协同过滤及user-cf,item-cf在新闻应用中的优缺点。

协同过滤

协同过滤分为memory based和model based。user cf 和 item cf 都是基于此的缓存

user cf

clipboard.png

列是user,行是item。目的是计算用户之间的类似度,来填补图中item5的评分。性能

  1. 找类似spa

用皮尔逊相关系数,cosine等来计算类似度。排序

  1. 计算物品评分,并排序。
    公式以下。
    $$p(u,i) = \overline{r_u} + \frac{\sum_{v \in N} sim(u,v) \times (r_{v,i} - \overline{r_v})}{\sum_{v \in N}sim(u,v)}$$ip

这里p(u,i) 表明用户u,对物品i的评分。sim(u,v)表明用户u,v类似度。
$r_{v,i}$表明用户v对物品i的打分。 $\overline{r_v}$表明了it

这样咱们就能够计算出小明对其余物品的打分预测值(这里每次计算都须要用户之间的类似度,因此能够缓存起来)。class

推荐方法分为两种。一种是top-n推荐,一种是关键推荐。top-n推荐的意思就是统计在前k个用户中,统计出现频率最高且在目标用户中没有出现过的。关联规则,就是在这前k个用户中,挖掘关联规则,相似于‘买了xx的用户还买了哪些’cli

基于物品的协同

1.类似度
行是物品,列是user。
首先找到最类似的物品。扩展

2.计算用户对全部物品的评分。
根据最类似的物品的评分来计算未被评分的物品。sed

$$\frac{\sum_{j \in rel(u)}sim(j,i)\times r_{u,j}}{\sum_{j \in rel(u)}sim(j,i)}$$
表达出来就是类似度* 评分。

两者优缺点。

首先两者都是稀疏矩阵,为了减小计算量,能够预先聚类一下。

场景: user-based. 按理说更适合新闻这种,item量远大于用户的。对于咱们来讲,由于咱们是取1周内的文章,因此相对来讲,item 量没有过大的扩展。item-based更适合item量较小的。

性能及复杂度: user-based 的缺点也比较明显。类似用户的稳定度要小于物品的稳定度程度,因此须要在线更新。 而item-based离线计算就可以得到比较好的复杂度。

推荐多样性和精度: 从单一用户角度,确定是user-based 更加多样,但同时也更加容易推荐比较热的东西。item-based,是根据用户的历史记录来推荐,因此相对来讲,更容易拟合。item-based, 对于新用户(读取量下于10的时候的推荐效果更好。)。 item-based ,更容易发现长尾数据,由于只要有一些用户买了这个长尾的物品,那么这两个物品就有很高的相关性).

稀疏性: 从稳定性上讲,user-based,item-based 对于新闻应用,固定item的状况下,类似度的稳定性上,item-based 更好一些。

相关文章
相关标签/搜索