推荐算法
个性化推荐算法
- 人口属性
- 地理属性
- 资产属性
- 兴趣属性
推荐算法分支
- 协同过滤推荐算法
- 基于内容的推荐算法
- 混合推荐算法
- 流行度推荐算法
协同过滤算法
- 基于内存的协同过滤/基于领域的协同过滤:相似统计的方法得到具有相似兴趣爱好的邻居用户
- 基于模型的协同过滤:先用历史数据训练一个模型,再用模型进行预测。包括神经网络、潜在语义检索和贝叶斯网咯
基于领域的协同过滤
主要分为基于用户的和基于物品的协同过滤,利用距离来衡量两个用户或者物品的相似度:
- 欧几里得距离:在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