CIKM 2021 | 淘宝多场景推荐排序模型ZEUS

简介: CIKM 2021 | 淘宝多场景推荐排序模型ZEUS

1.gif本文介绍大搜索算法团队发表于CIKM  2021 的论文 Self-Supervised Learning on Users' Spontaneous Behaviors for  Multi-Scenario Ranking in E-commerce。论文中提出了多场景推荐排序模型ZEUS (Zoo of ranking  modEls for mUltiple  Scenarios),基于用户主动行为预训练,解决推荐反馈闭环、小场景和新场景训练数据不足、多场景排序模型联合学习等问题,在电商搜索多个推荐场景将CTR、CVR、GMV平均提升了6.0%、9.7%、11.7%。

image.png

背景

 电商搜索导购与增长

搜索作为电商主要的成交场景,在电商大盘成交增长中发挥着重要的主引擎作用。搜索导购与用户增长,通过下拉推荐、Query推荐等方式为用户推荐query,对提升搜索用户搜索心智、搜索体验、搜索的增长(UV、成交、GMV等)等具有重要的长期价值。

电商搜索主要来源包括两种形式:用户主动输入(即用户在搜索框主动输入query,通过下拉推荐辅助输入)、Query推荐(即用户点击在搜索框中推荐的query)。其中Query推荐占比超过20%。
主动输入,是用户有搜索意图时的主动行为,是由用户本身的需求决定的,系统很难影响到。Query推荐是在用户没有任何输入时精准地推荐query,吸引用户进入搜索。

因此电商搜索增长的主要方法是通过通过优化Query推荐排序模型的效率,提升Query推荐来源的搜索UV。具体实现的方式是:在多个场景中,通过Query推荐在搜索框中或搜索框下自动显示一个或多个推荐的query,吸引用户点击query进入搜索结果页,进而产生点击、购买宝贝的行为。
 电商搜索多场景Query推荐

电商搜索全域多场景Query推荐,包括首页底纹、搜索发现、频道页搜索发现、大促会场、联盟APP、特价版等多个场景。其中频道主要包括聚划算、百亿补贴、红包等。

例如,如下图所示:Scenario  1为底纹场景,用户进入APP后,首页搜索框默认推荐出query;Scenario  2为频道页搜索发现,用户进入频道页,点击搜索框时,会自动显示多个推荐的query,引导用户点击;Scenario  3为联盟APP场景,比如用户从其他APP(例如抖音)点击链接进入电商APP后,我们会在合适的时机推荐一个query,进入搜索页面;Scenario  4为特价版场景。

image.png

我们的工作是提出多场景Query推荐排序模型ZEUS(Zoo of ranking modEls for mUltiple Scenarios),同时提升多场景Query推荐的效率(例如搜索UV,购买UV,GMV等)。

 多场景Query推荐排序模型的挑战

多场景Query推荐排序,面临的主要问题包括:

  1. 反馈闭环问题。搜索推荐广告中的排序模型,一般基于用户的隐式反馈  (implicit feedback)来训练:  模型上线后,推荐给用户多个item,然后用户会有点击或不点击这些item的反馈行为。通常我们将点击item作为正样本、未点击item作为负样本,来训练新的模型上线。这种偏向效率的训练方式,会导致排序系统展示出来的item通常具有高频的特点,很多长尾的item没有曝光的机会,马太效应严重,不利于生态的长期健康成长。
  2. 小场景和新场景训练数据不足。多个Query推荐场景中,很多场景属于小场景(例如频道页)、新场景(例如双11互动城活动),这些场景训练数据比较少,而排序模型参数量通常为千万级或亿级,直接用单个场景反馈数据训练,会导致过拟合问题,学习的模型效率较低。
  3. 多个场景联合学习。能否同时利用多个场景的数据,建模多个场景的共同点、不同点,提升多场景排序模型的效率呢?

为了解决这些问题,我们提出了ZEUS模型,借鉴Self-supervised Learning的思想,通过Pre-training预训练,实现打破反馈闭环、提升多个场景的Query推荐效率。

