记录一次讲座笔记,讲课的是花椒直播的改机算法架构工程师,王洋;王洋浙大+新加坡南洋理工大学,通信系统专业
推荐系统:帮助用户发现内容,克服信息过载
通过分析用户行为,对用户兴趣建模,预测用户的兴趣
早期,基于热度推荐:热度高的一般质量有保证,但是集中在头部,难以千人千面
现代化推荐系统
全样本,生成粗排序(百万量级),再生成精致排序(几百个量级),在推荐给用户(10量级)
所以分两步分别是:
召回与排序。
召回
基于邻域的协同过滤
1计算用户与物品的相似度矩阵
2计算出用户对缺失物品的得分
将得分高的部分推荐给用户,就可以得知该用户没看过的物品里哪个更可能喜欢了
具体举例:
早期使用:基于主播的协同过滤
由于是n方,用户的话会维度爆炸
原因:
1主播维度小,计算少
2根据用户的历史行为推荐,可解释性强
3新用户看一个主播即可开始推荐其他
总结
1是基于统计的方法,不是优化学习的方法
2只使用局部数据进行推荐,更像是策略
3用户和物品维度大时对内存需求较大
基于隐向量的协同过滤
矩阵分解
显式反馈:打分,评分
隐式反馈:交互频率;点击观看等,评分矩阵一般是01形式
显式反馈常用方法:
用两个小矩阵相乘,拟合出大矩阵
隐式反馈常用方法:
交互程度r , 如观看时间大于10s
x,y是两个小矩阵
c表示置信度正比于反馈程度
n方级别编程nk级别
可解释性差,未用到其他特征,不够全面
基于深度学习的矩阵分解
内积可以用DNN学习
NCF网络 Neural collaborative Filtering
NeuMF
链接地址为:
https://mp.weixin.qq.com/s/ERfIcCJ7ne4OjfRStdR_vw
其他召回模型
Youtube召回模型
使用了较复杂的信息
线上用户隐向量实时计算;物品隐向量离线存好
二者相乘
排序(精排)
特征工程
直播不同于物品的推荐,直播是连续行为,有实时特征(比如游戏直播,有五杀时情况与平时不同;是否在跳舞等)
训练集的生成
蓝色部分;使用之前数据组成用户画像
排序模型
- LR
- FM/FFM
- GBDT+LR
LR逻辑回归
线性回归
人工特征交叉成本高(需要先验知识)
FM因式分解机
(自动进行特征交叉)
使用Vi Vj内积模拟特征交叉
但是只能进行二阶特征交叉
GBDT+LR
GBDT以天的时间级别更新
LR部分实时更新
深度学习排序
Wide&Deep类模型
- DNN
学习特征间的潜在关系(全连接层),有泛化能力
- LR+DNN
下图左边是LR 右边是DNN
DIN深度兴趣网络
多任务学习的模型
业界主流模型之一
可优化的目标包括:点击、观看、送礼、关乎、转发等
宗旨:平衡不同目标的相互影响,做到全局最优(不要出现某个目标特别占主导)
ESMM模型
把样本空间分为三个部分
曝光;点击;转化三个层次
是共享底层卷积的(但是共享部分可能有问题,如多任务相关性比较低)
改进:
MMOE 不同的任务使用不同的底层网络(使用门)减轻不同任务干扰
链接地址为:
https://mp.weixin.qq.com/s/e6Spp7smIEUUExJxHzUOFA
直播内容的理解与识别
把直播中最核心,最精彩的部分挖掘出来推荐给用户
直播实时性特征