1. 业务背景
直播推荐与内容推荐的异同,K歌直播与其他直播(如虎牙)的区别:
2. 推荐系统架构及挑战
推荐系统架构
3 召回模型算法设计
召回模型迭代
3.1 双塔模型(DSSM)
3.2 召回多模态模型实践
对item侧性多模态的embedding:
- Live Streaming View:我理解就是直播间表格特征,如主播id等
- Song View:K歌直播业务中,很多直播间会绑定一个Song ID,基于Song ID做embedding。我理解可能是主播在唱的歌 或者 背景音乐吧
- Multi-media View:这部分就是直播间的内容理解——直播间视频、音频的embedding。我理解线上服务这部分特征应该是异步计算出来的,但是直播间的视频、音频特征具有实时性。如何异步的截取?这是一个问题。此外,我认为相比视频、音频特征,其实对直播间头像图片、房间title的内容理解应该来的会更加直接。毕竟推荐直接展示给user的是直播间的头像图片和房间title,比如某些男性user就偏好某些女性主播直播间头像。
另外还有一个多模态融合的问题。看上图示意,应该是每个模态embedding单独与user embedding进行相似度训练。**这样做的话,每个item就会存在3个embedding。线上服务召回TopK时需要去重。但这种方案就忽略了不同模态之间的权重。**我想到的另外一种方案是,将各模态的embedding concat起来,全连接映射到user embedding 相同维度(即 item embedding),再做相似度训练。但这会出现的问题是:有些直播间可能不存在Song ID,需要做特征缺失处理。
4. 精排模型算法设计
精排模型多维度迭代
4.1.1 特征处理
4.1.2 采样及加权
4.2.1 特征交叉——KFM
这里定义了所谓的KFM,其实可以简单理解将 ϕ视为一个全连接神经网络函数。ϕi,j就是将j维映射到i维向量的全连接神经网络。这样不同bit维的特征就能进行自由的交叉了。
4.2.2 特征交叉——DeepKFM&Cross|AutoInt
用Cross、AutoInt引入了高阶特征:
4.2.3 特征交叉——DeepBitInt
其实就是从每个field做emb,变成每个bit unit做emb,在实现上反而更加统一方便。
4.3.1 CVR预估——ESMM
4.3.2 CVR预估——GradNorm
参阅:《多任务学习——【ICML 2018】GradNorm》
4.3.3 CVR预估——CGC
参阅:《多任务学习——【RecSys 2020】【腾讯视频】PLE》