目录
1. 什么是基于内容的推荐
指基于标的物相关信息、用户相关信息和用户对标的物的操作行为来构建推荐算法的模型。一般只依赖于用户自身的行为提供推荐,不涉及用户的其他行为。
这是最早应用于推荐工程实践的推荐算法
2. 实现原理
三个步骤:
- 构建用户特征表示
- 构建标的物特征表示
- 基于上述表示推荐标的物
核心思想
做推荐的三种思路
- 基于用户历史行为记录做推荐;要先计算标的物之间的相似性,然后将历史中标的物的相似标的物推荐
- 用户和标的物都用显式的标签来表示;根据 倒排索引法
- 用户和标的物嵌入到同一个向量空间;推荐和用户相似度更高的标的物
构架用户特征表示
1. 用户历史行为作为显式特征
将用户操作过的标的物作为用户的特征表示
2.显式的标签特征
将标的物的标准转化为用户的标签
3. 向量式的兴趣特征
将标的物嵌入向量空间,用户的兴趣向量可以用操作过的标的物的向量的评价向量来表示,或者聚类构建多个兴趣向量。
4. 通过交互方式获取用户兴趣标签
app第一次注册时选择
5. 用户的人口统计学特征
用户的年龄、性别、地域、收入、爱好、居住地、工作地点等,构建向量。然后就可以计算用户之间的相似度。
构建标的物特征表示
1. 标的物包含标签信息
把每个标签看做一个维度,构建一个N维向量,这是个稀疏向量。
标签可能是分级的树状结构,简单的方案就是只考虑叶子结点,复杂的就是基于层级 结构构建标签。
标签可以是算法获取的,NLP提取关键词,CV图像识别提取,也可以是用户打上的。
2. 标的物具备结构化信息
3. 应用场景
- 完全个性化推荐
- 标的物关联标的物推荐
- 作为其他推荐算法的补充
- 主题推荐
- 给用户推荐标签
4. 优缺点
优点
- 可以很好地迎合用户的口味
- 非常直观易懂,可解释性强
- 可以更加容易的解决冷启动
- 算法实现相对简单
- 对于小众领域也能有比较好的推荐效果
- 非常适合标的物增长的有时效性要求的产品
缺点
- 推荐范围狭窄,新颖性不强
- 需要知道相关的内容信息且处理起来比较难
- 较难将长尾标的物分发出去
- 推荐精准度不大高
5. 算法落地需要考虑的问题
内容来源的获取
- 标的物自身携带的信息
- 通过爬虫获取标的物的相关信息
- 通过人工标注数据
- 通过运营活动或者产品交互让用户填写相关内容
- 通过收集用户行为直接获得或者预测推断出的内容
- 通过与第三方合作或关联新老产品矩阵补充信息
怎么利用负向反馈
- 将负向反馈整合到算法模型中
- 采用事后过滤的方式
- 采用事前处理的方式
兴趣随时间变化
对用户的兴趣根据时间进行衰减
构建短时兴趣特征和长期兴趣特征
对于新闻资讯这种时效性强的产品,要特别注意实时兴趣变化
数据清洗
对文本中的歧义、符号、脏数据进行处理
加速计算与节省资源
计算好每个标的物的最相似的N个标的物 保存起来
分布式计算平台和快速查询平台 Spark FAISS
解决基于内容的推荐越来越窄的问题
- 协同过滤
- 做兴趣探索,通过用户的反馈来拓展用户的兴趣空间,强化学习中的探索开发(Exploration and Exploitation, EE)
- 构造知识图谱系统,通过图谱扩展标的的更远的联系
工程落地技术选型
需要考虑数据处理,模型训练,分布式计算
Spark、MLlib、sklearn、tf、pytorch、gensim
业务的安全性
避免推荐反动、色情、标题党、低俗内容,需要NLP CV
对于UGC平台,还需要考虑激励优质内容创作者