2.1 利用用户行为数据之CF

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

-----------------------------------------

项亮 --《推荐系统实战》阅读笔记