- 前言
- 个性化推荐的最理想情况是用户能在注册的时候告诉我们他的喜好,但这有三个缺点
- 使用什么方法来理解用户描述的语言(语义理解)
- 用户的兴趣在不断变化
- 用户自己可能也无法准确描述自己的喜好(甚至可能不清楚)
- 购物车分析(哪些商品会同时出现在购物车中)
- 例子:啤酒和尿布
- 那么任务显而易见:找出“购买A商品的用户也会购买B商品”这种规律
- 基于用户行为分析的推荐算法----也就是协同过滤
- 数据及分析
- 用户行为一般分为两种--显性反馈行为和隐形反馈行为:p38
- 在电子商务中,用户行为一般包括:网页浏览、购买、点击、评分和评论等。
- 针对评分有一点需要注意
- youtube上的用户主要精力放在观看视频上,因此他们只有在特别不满意或者特别满意时才会评分,因此二级评分系统就够了。但如果是评论网站,这时就需要多级评分系统了。
- 用户活跃度和物品流行度
- 分布:长尾分布(流行度超过一定程度,物品的分布概率很低)
- 关系:新用户倾向于热门物品,老用户倾向于冷门物品
- CF实验(离线实验)
- 实验设计:交叉验证
- 评测指标
- 通过准确率/召回率评测推荐算法的精度
- 新颖度(用流行度代替,越流行则越不新颖)
- 覆盖率
- 基于领域的算法
- 基于用户的协同过滤算法--UserCF
- 思想
- 如果用户u和用户v的行为(喜欢的物品)相似度很高,那么用户v喜欢的且用户u没看到过的物品(行为)很可能会被用户u喜欢
- 步骤
- 通过行为找到和目标用户兴趣相似的用户集合
- 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给用户
- 相似度计算
- jaccard公式
- 余弦相似度
- 计算相似度时使用物品-用户倒排表(先计算分子是否为0,如为0则不用再计算分母,降低计算复杂度)
- 行列标签为用户
- 系数为0代表没有交集,系数不为0代表有交集
- 感兴趣程度计算
- 通过相似度计算找到和用户u兴趣最接近的K个用户的集合,S(u,K)
- 将集合中每一个用户与用户u的相似度去乘每一个用户对于物品i的感兴趣度
- 加权和即可作为用户u对物品i的感兴趣程度
- 问题
- 怎么得到其他用户的感兴趣度
- 加权和进一步的归一化处理怎么做
- k的取值很重要,需要通过测试决定
- 准确率和召回率:通过验证集确定
- 流行度:K越大,推荐结果就越热门(参考的人数越多,越接近热门)
- 覆盖率:K越大,推荐结果越热门,物品流行度越高,覆盖率也就降低
- User-IIF----余弦相似度的改进(对于热门商品做出一定惩罚)
- 基于物品的协同过滤算法--ItemCF
- 思想
- 通过用户行为确定物品之间的相似度,如果物品A和B具有很高的相似度,那么喜欢A的用户很可能也会喜欢B
- 而且这种算法可以根据用户的历史行为给推荐结果提供推荐解释
- 步骤
- 计算物品之间的相似度
- 根据物品的相似度和用户的历史行为给用户生成推荐列表
- 相似度计算
- 前提假设
- 用户-物品倒排表
- 行列标签为物品
- 对于每一个用户样本,物品集合中的物品两两之间加1得到矩阵
- 兴趣度计算
- 评价指标
- 精度(准确率和召回率):同user
- 流行度:随着k增加,流行度会增加,但是到一定程度后,k再增加,流行度不会变化
- 覆盖率:随k增加会下降
- IUF--活跃用户对物品相似度的贡献应该小于不活跃的用户,增加IUF参数修正物品相似度
- 物品相似度的归一化
- 相似度矩阵按最大值归一化
- 可以提高推荐的多样性
- UserCF和ItemCF的比较
- 模型性质及侧重点
- UserCF
- UserCF给用户推荐哪些和他有共同兴趣爱好的用户喜欢的物品,着重反映和用户兴趣相似的小群体的热点
- UserCF的推荐更社会化(好友交际圈),反映了用户所在的小型兴趣群体中物品的热门程度
- ItemCF
- ItemCF给用户推荐哪些和他之前喜欢的物品相似的物品,着重于维系用户的历史兴趣
- ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。
- 热门程度和个性化的权衡
- 新闻热点:注重热门程度和时效性,使用UserCF,保证热门程度的基础上拥有一定的个性化
- 图书、电子商务和电影网站:用户的兴趣比较固定和持久,更需要注重个性化,而不太关注热门程度
- 技术上
- UserCF:需要维护一个用户相似度的矩阵,新闻类用户相对固定,但物品迭代快
- ItemCF:需要维护一个物品相似度矩阵,电商类用户很多,维护物品则相对容易
- 存储上
- 即维护相似度矩阵所需要的代价
- 考虑使用哪种模型:
- 首先是需求,如果需要最推荐做出解释,则选择ItemCF。
- 其次,看实现代价,即相似度矩阵的存储和更新。
- 最后,这两种算法都有各种各样的改进。经过优化后,离线性能相近。
- 总结:根据需要和商业指标来选择。
- 哈利波特问题(每个领域中的最热门商品)
- 特殊处理:引入内容数据,降低相应权重
-----------------------------------------
项亮 --《推荐系统实战》阅读笔记