相关工作

 排序模型

深度学习排序模型DIN  [1]、DIEN [2]、DMT [3]等,分别通过用attention, RNN,  Transformer建模用户近期行为序列,取得了state-of-the-art的效果。例如,在淘宝搜索推荐商品排序中,采用Transformer建模用户行为序列,取得了很好的线上效果。

更多关于搜索推荐广告排序的模型介绍,请关注github:Awesome-Deep-Learning-Papers-for-Search-Recommendation-Advertising。

 多场景排序模型

阿里巴巴AliExpress多场景搜索模型HMoE  [4] ,阿里巴巴AliExpress多场景推荐模型SAML [5],阿里妈妈多场景广告排序模型STAR [6]  ,这些优秀的工作关注于多个场景联合学习,能够通过建模多个场景的相同点、不同点,来优化多场景排序模型。这些方法基于多个场景的隐式反馈数据,我们的方法主要关注于如何借助用户主动行为数据进行预训练,来改进多场景排序模型的效率,和这些方法是正交互补的。

 Query推荐

淘宝搜索Query推荐模型,2018年从GBDT升级到MEIRec [7],2019年升级到FINN [8] 模型。

Query推荐和下拉推荐(Query Suggestion)不同,因为:下拉推荐需要用户先输入query前缀并且推荐出的query要满足前缀匹配,更像一个搜索问题;Query推荐是一个纯推荐问题,对推荐出的query没有额外要求。

 自监督学习

Self-supervised  Learning在NLP、CV领域取得了state-of-the-art的效果。例如NLP中,BERT [9] 和GPT  [10]通过在海量无监督文本中预训练,在下游任务中取得了很好的效果;在CV中,SimSiam [11]  等自监督学习方法同样取得了很好的效果。基本思想是从海量无监督数据中,设计构造出监督任务,预训练模型,来改进后续监督任务的效果。

更多自监督学习的介绍,请关注微信公众号或知乎专栏“搜索推荐广告排序艺术”文章 自监督学习:人工智能的未来,github Awesome-Self-supervised-Learning-papers。

多场景Query推荐排序模型ZEUS

 思想

如下图右侧所示,已有的排序模型方法,利用implicit feedback反馈数据来训练排序模型 (Sequential Interest Model),输入的特征主要包括用户近期的行为序列。

自监督学习的核心思想,是从输入的一部分去预测剩余的部分。例如BERT在预训练阶段:通过Masked  LM任务,从mask后的句子预测缺失的单词,预测被mask的单词;通过Next Sentence Prediction (NSP)  任务,预测是否是下一个句子。GPT基于language model预测下一个token。CV中预测图像被mask掉的部分,或预测图像旋转角度等。

将自监督学习应用到排序,自然的方法是,采取Pre-training和Fine-tuning两个阶段的方式,这两个阶段,都使用Sequential Interest Model来建模用户的行为序列。

在Pre-training阶段,如下图左侧所示,基于排序模型的输入(即用户行为序列),学习用一部分取预测剩余的部分,来完成对排序模型的预训练。我们设计的预训练任务是,类似GPT,基于用户历史行为,预测下一个用户主动输入的query,因为用户主动输入的query正是Query推荐排序模型理想的结果。例如在下图中,当用户在p1,  q2, p3有行为后,分别预测用户接下来会主动输入q1, q3, qt。

在Fine-tuning阶段,如下图右侧所示,基于多场景Query推荐的implicit feedback反馈数据来fine-tune排序模型,得到多个场景的排序模型。例如在下图中,在用户在p2, q3有行为后,分别预测用户接下来会主动搜索q2, q4。

image.png

 Sequential Interest Model

在排序模型Sequential Interest Model中,输入包括用户画像, 用户的搜索query序列、点击商品序列,待排序query,线上原有模型(GBDT, FINN)使用的dense特征, 场景特征(场景名称等)。

