推荐系统脉络总结
背景
为什么需要推荐系统?
一句话:信息过载
推荐数据与场景
推荐数据与任务
- 可用的输入:每件物品的内容和来源、用户兴趣画像、用户声明信息(如人口统计学特征)、物品流行度指标、用户-物品交互行为
- 优化目标:
- 点击率
- 评分
- 其他PM提出的指标
- 算法:
- 内容过滤和理解
- 用户画像建模
- 评分
- 排序
- 评估
- 一大堆的指标
- 探索与利用
- 是探索还是利用?
- 多臂老虎机问题
热门推荐:为何需要热门推荐?
在网页的单个槽位上为所有用户推荐热门物品(CTR最高的物品)以最大化总点击数。
推荐算法的baseline,小型推荐系统的大杀器。
算法:
- 利用指数加权移动平均(EWMA)进行物品CTR预估
- 使用
策略进行分桶,利用随机桶数据进行CTR预估,预估结果服务于服务桶
系统架构
离线计算与在线计算
一个经典的Web推荐系统架构,摘自《统计推荐系统》
- 应用设置
- 模型
- 存储系统
- 物品索引
- 用户数据存储区
- 模型存储区
- 离线学习组件
- 在线学习组件
- 学习组件同步
- 推荐服务
- 物品检索
- 排序
推荐模型
统计视角的概率建模
逻辑模型与高斯模型:
每个用户的打分都是独立事件。
用户只有两个选择,要么投喜欢’1’,要么投不喜欢’0’。
如果总人数为n,其中喜欢的为k,那么喜欢的比例p就等于k/n。
这是一种统计分布,叫做”二项分布”(binomial distribution)
如果用户有在范围(0-5)无数个选择,那么用户选择的k是一个在0-5区间内的数,也就是评分,它服从高斯分布。
用户-物品特征
- 统计模型
- 相似度
- 无监督方法、计算xi、xj相似度(余弦相似度)
- 有监督方法,从用户与物品的历史交互数据的观测评分中学出一个模型,学好的模型再根据用户和物品的特征预测未观测到的(用户、物品)对的评分
- 二值评分-逻辑模型
- 数值评分-高斯模型
- 成对偏好分数
- 正则化(防止过拟合)
- 协同过滤
- 给定用户i,我们可以根据i的评分行为找到与之相似的用户集合,那么用户i对于物品j的评分就是所有与用户i相似的用户对物品j评分的平均值
- 邻居与相似度
- U2U2I
- U2I2I
- 矩阵分解
- 利用低秩矩阵分解模型从观测到部分评分矩阵中预测未观测到的评分
- 低秩矩阵分解
- 交互矩阵的各列存在相关性=>交互矩阵低秩
- 通过隐因子还原缺失数据
- 相似度
- 深度模型
- 特征生成问题:通过推荐离线数据构造不同问题获取用户和物品特征向量
- 交互特征(NCF、Word2Vec)
- NCF 高斯模型,输入特征通过DNN构造(GMF)
- YouTube Match Model模型,超大规模分类问题,输出用户embedding、物品embedding
- 因子特征(DeepFM)
- 关注特征组合
- LR的前提、特征独立
- 实现特征交叉
- 关注特征组合
电影推荐:
movielens数据集,包含用户属性、物品属性和交互数据,预测用户对电影的评分
实现方法:
- CF系列:UserCF、ItemCF、NCF
- MF系列:ALS、DeepFM
上下文特征
上下文:除用户属性、物品属性、交互属性外的推荐系统数据都可以成为上下文信息,如时间、地点、应用来源、前后行为等
- 张量分解
- 对用户i、物品j、上下文k的三向交互建模
新闻推荐与相关推荐
- 新闻推荐与上下文
- 主题模型
- 同时在物品和用户响应中融入丰富的词袋类特征以提升预测准确率
-
Z代表物品j在K个不同隐主题的隶属度,U代表用户i与这些主题的关联度
- Z => LDA模型
- U => 主题聚类
- 上下文模型
- 对于用户向量
,物品向量
和上下文向量
,得到评分公式:
- 降维:A、B、C矩阵均可以由相似度替换
- 对于用户向量
- 主题模型
- 相关推荐
- 推荐物品需要与上下文物品语义相关,响应率必须要高。
- 语义相关性
- 基于无监督学习,词向量模型
- 缺点:不想推荐与上下文物品太相似的相关物品
- 基于监督学习,训练相关性函数
- 缺点:数据收集难
- 基于无监督学习,词向量模型
- 响应预测
-
,k为上下文
- 关联规则-购物篮模型
-
- 共现关系、支持度与置信度
- 搭配推荐问题
-
-
- 策略:
- 筛选出预测相关性分数大于某个阈值的物品,然后根据物品的预测响应进行排序
- 多类别推荐、位置相关推荐和多应用推荐
多目标优化
在实际生产环境下,我们往往需要优化多个目标,如广告点击数、时间花销和收入。当不同的目标之间有很强的正相关时,优化一个既可以优化全局,但实际上这种情况并不多见。
优化方法:
- 分段优化
- 采用不同的算法优化不同的目标,在根据用户分段情况选择算法推荐结果
- 个性化优化
- 对于每一个用户都有一个算法概率选择
推荐系统线上和线下
目标转换鸿沟
我们认为用户对物品评分高但实际上不一定看
用户没看推荐的原因有很多
方向
- 优化离线模型
- 更深更复杂
- 特征工程
- GNN
- KG与专家系统
- 以用户角度优化推荐
- RL