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


    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(?)

  • 相关阅读:
    Python入门
    实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
    Android 微信第三方登录
    Javascript获取随机数
    JavaScript for循环 闭包 【转】
    JavaScript中数组的增删改查
    【网络基础系列一】客户/服务器模型
    jQuery选择器
    局部代码块
    接口中定义变量
  • 原文地址:https://www.cnblogs.com/yesuuu/p/8859334.html
Copyright © 2020-2023  润新知