对于序列建模,我们采取了stage-of-the-art的排序模型DMT中的方法,利用多个Transformer分别建模用户的搜索query序列、点击商品序列。对于每个行为序列,基于Transformer的Encoder的self-attention对序列建模,建模行为间的关联关系,然后再利用Decoder和待排序的query进行target   attention,得到用户行为序列的兴趣向量。我们尝试了额外加入其他的序列,例如加购序列、购买序列,但是没有显著额外增益,因为这些行为相对比较稀少。

用户行为序列的兴趣向量和其他向量拼接后,通过MLP,预测出待排序query的CTR。

image.png

 Pre-training

在预训练阶段,借鉴BERT和GPT的思想,我们提出Next-Query Prediction (NQP)任务,来预训练排序模型Sequential Interest Model。

  • Next-Query Prediction (NQP) 任务

类似GPT,基于用户历史行为,预测下一个用户主动输入的query。

  • 损失函数

在BERT和GPT中,采用softmax函数来计算要预测的token的概率分布,然后基于cross   entropy计算损失函数,但是这种方式对搜索推荐广告排序并不适用。因为BERT和GPT中的token的词表大小仅分别有30,000和40,000,但搜索推荐广告要预测下一个item  (query或商品)的词表大小通常是千万级或亿级。例如,在Query推荐场景,query的词表有2亿。

借鉴Contrastive Predicting Coding (CPC) [12] 的思想,可以采样一些负样本,基于InfoNCE loss来进行优化:

image.png

论文[14]指出InfoNCE loss可以用交叉熵损失函数来近似,我们实验中也发现了这种近似方法的有效性。

Hard Negative样本:简单地随机采样,会使得负样本过于简单,因此我们采样用户主动搜索query时曝光给用户但用户未点击的query作为hard negative examples。例如,用户在主动输入query时,下拉推荐会展示一些query给用户,我们把这些样本作为负样本。

  • 讨论

我们采取的方法,和BERT和GPT对比,主要区别如下:

  1. 我们的模型和BERT、GPT参数量规模都是亿级,但我们的参数主要是embedding,BERT和GPT的参数量主要在超过12层的Transformer。因此BERT和GPT延迟会很高,无法直接应用到排序模型,而我们的模型线只有一层Transformer,线上排序仅需要25ms。
  2. BERT和GPT需要输入数据组织成一个序列,而在排序模型中还有非序列的特征数据,例如用户画像、dense特征等。
  3. BERT仅使用Transformer的encoder, GPT仅使用Transformer的decoder,而我们的模型同时使用了encoder和decoder,可以更好地建模历史行为序列和要预测的item的关系、建模多兴趣。

我们也尝试了CV中的Simsiam [11],在预训练阶段,加入额外的对比损失函数,但是没有带来额外增益。

 Fine-tuning

在Fine-tuning阶段,可以将每个场景的排序模型学习看成BERT里的一种下游任务,直接用每个场景的隐式反馈数据fine-tuning,得到每个场景的排序模型。我们实验发现:在每个场景的隐式反馈数据fine-tuning之前,先使用所有场景的隐式反馈数据一起fine-tuning  (即Multi-Scenario Fine-tuning),能取得更好的效果。

Fine-tuning阶段的具体操作如下:

加载预训练的排序模型后:

首先,同时使用多个Query推荐场景的implicit   feeedback数据进行fine-tuning,来建模多个场景的共性,得到一个task-aware的排序模型,这个排序模型可以直接用到训练数据少的新场景或小场景。这个Multi-Scenario  Fine-tuning的过程,也可以看成是基于多个场景Query推荐的反馈数据做任务导向的预训练。

然后,使用每个Query推荐场景的implicit feeedback数据对task-aware的排序模型继续fine-tuning,来建模每个场景的特点,得到每个场景的排序模型。

需要说明的是,由于预训练阶段没有dense  features和scenario features,因此Prediction Layer的输入维度不同,所以Prediction  Layer的参数没有共享,两个阶段共享的是embedding  layer和Transformer序列模型的部分。这样可以共享底层表示和序列建模部分。

我们实验发现fine-tuning阶段固定住query和item embedding时,效果最好,因为这两个embedding参数量为亿级,训练数据不充分时容易过拟合。

