【推荐系统实践】协同过滤

1. 推荐系统常用评价指标

主要讨论的是topN推荐

准确率,召回率,覆盖率(有多少物品被推荐出来了),流行度(推荐物品的流行度,计算平均流行度对每个物品的流行度取对数,因为满足指数分布)

 

2. 协同过滤

2.1 user base

计算两两用户的相似度,复杂度为O(U*U)

计算优化点:建立物品-用户的倒排表,物品下,每两个用户+1

关键参数K:参考最相似的k个用户的打分,k越大,越接近于热点,流行度越高,覆盖率越低,但准确率和召回率不一定

算法优化点:惩罚热门,原来分子是1的加和,改成1/log(1+物品i的热度)

2.2 item base

参数k:对指标没有明显规律(?)

对活跃的用户进行惩罚:和上面一样

哈利波特问题,对热门物品进行惩罚:所有物品都与哈利波特相似,分母加上(1-a) a指数

物品相似度归一化(重要):对相似矩阵,按列除以每列最大值。一般来说,热门门类的物品相似度比较大,不归一化的话,容易推荐出热门物品

2.3 对比

UserCF更加社会化,反应了所在群体的喜好

itemCF更加个性化,反映了自己的兴趣

新闻推荐中,兴趣比较粗粒度,热点大家都爱看,并且新闻更新很快,基本都用userCF

在电影,书籍推荐中,兴趣比较精细

 

3. 隐语义模型
topN推荐的关键问题:选取负样本

一般来说,正负样本数量一样,选那些热门但是没有行为的物品

正负样本比是关键参数,负样本越多,越接近热点

一般来说,优于userCF, itemCF,数据集非常稀疏,可能会性能差

 

4. 基于图的模型

用户和物品,图,计算顶点的相关性

PersonalRank(?)

 

posted on 2018-04-16 23:54  yesuuu  阅读(1193)  评论(0编辑  收藏  举报

导航