0. 推荐算法分类
1. 基于内容推荐
1 原理:用户喜欢和自己关注过的物品类似的物品
2 优点:
1. 考虑到用户的独立性(与其他用户无关)
1. 可以解决物品冷启动问题
3 局限:
1. 只能根据用户现有兴趣进行推荐
1. 对多媒体(电影、音乐)推荐很难提取内容特征,一种办法是人工打标签
1. 对标签要求较高,对相关领域知识要求较高
2. 协同过滤推荐
1 原理:用户喜欢那些具有相似兴趣的用户喜欢过的商品
用户喜欢哪些和自己喜欢的商品相似的商品
2 辨析:基于内容的商品相似度是根据商品标签、内容进行计算;而ItemCF是基于共现矩阵中两个商品被用户共同喜欢或不喜欢计算。
3 优点:
1. 不需要相关领域知识
1. 可以帮助用户发现新的兴趣
4 局限:
1. 占用大量内存
1. 不好处理冷启动
3. 混合模型推荐
1. 协同过滤
1 概念:协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。
2 过程:要知道用户X是否会喜欢电视机,在共现矩阵中计算其他用户与X的相似度(余弦相似度、皮尔逊相关系数),根据他们对电视机的反馈判断X是否会喜欢电视机。依据相似度获得k个相似用户,根据用户相似度和相似用户对电视机的评价,加权获得X对电视机的评价预测。
3 UserCF两个缺陷:
1. 在互联网场景下,用户数往往远大于物品数,而UserCF需要维护用户相似度矩阵以便快速找出Top n相似用户。随着业务发展,用户数增长会导致用户相似度矩阵的存储空间以速度增长,存储开销大
1. 对于大件商品购买等场景,用户的数据往往很稀疏,找到相似度的准确度是非常低的。
4 ItemCF和UserCF应用场景:
- UserCF基于用户相似度进行推荐,使其具备更强的社交性,能快速得知与自己兴趣相似用户最近喜欢什么,适合新闻、社交等场景;
- ItemCF更注重个性化,适用于兴趣变化较为稳定的应用,如技术博客、音乐等。
5 传统协同过滤缺点:
1. 热门的物品具有很强的头部效应,容易跟大量物品产生相似性;而尾部的物品由于特征向量稀疏,很少与其他物品产生相似性,导致很少被推荐(泛化能力弱)。
1. 仅利用用户和物品的交互信息,无法有效引入用户年龄、性别、商品描述、分类、当前时间等一些列有效信息特征。
6 解决办法:
1. 提出矩阵分解,在共现矩阵的基础上,使用更稠密的隐向量表示用户和物品,一定程度上弥补了过滤模型处理稀疏矩阵能力不足的问题;
1. 为了在推荐模型引入更多有用信息,推荐系统发展到以逻辑回归为核心的、能够综合不同类型特征的机器学习模型的道路上。
2. 矩阵分解算法——协同过滤的进化
1 概念:加强了模型处理稀疏矩阵的能力,提高了泛化性。(用户和物品的隐向量是通过分解共现矩阵得到的)
2 矩阵分解方法:
1. 特征值分解(要求共现矩阵是方阵,不适用)
1. SVD(要求共现矩阵是稠密的、计算复杂度高,不适用)
1. 梯度下降:
3 消除偏差:不同用户对分数的理解不同,消除偏差的方法是添加bias:
4 优点:
1. 泛化性强(一定程度解决了数据稀疏的问题)
1. 空间复杂度低(到)
3. 逻辑回归——融合多种特征的推荐模型
1 概念:逻辑回归模型将推荐问题转换成了一个点击率(CTR)预估问题。
2 优点:可解释性强,计算速度快,引入了用户年龄、性别、商品描述等有用信息。
3 局限:不能进行特征交叉,表达能力有限。
4. FM到GBDT+LR
1 作用:进行特征交叉
2 局限:
1. FM不容易扩展到三阶交叉
1. GBDT无法并行训练
5. 特征工程
1 常用特征:
- 用户行为数据:分为显性反馈行为(评分、点赞)和隐形反馈(点击、播放)。
1. 将代表用户行为的物品id序列转换成multi-hot向量
1. 预训练好物品的embedding,将用户涉及的物品的embedding进行平均
- 用户关系数据:分为人与人关系、人与物关系
3. 将用户关系作为召回层的一种物品召回方式
3. 通过用户关系建立关系图,使用Graph Embedding生成用户和物品的embedding
- 属性、标签类数据:如人的性别、年龄,物的类别、价格等
5. multi-hot转换成特征向量
5. embedding
- 内容类数据:图片、评论等
7. 使用NLP、CV将其转换为标签
- 上下文信息:时间、地点等
- 统计类特征
2 特征处理方法:
- 连续性特征:
1. 归一化(消除量纲影响)
1. 离散化(注意与分箱不同,类似one-hot) (防止连续值带来的过拟合,及处理特征值分布不均匀)
1. 非线性处理(如log函数,提升模型表达能力,更好地捕获特征与目标的非线性关系)
- 类别型特征:
4. one-hot、multi-hot
4. embedding成稠密向量
6. 召回层
1 召回层和排序层:
- 召回层:将海量候选集快速缩小为几百、几千的规模
- 排序层:对缩小后的数据集进行精准排序
2 多路召回:采用不同的策略、特征或简单模型,分别召回一部分候选集。
- 包括“热门”、“流行”、“兴趣标签”、“朋友喜欢”、“协同过滤”等 (不同策略得到的相似度、热度等不具备可比性)
- 利用深度学习生成的embedding作为召回层的方法(具备评分的连续性,可以把embedding间的相似度作为唯一判断标准)
3 召回方法:
1. 热门、流行
1. 用户标签(基于内容推荐)
1. 协同过滤
1. FM(使用矩阵分解学习隐向量)
1. Embedding(FM无法考虑用户属性等有用信息,Embedding可考虑到)
7. 冷启动
1 用户冷启动:根据用户注册信息、第三方数据,构建新用户属性决策树或进行粗粒度相似度计算推荐
2 物品冷启动:根据物品标签、内容特征进行推荐