因此,多个场景的Query推荐模型,使用这些共享的embedding参数以及联合训练来建模多个场景的共性,同时使用其他不同的参数来建模多个场景的不同点。

image.png

 系统架构

线上系统的架构如下图所示,在用户进入电商某个Query推荐场景时,客户端会将用户、场景信息传送到多场景Query推荐服务器  (通过DII实现),然后调用召回模块(例如基于用户点击商品、搜索query分别进行i2q,  q2q召回),得到几百个query,再调用RTP模块对这些召回的query进行打分,RTP找到这个场景的排序模型进行打分,然后将得分高的query返回给客户端。

在实际部署时,多个场景的Query推荐模型部署到同一台物理机上,它们共享内存中加载的内容表(包括query和商品画像信息)。

image.png

离线实验

 Dataset

线上我们收集了Query推荐模型在场景1(底纹),场景2(搜索发现),场景3(联盟APP)一个月的训练数据。同时,收集了用户主动在搜索框输入query的数据。统计数据如下表所示。

image.png

 Baselines

Baseline选取了搜索线上Query推荐用的GBDT、FINN,以及Youtube DNN,DMT模型。

 实验结果

  • 和Baselines对比

和Baselines对比结果如下表所示,可以看出:ZEUS比其他方法,都取得了明显的提升。其中ZEUS和DMT的区别在于,是否加入了Pre-training,从中可以看出:预训练对于效果提升有非常重要的作用。

image.png

  • Ablation Study

行为序列类型

不同行为序列的影响如下表所示,可以看出:单独的搜索query序列、商品点击序列都有明显的作用,两种序列行为联合起来使用能取得更好的效果。

image.png

预训练

我们分析了是否使用预训练 (下表第二列)对模型效果的影响,如下表所示。可以看出:使用预训练能显著能提升模型的效果。

image.png

Multi-Scenario Fine-tuning

我们分析了在Fine-tuning阶段是否使用Multi-Scenario  Fine-tuning(即在Fine-tuning阶段先使用Multi-Scenario的数据Fine-tuning)  (上表第三列),对模型效果的影响,如上表所示。可以看出:使用Multi-Scenario  Fine-tuning,建模多个场景的共性,能提升模型在各场景的效果。

Scenario-specific Fine-tuning

我们分析了在Fine-tuning阶段是否使用每个场景的数据分别fine-tuning  (即Scenario-specific Fine-tuning), 实验结果显示:使用Scenario-specific  Fine-tuning,  在底纹、搜索发现、联盟APP场景,离线AUC的绝对数值分别提升0.4%,0.6%,0.7%。这说明,使用Scenario-specific  Fine-tuning,建模各个场景的特点,能提升模型在各场景的效果。

线上效果

 多场景线上效果

ZEUS模型在多个场景的线上效果如下表所示,其中Scenario  1为底纹,Scenario 2为搜索发现,Scenario 3为联盟APP,Scenario  4为特价版。其中对于特价版这个新场景,我们没有使用训练数据,直接使用了其他多个Query推荐场景的反馈数据联合Fine-tuning得到的模型。UCTR指query的点击率。

从表中可以看出:对于大、中、小、新场景,ZEUS模型都能取得比原有线上大流量模型FINN更好的效果。例如对于底纹场景,FINN比GBDT提升了+1.9%,没有预训练的DMT比FINN提升了+3.6%,ZEUS模型比FINN的UCTR提升了+16.6%。

线上效果说明了预训练能够提升多个场景的Query推荐效率。

image.png

 打破推荐闭环

我们分析了在每个场景,不同模型一个月内给所有用户推荐出的唯一query的个数,如下表所示,可以看出:加入预训练,可以显著提升推荐出的query个数,打破推荐闭环。
image.png
 Case Study

线上随机采样底纹场景的一个实例,如下图所示。

ZEUS模型根据用户的搜索query序列和点击商品序列,推荐出query "欧式针织毛衣"。

