zoukankan      html  css  js  c++  java
  • 【推荐系统实践】协同过滤

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

  • 相关阅读:
    [离散数学II]2017.5.9
    mysql内连接、左连接、右连接
    Android平台介绍
    软技能(面试)1
    流程控制练习题
    函数:算法
    linux系统文件
    App测试需注意
    python-循环
    python-正则表达式
  • 原文地址:https://www.cnblogs.com/yesuuu/p/8859334.html
Copyright © 2011-2022 走看看