视频推荐
Matching
基于用户行为
离线协同过滤
根据用户行为日志,利用物品-based协同过滤生成离线的 物品2物品相似度矩阵、用户离线推荐结果
- 基于艾宾浩斯遗忘曲线按照时间进行降权
- 弱化热点影片的权重
- 矩阵分解
基于用户的playlog接口实时获取用户的短时间内的观看历史, 通过物品2物品相似度矩阵进行CF扩散,提取出与用户短时间内 观看历史相似的topN个物品用于召回
用户的CF离线推荐结果直接作为线上服务的召回渠道
W2V
全部影片作为预料库、观看历史按时序排列视为文档,计算所有 物品的词向量
根据词向量计算物品2物品相似度矩阵,用于线上playlog召回 数据
LDA
基于概率主题模型:文档-潜在主题-词三级关系,映射/类比到 用户行为数据:用户-潜在兴趣-资源
通过用户历史行为记录,提取LDA中间产物、用户的潜在兴趣 向量、资源潜在主题分布向量
基于物品的主题向量,进行物品2物品相似度计算,用于线上 playlog召回数据
SimRank
- 将用户、物品关系视为二部图,考虑相似关系可以在图上传播 思想,使用SimRank计算物品相似队列
基于内容
基于标题
- 对影片文本简介使用doc2vector,计算资源的表示向量
- 使用资源的表示项集计算物品2物品相似度矩阵
基于Style
基于Tag
其他方向
RNN捕捉用户在点击序列中的模式,利用点击行为发生先后顺序 调整推荐展示顺序
Graph Embedding
Ranking
特征工程
低维稠密通用特征:泛化能力良好、记忆能力差
- embedding特征
- 统计特征
高维稠密特征:记忆能力较好
- 视频ID
- 标签
- 主题
分类
按特征来源分类
- 物品特征:资源风格、低于、类型、标签、统计特征
- 用户特征:性别、年龄、婚姻状况、收入预测
- context特征:网络状态、时间段、城市
- 交叉特征
按特征更新频率、获取方式
- 离线特征:变化缓慢,如:用户、物品基本特征、统计特征
- 近在线特征:分钟级、小时级需要更新的特征,如:ctr
- 在线特征:每次请求达到实时获取特征,如:网络状态、 请求时间
特征扩充
用户兴趣向量丰富用户维度上兴趣特征
- LDA中间产物作为用户潜在兴趣向量
- W2V词向量、用户行为历史统计出用户兴趣向量
资源embedding向量丰富物品维度特征
- 用户行为数据embedding得到W2V、LDA词向量
- 资源标题embedding得到doc2vector词向量
资源封面AutoEncode向量
- 基于资源封面采用自编码器训练,提取隐层向量作为资源 特征
统计特征细化
特征工程时间窗口细化:按不同时间窗口分别计算资源的统计 特征
- 丰富资源特征
- 融入时间衰减因素
在线特征交叉:交叉特征增加样本特征的区分度
连续特征离散化
- 目标:避免特征为长尾分布、大部分取值集中在小范围,对样本 区分度差
- 等频离散化:等频分桶、独热编码
- 对数转化
采样策略
- 负样本采样策略调整:基本曝光时间、顺序,过滤负样本
- 不平衡样本策略调整:离线A/B测试正负样本比例,择优调整
模型
- 一般使用stacking模型堆叠集成
- 参见ml_models/model_enhancement/ensemble_stacking
基学习器
GBDT:各树、各叶子节点对应一维特征
- 适合低维稠密通用特征,对输入特征分布没有要求
DNN
- 适合普通稠密特征、embedding特征
- 能抽取有良好分布数据的深层次特征,提高模型准确性、 泛化能力
元学习器
LR
- 适合低维稀疏特征,可对所有特征离散化以引入非线性
FM
- 适合低维稀疏特征
- LR基础上自动组合二阶交叉项
Linear:训练模型、对训练结果线性加权
冷启动、EE
冷启动
Matching
冷启动用户召回
- 使用imbd算法计算资源得分,根据不同时间周期进行得分 融合、并ab测试,选取最优时间周期组合
- 按照imdb得分倒排,生成热点召回数据
冷启动资源召回
- 基于资源库,统计各资源点击、播放率,按一定比例召回 第点击、播放率物品
Ranking
- 通常使用强化学习算法
- Thompson Sampling
- UCB算法
- Epsilon-Greedy算法
- 朴素Bandit算法
- LinUCB算法:较UCB算法加入特征信息
- COFIBA算法:Bandit算法结合协同过滤
Exploration and Exploitation Tradeoff
Matching
- 调整不同召回渠道的配比方式保证多样性