zoukankan      html  css  js  c++  java
  • 推荐系统之协同过滤

    TOC

    数据集

    • 上下文

    上下文指用户当前访问所处的环境,如时间,地点,网络类型,机器型号等信息。

    • 隐式反馈数据集

    通常是指服务器日志,可能含有上下文,如浏览历史。

    • 显式反馈数据集

    通常是指用户调查,反馈模块等的数据,如电影的评分,是否喜欢。

    协同过滤

    根据用户已有的行为或意见预测当前用户最可能感兴趣的物品。
    数据集通常由三部分构成:用户集合,物品集合,用户物品行为集合。
    协同过滤的主要算法分为两类:

    • 基于用户的协同过滤:
    根据相似用户预测前前用户最可能感兴趣的物品。
    
    • 基于物品的协同过滤
    根据用户的历史行为预测当前用户最可能感兴趣的物品。
    

    基于用户的协同过滤

    核心算法-用户相似度


    • 余弦相似度

    • Jaccard公式

    时间复杂度为O(|U|*|V|)

    • Pearson相关系数

    以上公式均可以引入平均值来提高准确率

    基于物品的协同过滤

    核心算法 - 物品相似度

    主要通过分析用户行为记录计算物品间的相似度

    基于物品的协同过滤算法主要分为两步:

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

    相关公式

    • 余弦公式

    N(i)为购买过物品i的用户集合。$$W_{ij}$$为物品i与物品j的相似度。

    • 使用IUF(Inverse User Frequence)修正后的物品相似度公式

    N(u)为用户u购买过的物品集合

    • 物品相似度归一化

    归一化可以提高准确度、覆盖率以及多样性

  • 相关阅读:
    L1和L2正则
    Python基础(一)
    消息分发
    StringList 自定义快速排序
    Delphi Length函数
    接口的委托实现(通过接口)
    接口委托实现--通过类的对象
    排序
    Socket编程(摘抄)
    Delphi线程同步
  • 原文地址:https://www.cnblogs.com/lotushy/p/4828517.html
Copyright © 2011-2022 走看看