其中搜索query序列中“法式毛衣”和“针织毛衣”和推荐出的query相似度比较高,它们的attention分数也显著高;用户点击宝贝序列中,“针织裙子”和“欧式长款毛衣”和推荐出的query相似度比较高,它们的attention分数也显著高。

模型综合考虑用户的搜索query序列和点击商品序列,得出用户的主要兴趣是“毛衣”,同时她对“法式”,“欧式”,“针织”风格感兴趣,因此推出了query"欧式针织毛衣"。

可以看出,ZEUS模型有很好的推荐效果和对推荐结果的解释能力。

image.png

未来展望

未来主要的优化方向有:

  1. 预训练:目前我们只是采用了简单的Next-Query Prediction任务来进行预训练。未来可以进一步设计新的预训练任务、对比损失函数,来进一步提升预训练效果。
  2. 多场景联合学习:如何更好地利用多个场景的反馈数据,建模多个场景的相同点、不同点,值得更深入的研究和尝试。
  3. 多目标优化:目前我们主要考虑优化推荐query的CTR,更好地实现query点击、引导商品点击、引导商品购买、GMV等多个目标优化,也值得进一步深入研究。
相关文章
|
24天前
|
人工智能 自然语言处理 算法
首届大模型顶会COLM 高分论文:偏好搜索算法PairS,让大模型进行文本评估更高效
【8月更文挑战第26天】在人工智能领域,尽管大型语言模型(LLMs)作为自动评估工具展现了巨大潜力,但在自然语言生成质量评估中仍存偏见问题,且难以确保一致性。为解决这一挑战,研究者开发了Pairwise-preference Search(PairS)算法,一种基于不确定性的搜索方法,通过成对比较及不确定性引导实现高效文本排名,有效减少了偏见、提升了评估效率和可解释性。PairS在多项任务中表现出色,相较于传统评分法有显著提升,为自然语言处理评估提供了新思路。更多详情参阅论文:https://arxiv.org/abs/2403.16950。
31 4
|
机器学习/深度学习 算法 PyTorch
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
289 0
|
机器学习/深度学习 数据可视化 数据库
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
146 0
|
机器学习/深度学习 数据可视化 算法
SIGIR 2022 | 当多层级遇到多兴趣:快手联合武汉大学提出用于序列推荐的多粒度神经模型
SIGIR 2022 | 当多层级遇到多兴趣:快手联合武汉大学提出用于序列推荐的多粒度神经模型
138 0
|
机器学习/深度学习 自动驾驶 数据挖掘
实战教程 | ECCV 2022 Out Of Distribution 分类赛道冠军方案解读
实战教程 | ECCV 2022 Out Of Distribution 分类赛道冠军方案解读
466 0
|
机器学习/深度学习 Web App开发 人工智能
7 Papers & Radios | 中国天眼FAST登Nature封面;MIT提出可出题、做题、评分模型(2)
7 Papers & Radios | 中国天眼FAST登Nature封面;MIT提出可出题、做题、评分模型
246 0
|
机器学习/深度学习 人工智能 自然语言处理
7 Papers & Radios | 中国天眼FAST登Nature封面;MIT提出可出题、做题、评分模型(1)
7 Papers & Radios | 中国天眼FAST登Nature封面;MIT提出可出题、做题、评分模型
128 0
|
机器学习/深度学习 算法 搜索推荐
CIKM论文解读 | 淘宝内容化推荐场景下对多场景全域表征的思考与应用
我们结合逛逛推荐场景中的具体问题,从多场景全域表征的视角进行了一系列的探索与内容推荐场景的应用,从全域表征的范围、信息迁移方式以及模型框架的应用等维度展开我们的优化工作,取得了阶段性的优化经验和业务效果。
773 0
|
人工智能 自然语言处理 安全
ICLR 2023论文得分排名出炉!多篇论文竟同时拿到1分和10分
ICLR 2023论文得分排名出炉!多篇论文竟同时拿到1分和10分
390 0
|
机器学习/深度学习 搜索推荐 算法
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计
推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计