推荐算法

推荐算法

个性化推荐算法

  • 人口属性
  • 地理属性
  • 资产属性
  • 兴趣属性

推荐算法分支

  • 协同过滤推荐算法
  • 基于内容的推荐算法
  • 混合推荐算法
  • 流行度推荐算法

协同过滤算法

  • 基于内存的协同过滤/基于领域的协同过滤:相似统计的方法得到具有相似兴趣爱好的邻居用户
  • 基于模型的协同过滤:先用历史数据训练一个模型,再用模型进行预测。包括神经网络、潜在语义检索和贝叶斯网咯

基于领域的协同过滤

主要分为基于用户的和基于物品的协同过滤,利用距离来衡量两个用户或者物品的相似度:

  • 欧几里得距离:在m维空间中两个点之间的真实距离
  • 马哈拉诺比斯距离:两个点在标准坐标系上的绝对轴距总和(比较少)
  • 曼哈顿距离
  • 切比雪夫距离
  • 明可夫斯基距离
  • 海明距离

可以直接利用相似度的计算公式衡量两个用户或者物品的相似度:

  • 余弦相似度和调整预先相似度
  • 皮尔森相关系数
  • 杰卡德相似系数
  • Tanimoto系数(广义杰卡德相似系数)
  • 对数似然相似度/对数似然相似率
  • 互信息/信息增益,相对上/KL散度
  • 信息检索-词频-逆文档频率(TF-IDF)
  • 词对相似度-点间互信息

基于模型的协同过滤

  • 用关联算法做协同过滤
  • 用聚类算法做协同过滤
  • 用分类算法做协同过滤
  • 用回归算法做协同过滤
  • 用矩阵分解做协同过滤
  • 用神经网络做协同过滤
  • 用图模型做协同过滤
  • 用隐语义模型做协同过滤:用户和物品是通过嵌入特征连接在一起的

关联规则

  • Apriori: 经常用来挖掘出数据关联规则的算法,主要用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做出一些决策。比如对于电商,可以优化商品所在仓库位置,达到节约成本,增加经济效益的目的
  • FPGROWTH:通过构造一个树结构来压缩数据记录,是的挖掘频繁项集只需要扫描两次数据记录,而且该算法不需要生成候选集合,所以效率会比较高

聚类

  • K-Means
  • Mini-batch K-Means
  • BIRCH

分类

  • 逻辑回归
  • 朴素贝叶斯

矩阵分解

将用户和物品映射到K维的隐语义空间中去,然后进行乘积即代表用户对物品的评分。

协同过滤的优点

  • 实现快
  • 对商品和用户没有要求
  • 推荐解释模糊

协同过滤的缺点

  • 冷启动
  • 马太效应
  • 推荐解释模糊

工具

主要使用Scikit-Learn

  • Supervised Learning
  • Unsupervised Learning
  • Model Selection and Evaluation
  • Dataset Transformations
  • Dataset Loading Utilities
  • Strategies to Scale Computation: bigger data
  • Computational Performance

调优方向

  • 重新分析数据
  • 重选择方法
  • 重新理解数据

Note: Cover Picture