机器学习:推荐系统

机器学习:推荐系统

  • 1 推荐系统分类
  • 2 推荐算法分类
  • 3 协同过滤(Collaborating Filtering)
    • 3.1 User-based CF 基于用户的协同过滤
      • 3.1.1 用户偏好数据收集
      • 3.1.2 用户偏好如何整合
      • 3.1.3 用户向量与相似度计算
      • 3.1.4 基于用户的协同过滤计算过程
    • 3.2 Item-based CF 基于物品的协同过滤
      • 3.2.1 基于物品的协同过滤计算过程
    • 3.3 两种协同过滤方式的比较总结

1 推荐系统分类

基于应用领域 基于设计思想 基于使用数据
电子商务推荐 协同过滤 用户行为数据
社交好友推荐 基于内容 用户标签数据
信息内容推荐 基于知识 社交网络数据
搜索引擎推荐 混合推荐 上下文数据

2 推荐算法分类

分类 算法 理念
基于客户需求的推荐 机器学习分类器模型 根据客户的属性、行为数据对客户的需求进行建模,预测客户行为
基于购物篮的推荐 关联规则 物品被同时购买的模式反映了顾客的需求模式
基于相似性的推荐 协同过滤 发现相似的⽤户或相似的物品
基于内容的推荐 规则或矩阵分解 发现⽤户某⼀细分领域的兴趣

3 协同过滤(Collaborating Filtering)

3.1 User-based CF 基于用户的协同过滤

3.1.1 用户偏好数据收集

用户行为 类型 特征 作用
评分 显式 整数化的偏好,可能取值是[0, n] , n一般取值为5或者是10 通过对物品的评分,可以精确的得到用户的偏好
投票 显式 布尔量化的偏好,取值是0或1 通过用户对物品的投票,可以精确的得到用户的偏好
转发 显式 布尔量化的偏好,取值是0或1 通过用户对物品的投票,可以精确的得到用户的偏好
保存书签 显式 布尔量化的偏好,取值是0或1 通过用户对物品的投票,可以精确的得到用户的偏好用户行为
标记标签 (Tag) 显式 一些单词,需要对单词进行分析,得到偏好 通过分析用户的标签,可以得到用户对项目的理解,同时可以分析出用户的情感:喜欢还是讨厌
评论 显式 一段文字,需要进行文本分析,得到偏好 通过分析用户的评论,可以得到用户的情感:喜欢还是讨厌
点击流 隐式 一组用户的点击,用户对物品感兴趣,需要进行分析,得到偏好 用户的点击一定程度上反应了用户的注意力,所以它可也以从一定程度上反应用户的喜好。
页面停留时间 隐式 一组时间信息,噪音大,需要进行去噪,分析,得到偏好 用户的页面停留时间,一定程度上反应了用户的注意力和喜好,但噪音偏大,不好利用
购买 隐式 布尔量化的偏好,取值是0 或 1 ⽤户的购买是很明确的说明他对这个项⽬感兴趣

3.1.2 用户偏好如何整合

  • 将不同的行为分组
  • 加权操作:根据不同行为反映用户喜好的程度,将它们进行加权,得到用户对于“物品的总体喜好”。

3.1.3 用户向量与相似度计算

数据经过预处理和归一化,得到用户偏好二维矩阵,一维是用户列表 ,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮点数值。

  • 相似度的计算方法

    • 欧式距离:绝对距离
    • 余弦相似度:方向、角度(文档相似度(TF-IDF)和图片相似性(histogram))
    • 改进余弦相似度:加入了均值来调整
    • 皮尔逊相似度Pearson: 协方差比上标准差.余弦相似度受到向量平移影响,这是就选皮尔逊相似度.当两个向量均值都为0时,皮尔逊相对系数等于余弦相似性
    • 杰卡德(Jaccard)相似度
    • 闵氏距离:当样本中不同属性的重要性不同时,可使用"加权距离"(weighted distance)
    • 马氏距离(Mahalanobis Distance):消除了不同维度之间的相关性和尺度不同
  • 总结

    • 如果数据密集,变量之间基本都存在共有值,且这些距离数据是非常重要的,用欧氏距离或曼哈顿距离
    • 如果数据稀疏,用余弦相似度
    • 如果数据服从正态分布的两连续型变量(可绘制散点图)发现有线性趋势之后,就使用皮尔逊相关系数

3.1.4 基于用户的协同过滤计算过程

机器学习:推荐系统_第1张图片
计算过程就是将⼀个用户对所有物品的偏好作为⼀个向量来计算用户之间的相似度,找到相似的“邻居”用户之后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户对没有涉及到的物品的偏好,计算得到⼀个排序的物品列表作为推荐。(去 r u ‾ \overline{r_u} ru的目的是为了将用户自身相对其他用户平移的增量去掉, 类似余弦相似度与调整后的余弦相似度)

3.2 Item-based CF 基于物品的协同过滤

Item-based CF基于物品的协同过滤类似user-based CF基于用户的协同过滤,从表现形式上看仅仅是user-based CF用户矩阵转置后计算。从计算角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似度后,根据用户历史的偏好预测当前用户还还没有表示偏好的物品,计算得分。

3.2.1 基于物品的协同过滤计算过程

机器学习:推荐系统_第2张图片

3.3 两种协同过滤方式的比较总结

  • user-based CF 由于用户购买行为极其相似,你买的极有可能我也会买
  • ltem-based CF 由于商品卖得好的,极有可能我也会买
  • 当用户样本数量远远大于商品数量时候(电商),选商品协同过滤较好。当物品数量增长迅速(新闻报道)时,适合用户协同过滤。其余时候可以两种方式进行集成。
  • 总的来说,协同过滤就是找到一个based,对他进行一个相邻数据相似度的加权评分(score),算法可以根据实际情况去修证。

你可能感兴趣的:(机器学习,CDA,机器学习,数据分析)