一、多场景简述
(一)多场景的描述
多场景指的是在不同的应用场景或用户交互环境中进行推荐。
1、在同一个视频APP中,单列模式(比如抖音,一屏之内只有一个视频,通过上下才能切换)和多列模式(youtube中一屏可以显示多个视频),用户的行为模式存在显著差异。
2、一个提供全球服务的APP,在不同国家的用户行为模式也存在显著差异。
3、同一个APP内根据生命周期不同的用户,推荐系统的应对策略也不一样。
(二)多场景与多任务、跨场景的区别
1、多场景与多任务的区别
多场景是使用一个模型来服务好行为模式不同的用户。多任务是一个模型同时优化多个目标或指标。无论用户来自于哪个群体,模型都要预测多个目标。两者相互正交,但是技术上可以借鉴。
2、多场景与跨场景的区别
多场景是使用一个模型来服务好行为模式不同的用户。跨场景是不同模型来服务不同的用户并且在多个模型之间存在着知识迁移。跨场景举例,比如一个公司推出的图文APP已经积累了大批用户,而新开发的视频APP用户稀疏、存在冷启动问题,就可以利用迁移学习实现跨场景服务。
二、特征位置
(一)场景指示特征
为了模型能够识别出不同场景、不同群体并区别对待,应该首先设计场景指示特征。
场景指示特征举例:
- 为了能够区分不同国家的用户群体,将国籍、语言作为场景指示特征。
- 为了能够区分新老用户,将”用户是否登录“、”近7天活跃用户“等作为场景指示特征。
(二)场景指示特征加入模型
场景指示特征喂入一个浅层DNN,引入位置在离终极目标较近处,这样可以避免经过DNN从最底层传上来造成的信息损失。
区分对场景敏感的特征为场景指示特征,不敏感的为常规特征,最后将两者的logit相加。
三、模型结构
(一)多场景推荐模型组成部分
主要由两部分组成,场景共享部分和场景独立部分。
- 场景共享部分:通过共享结构和参数实现,由数据丰富的场景训练好共享参数和结构,向数据稀疏的场景进行知识迁移。
- 场景独立部分:通过独享结构和参数实现场景独特性。
(二)Split & Merge
最简单的思路就是将共享结构和各场景的独立结构串联起来,如下图所示:
具体流程描述如下:
将所有场景的样本喂入共享底层结构,得到输出后根据场景指示特征将输出划分成若干segment,喂入相应场景的塔中。最后将不同场景下的预测结果按照原始输入的顺序合并起来,与原始label一起计算loss。
(三)HMoE
在普通串联结构上,阿里巴巴提出了Hybrid Mixture-of-Experts(HMoE)。
1、HMoE的假设
认为对于每个场景的样本来说,不仅所在场景的打分有价值,其他场景的打分也有借鉴意义。因此HMoE是在每个场景独立部分都引入了MoE,每个场景的模型都相当于一个expert。
2、HMoE具体例子
也就是说对于场景A而言,不仅要对所在场景的样本打分,还要给其他场景的样本打分。需要注意的是,场景A的模型给其他场景打分不要反过来调整场景A的模型参数。
最后得到的预测值是融合多个expert打分得到的,权重由gate得到。
(四)STAR
STAR突破了传统的串联方式,使得共享场景结构和参数与独立场景结构和参数更密切地交织在一起。采用的网络结构可以由下述公式描述:
STAR 结构通过第三个公式中按位相乘的方式将共享的全局信息(通过共享权重 W_i 表示)和场景特定的本地信息(通过独立权重 Wp,i表示)结合在一起。其中W_i是共享结构第i层的权重,W_pi是独享结构第i层的权重,W*_pi是按位相乘生成的权重(成为后续 DNN 中用于场景特定任务的权重)。
四、模型参数
(一)动态权重的建模过程
动态权重Dynamic Weight(DW)是近年兴起的多场景建模模式。
建模主要过程如下:
- 将场景指示特征喂给权重生成器,得到动态生成的权重向量。
- 将得到的动态权重向量reshape成合适形状的DNN。
- 将得到的网络应用于整个推荐模型的关键位置。
例子:
假设我们正在构建一个电商平台的推荐系统,用户的行为可能在不同的场景(如首页、搜索页面、商品详情页)中表现出不同的兴趣。例如,在首页,用户可能更倾向于发现新商品,而在搜索页面,用户可能更关注与搜索关键词直接相关的商品。
- 在首页推荐中,动态权重可能会加强用户对新商品的关注,减弱对历史购买商品的依赖;
- 在搜索页面,动态权重可能会更强调与关键词匹配的特征,从而提高相关性。
(二)动态权重的实现方式LHUC
Learn Hidden Unit Contribution(LHUC)是动态权重模式的一种简单实现。LHUC让场景指示特征当裁判,根据不同场景动态调整输入特征的权重,增强对当前场景重要的特征,抑制对当前场景不重要的特征。
流程如下公式:
C是经过LHUC输出的各个field权重,C[i]大于1表明要加强该field。
最后将加权后的各field的embedding拼接到一起,喂入DNN。
(三)多场景多任务实现方式M2M
阿里巴巴提出的M2M(Multi-scenario Multi-Task)模型。整体结构上还是遵循MMoE的,但是在门控和任务独占塔引入了动态权重模式。