主要在工业界使用了推荐算法在我们的系统中,为此总结了一下工业界使用的推荐算法和实现
图神经网络相关实现 实现
itemcf 物品协同过滤 实现
由此产生了基于物品的协同过滤(itemCF)给用户推荐和他们之前喜欢的物品相似的物品。不过ItemCF算法不是根据物品内容属性计算物品之间相似度,它主要通过分析用户的行为记录来计算物品之间的相似度。
基于物品的协同过滤算法主要分为两步: 1:计算物品之间的相似度 2:根据物品之间相似度和用户的历史行为给用户生产推荐列表。
LFM 实现
LFM算法是属于隐含语义模型的算法,不同于基于邻域的推荐算法。 link
Personal rank 实现
基于图的推荐算法,类似于Page Rank 算法 link
item2vector 实现
顺序性时序性缺失
item 是无区分性
从log获取行为序列
word2Vector item embedding
计算item sim
Word2Vctor --- Cbow/Skip Gram
基于内容ContentBase算法 实现
优点:
1. 思想简单
2. 独立性
3。 流行度比较高
缺点:
1。必须积累一定的时间
2。无法跨领域的推荐
item_profile
user Profile
genre/Topic
time Decay
online Recommendation
Find top k Genre/Topic
PR,userCF,itermCF,LFM,ALSpyspark实现
ContentedBase
训练集:周一到周五 测试集:周六到周天
单一浅层模型
LR,FM
浅层模型的组合
Tree
深度学习
Tensorflow
逻辑回归 完成
1.易于理解,计算代价小 2。容易欠拟合,需要特征工程
1.覆盖率(1%) 2.成本 3.准确率
1.缺失值的处理:中位数,众数,平均数
2.特征的归一化,最大归一化,排序归一化
3.特征的离散化: 分位数
Tree Model完成
1.完成GBDT模型
2.完成GDBT+LR混合模型
1. 如何改变权重?
上一轮错的权重增加
2. 如何组合模型?
每个提升树都权重一样Gradient,ada 是不一样的分类器误差率小的权重增大
优缺点总结
优点:利用树模型做特征转化
缺点:两个模型单独训练不是联合训练
Wide and Deep Model完成
Wide 其实就是Memorization 一半离散特征和特征组合
Deep 其实就是Generalization 一半连续特征
User特征:基础特征 Item特征:基础特征 Context:几点 UIRelation: 点击率。。。 Static supplement:上架商品的
特征数目 1:100 和数据最好