zoukankan      html  css  js  c++  java
  • 3、前奏之基于物品的协同过滤算法:ItemsCF

    两步走:

    1. 计算物品间的相似度
    2. 根据1和用户历史行为给用户生成推荐列表

    一、计算物品间的相似度

    1、相似度算法

        

         喜欢物品i的用户中有多少比例的用户也喜欢j;问题:j存在热门商品问题,因为j很流行,喜欢 j 的用户可能包含喜欢 i 的用户,则相似度基本是1,导致任何物品和热门物品的相似度都近似为1,这对于挖掘长尾的系统不好

        

      惩罚 热门 j 的权重

       

      惩罚活跃用户

    2、计算商品的相似度矩阵

    3、相似度矩阵归一化,提高准确率、多样性、覆盖率

         

    二、根据商品相似度和用户历史行为,生成用户推荐列表

    1、计算用户u对物品j的偏好值:和用户历史上感兴趣的物品越相似的物品,越有可能在用户的推荐列表中

         

    1. 在相似度矩阵中按照相似度对物品 j 关联的物品字典降序排列
    2. 取出前K个物品
    3. 取出和用户 u 有过交互的商品的列表或集合
    4. 取2和3的交集
    5. 对相似度和偏好值累加求和

    2、计算推荐列表

    哈利波特问题

    商品太热门,导致相似度近似于1,解决:

    1、加大对热门商品惩罚

        

    2、剔除太热门商品

    渐变 --> 突变
  • 相关阅读:
    JavaWeb_Tomcat_Maven!
    java异常!
    JavaWeb获取web.xml初始参数!getInitParameter
    JavaWeb文件下载!
    Java抽象接口!
    JavaWeb初识Servlet!
    关于HashMap以对象作为Key的实现及踩坑
    浅析.Net下的多线程编程(2)
    获取浏览器分辨率
    浅析.Net下的多线程编程(1)
  • 原文地址:https://www.cnblogs.com/lybpy/p/9822480.html
Copyright © 2011-2022 走看看