《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》
点击率(Click-Through Rate: CTR
)预估建模在推荐系统(recommender system
)和在线广告(online advertising
)等工业应用中起着至关重要的作用。由于用户历史行为数据(user historical behavior data
)的快速增长,以学习用户兴趣的意图representation
为重点的用户兴趣建模(user interest modeling
)被广泛引入 CTR
预估模型。然而,由于真实在线系统中计算负担和存储负担的限制,大多数提出的方法只能对长度最多数百的用户行为序列数据进行建模。
事实证明,丰富的用户行为数据具有巨大的价值。例如,在全球领先的电商网站之一的淘宝网中,有 23%
的用户在过去五个月内点击了 1000
多种商品。如何设计一种可行的解决方案来对长的用户行为序列数据(long sequential user behavior data
)进行建模,这一直是一个开放而热门的话题,吸引了来自工业界和学术界的研究人员。
研究的一个分支借鉴了 NLP
领域的思想,提出使用 memory network
对长的用户行为序列数据进行建模,并取得了一些突破。阿里巴巴提出的 MIMN
是一项典型的工作,它是通过共同设计( co-design
)学习算法和 serving system
来达到 SOTA
的。MIMN
是第一个可以对长度可达 1000
的用户行为序列进行建模的工业级解决方案。
具体而言,MIMN
将一个用户多样化(diverse
)的兴趣增量地(incrementally
)嵌入到固定大小的 memory matrix
中。该矩阵将通过每个新的行为进行更新,这样用户建模的计算就和 CTR
预估解耦。因此,对于在线 serving
而言,latency
将不再是问题。而存储代价依赖于 memory matrix
的大小,该大小远远小于原始的用户行为序列。
在长期兴趣建模(long-term interest modeling
)中可以找到类似的思想。然而,对于 memory network-based
方法来建模任意长的序列数据仍然是具有挑战性的。实际上我们发现:当用户行为序列的长度进一步增加,比如增加到 10000
甚至更多时,对给定一个特定的候选item
的情况下,MIMN
无法精确地捕获用户的兴趣。这是因为将用户所有的历史行为编码到固定大小的 memory matrix
会导致大量的噪声被包含在 memory unit
中。
另一方面,正如 DIN
在以前的工作中指出的,一个用户的兴趣是多样化(diverse
)的,并且在面对不同候选item
时会有所不同。DIN
的关键思想是:在面对不同的候选 item
时,从用户行为序列中搜索有效信息,从而建模用户的特定兴趣(special interest
)。通过这种方式,我们可以解决将用户所有兴趣编码为固定大小的参数(parameter
)的挑战。
DIN
确实为使用用户行为序列数据的 CTR
建模带来了很大的提升。但是,如前所述,面对长的用户行为序列数据,DIN
的搜索公式的计算成本和存储成本是不可行的。因此,我们能否应用类似的搜索技巧,并设计一种更有效的方法来从长的用户行为序列数据中提取知识?
在论文 《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》
中,作者通过设计一个新的建模范式来解决这一挑战,并将其命名为基于搜索的兴趣模型(Search-based Interest Model: SIM
)。 SIM
采用了 DIN
的思想,并且仅捕获与特定候选 item
相关的用户兴趣。
在 SIM
中,用户兴趣是通过两个级联(cascaded
)的搜索单元(search unit
)来提取的:
通用搜索单元(General Search Unit: GSU
):充当原始的、任意长的行为序列数据的通用搜索,并具有来自候选 item
的 query
信息,最终得到和候选item
相关的用户行为序列子集(Sub user Behavior Sequence: SBS
)。
为了满足latency
和计算资源的严格限制,在 GSU
中使用了通用、但是有效的方法。根据我们的经验,可以将 SBS
的长度缩短为数百个,并且可以过滤原始的、长的用户行为序列数据中的大部分噪声信息。
精准搜索单元(Exact Search Unit: ESU
):对候选 item
和 SBS
之间的精确关系进行建模。在这里,我们可以轻松应用 DIN
或 DIEN
提出的类似方法。
论文主要贡献:
提出了一种新的范式 SIM
,用于长的用户行为序列数据进行建模。级联的两阶段搜索机制的设计使得 SIM
具有更好的能力,可以在可扩展性(scalability
)和准确性(accuracy
)方面为长期(life-long
)的用户行为序列数据建模。
介绍了在大规模工业系统中实现 SIM
的实践经验。自 2019
年以来,SIM
已经部署在阿里巴巴展示广告系统(display advertising system
)中,带来了 7.1%
的CTR
提升和 4.4%
的 RPM
提升。现在 SIM
正在服务于主要流量。
将长的用户行为序列数据建模的最大长度提高到 54000
,比已发布的 SOTA
行业解决方案 MIMN
大 54
倍。
相关工作:
用户兴趣模型(User Interest Model
):基于深度学习的方法在CTR
预估任务中取得了巨大的成功。
在早期,大多数前期作品使用深度神经网络来捕获来自不同 field
的特征之间的交互,以便工程师可以摆脱枯燥的特征工程的工作。最近,我们称之为用户兴趣模型(User Interest Model
)的一系列工作聚焦于从用户历史行为中学习潜在用户兴趣的 representation
,这些工作使用不同的神经网络架构(如 CNN, RNN, Transformer, Capsule
等等)。
DIN
强调用户的兴趣是多样化的,并引入了一种attention
机制来捕获用户对不同 target item
的 diverse
兴趣。
DIEN
指出,用户历史行为之间的时间关系对于建模用户漂移(drifting
)的兴趣非常重要。在 DIEN
中设计了一个基于 GRU
的、带辅助损失的兴趣抽取层(interest extraction layer
)。
MIND
认为,使用单个向量来表示一个用户不足以捕获用户兴趣的变化的特性(varying nature
)。在 MIND
中引入了胶囊网络(Capsule network
)和动态路由方法(dynamic routing method
),从而学习用户兴趣的、以多个向量表示的representation
。
受到 self-attention
架构在 seq-to-seq learning
任务重成功的启发, DSIN
引入了 Transformer
来对用户的 cross-session
和 in-session
中的兴趣进行建模。
长期用户兴趣(Long-term User Interest
):MIMN
的论文中显示了在用户兴趣模型中考虑长期历史行为序列可以显著提高 CTR
模型的性能。尽管更长的用户行为序列为用户兴趣建模带来了更多有用的信息,但是它极大地增加了在线 serving sysem
的延迟和存储负担,同时也为 point-wise
的 CTR
预估带来了大量的噪声。
一系列工作聚焦于解决长期用户兴趣建模中的挑战。长期用户兴趣建模通常基于非常长的、甚至是 life-long
的历史行为序列来学习用户兴趣 representation
。
《Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction》
提出了一种 Hierarchical Periodic Memory Network
,用于对每个用户进行 life-long
序列建模,其中对序列模式进行个性化memorization
。
《Adaptive user modeling with long and short-term preferences for personalized recommendation》
选择一个attention-based
框架来结合用户的长期偏好和短期偏好。他们采用了 attentive Asymmetric-SVD
范式来对长期兴趣建模。
《Practice on Long Sequential User Behavior Modeling for Click-through Rate Prediction》
提出了一种 memory-based
的架构,称作 MIMN
。该架构将用户的长期兴趣嵌入到固定大小的memory network
中,从而解决用户兴趣数据的大容量存储问题。并且他们设计了一个 UIC
模块来增量记录新的用户行为,从而解决latency
的限制。
但是,MIMN
在 memory network
中放弃了 target item
的信息,而 target item
已经被证明对于用户兴趣建模很重要。
通过建模用户行为数据来预估 CTR
,这已经被证明是有效的。典型地,attention-based CTR
模型(如 DIN, DIEN
)设计复杂的模型结构,并且包含attention
机制,以通过从用户行为序列中搜索有效知识来捕获用户的多样化兴趣。其中搜索的 input
来自于不同的候选 item
。
但是在现实世界的系统中,这些模型只能处理长度小于 150
的短期(short-term
)行为序列数据。另一方面,长期(long-term
)用户行为数据很有价值,并且对长期兴趣进行建模可以为用户带来更多样化的推荐结果。
我们似乎陷入了一个两难的境地:在现实世界的系统中,我们无法通过有效而复杂的方法来处理有价值(valuable
)的 life-long
用户行为数据。为应对这一挑战,我们提出了一种新的建模范式,称之为基于搜索的兴趣模型 Search-based Interest Model: SIM
。SIM
遵循两阶段搜索策略,可以有效地处理长的用户行为序列。
我们首先介绍 SIM
的总体工作流程,然后详细介绍我们提出的两种搜索单元( search unit
)。
SIM
遵循一个级联的 two-stage search
策略,其中包含两个单元:通用搜索单元(General Search Unit: GSU
)、精确搜索单元(Exact Search Unit: ESU
)。SIM
的整体工作流如下图所示。
第一阶段:我们利用 GSU
从原始的长期行为序列中寻找 top-K
相关(relevant
)的子行为序列,其复杂度为线性时间复杂度。这里 K
通常要比原始序列的长度要短得多。
如果有时间和计算资源的限制,则可以执行一种有效的搜索方法来搜索相关(relevant
)的子行为序列。在后续内容中,我们提供了 GSU
的两种简单实现:软搜索(soft-search
)和硬搜索(hard-search
)。
GSU
采取一种通用(general
)但有效(effective
)的策略来减少原始的行为序列的长度,从而满足对时间和计算资源的严格限制。同时,长期用户行为序列中可能会破坏用户兴趣建模的大量噪声可以在第一阶段通过搜索策略进行过滤。
第二阶段:ESU
将经过过滤的用户行为子序列作为输入,并进一步捕获精确的用户兴趣。
由于长期用户行为序列的长度已经减少到数百,因此可以应用复杂体系结构的精巧(sophisticated
) 的模型,如 DIN, DIEN
等等。
然后遵循传统的 Embedding&MLP
范式,将精确的长期用户兴趣的输出、以及Other Feature
作为输入。
注意:尽管我们分别介绍了这两个阶段,但是实际上它们是一起训练的。
长期用户行为序列是否包含短期用户行为序列?论文未说明这一点。看结构图的描述,似乎不包含。
给定一个候选 item
(即将被 CTR
模型打分的target item
),只有一部分用户行为有价值。这部分用户行为与最终用户决策密切相关。挑选出这些相关(relevant
)的用户行为有助于用户兴趣建模。
然而,使用整个用户行为序列直接对用户兴趣进行建模将带来巨大的资源占用和响应延迟(latency
),这在实际应用中通常是无法接受的。为此,我们提出了一个通用搜索单元(general search unit: GSU
),从而减少用户兴趣建模中用户行为的输入数量。这里,我们介绍两种通用的搜索单元:硬搜索(hard-search
)和软搜索(soft-search
)。
给定用户行为的列表 item
),item
的相关性得分(relevant score
) top-K
的相关(relevant
)行为作为行为子序列(sub behaviour sequence
)。
K
的大小对模型性能的影响如何?论文并未进行消融实验。
硬搜索和软搜索的区别在于相关的分
其中:
target item
的类目。
embedding
向量,target item
的 embedding
向量。item embedding
的维度,
对于软搜索,GSU
和 ESU
共享相同的 embedding
参数。
硬搜索(hard-search
):硬搜索模型是非参数(non-parametric
) 的。只有和候选item
相同类目(category
)的行为被挑选出来,然后得到一个子行为序列并发送给 ESU
。
硬搜索非常简单,稍后在实验中我们证明它非常适合在线 serving
。
对于
hard-search
,如何选择top-k
?因为它的score
要么为0
、要么为1
。这使得相同category
的行为,其score
全部为1
。
软搜索(soft-search
):在软搜索模型中,首先将 one-hot
向量,然后嵌入到低维向量
为了进一步加速成千上万个用户行为的 top-K
搜索,基于embedding
矩阵 sublinear time
)的最大内积搜索(Maximum Inner Product Search: MIPS
)方法 ALSH
用于搜索和target item
最相关的 top-K
行为。其中 distinct
行为的 embedding
向量组成。
借助训练好的 embedding
和最大内积搜索方法,成千上万个用户行为可以减少到数百个。
需要注意的是:长期(long-term
)数据和短期(short-term
)数据的分布是不同的。因此,在软搜索模型中直接使用从短期用户兴趣建模中学到的参数可能会误导长期用户兴趣建模。所以在本文中,软搜索模型的参数是在基于长期行为数据的辅助 CTR
预估任务下训练的,如上图左侧的软搜索训练(soft search training
)所示。
用户整体行为序列的representation
行为 representation
target Ad
向量 Multi-Layer Perception: MLP
)的输入,从而建模辅助任务。
注意,如果用户行为序列增长到一定程度,则不可能将整个用户行为序列馈入辅助任务的模型。这种情况下,可以从长的用户行为序列中随机采样子序列,子序列仍然遵循原始行为序列相同的分布。
作者提到 “对于软搜索,
GSU
和ESU
共享相同的embedding
参数“,这意味着embedding layer
的训练不仅依赖于main task
,还依赖于这里的辅助任务。
在第一个搜索阶段,我们从长期用户行为中选择和 target item
最相关的 top-K
子用户行为序列 Exact Search Unit: ESU
)。ESU
是一个以 attention-based
的模型。
考虑到这些选出来的用户行为横跨了很长时间,因此每个用户行为的贡献是不同的,所以涉及到每个行为的时间属性(temporal property
)。具体而言,target item
和选出来的 K
个用户行为的时间间隔 temporal distance
)信息。
embedding
矩阵 embedding
矩阵 representation
,记作
time info
用向量拼接还是直接逐元素相加?可以做个消融实验分析。
我们利用 multi-head attention
来捕获用户的多样化兴趣:
其中:
attention score
,head
的attention
。
head
的权重矩阵。
最终的用户长期diverse
兴趣表示为:head
数量。然后 MLP
中用于点击率预估。
最终模型同时使用了长期用户行为和短期用户行为,其中:
长期用户行为使用 ESU
来抽取长期用户兴趣representation
短期用户行为使用 DIEN
来抽取短期用户兴趣representation
长期用户兴趣representation
representation
Other feature representation
一起拼接作为后续 MLP
的输入。
长期用户兴趣由长期用户行为来捕获,这里使用
GSU + ESU
的原因是序列太长,DIEN
无法处理。短期用户兴趣由短期用户行为来捕获,这里使用
DIEN
是因为序列较短因此可以更精细地建模。对于较短的序列,没必要使用GSU
来硬过滤。
最后,我们在交叉熵损失函数下同时训练 GSU
和 ESU
:
其中:
如果 GSU
为软搜索模型,则
如果 GSU
使用硬搜索模型,那么
ESU
单元的损失,这也是SIM
模型主任务的目标损失。
GSU
单元的损失。
如果 GSU
为硬搜索,则由于硬搜索没有参数,因此不考虑其损失。
如果 GSU
为软搜索,则它是 SIM
模型辅助任务的目标损失。辅助任务也是一个 CTR
预估任务,只是它采用了更简单的架构(没有 multi-head
、没有 DIEN
)、更少的特征(没有短期用户行为、没有 Other feature
)。
这个辅助损失函数本质上是强制
GSU
部分学到的embedding
是任务相关的。
SIM
、DeepMCP
、DMR
等模型都是类似的思想,要求模型的子结构也能够捕获到CTR
相关的信息,从而使得约束了模型的解空间。
这里我们介绍在阿里巴巴的展示广告系统(display advertising system
)中实现 SIM
的实际经验。
life-long
用户行为数据在线serving
的挑战:工业级的推荐系统或广告系统需要在一秒钟内处理的大量的流量请求,这需要 CTR
模型实时响应。通常, serving latency
应该小于 30
毫秒。下图简要说明了我们在线展示广告系统中用于 CTR
任务的实时预测Real Time Prediction: RTP
系统。该系统由两个关键组件组成:计算节点(Computation Node
)、预估server
。
考虑到 lifelong
的用户行为,在实时工业系统中建立长期的用户兴趣 model serving
就变得更加困难。存储和延迟的限制可能是长期用户兴趣模型的瓶颈。实时请求的数据量(数据量 = 请求条数 x 单条请求的数据量)会随着用户行为序列长度的增加而线性增加。此外,我们的系统在流量高峰时每秒可为超过 100
万用户提供服务。因此,将长期模型部署到在线系统是一个巨大的挑战。
在线 serving
系统:前面我们提出了两种类型的 GSU
:软搜索模型和硬搜索模型。
对于软搜索模型和硬搜索模型,我们对从阿里巴巴在线展示广告系统收集的工业数据进行了广泛的离线实验。我们观察到软搜索模型生成的 top-K
行为数据与硬搜索模型的结果极为相似。换句话讲,软搜索的大部分 top-K
行为通常属于 target item
相同类目(category
)的。这是我们场景中数据的一个特色。在电商网站中,属于同一类目的 item
在大多数情况下是相似的。考虑到这一点,尽管在离线实验中软搜索模型的性能要比硬搜索模型稍好,但是在平衡性能提升和资源消耗之后,我们选择硬搜索模型将 SIM
部署到我们的广告系统中。
对于硬搜索模型,包含所有长的用户行为序列数据的索引是关键组件。我们观察到,行为可以通过其所属类目自然访问到。为此,我们为每个用户建立一个两级的结构化索引 two-level structured index
,并将其命名为用户行为树(user behavior tree: UBT
),如下图所示。
简而言之,UBT
遵循 Key-Key-Value
数据集结构:第一个 key
是 user-id
,第二个 key
是category id
,最后一个value
是属于每个类目的特定的行为item
。UBT
被实现为分布式系统,最大容量可达 22TB
,并且足够灵活以提供高吞吐量的query
。
然后,我们将 target item
的 category
作为我们的硬搜索query
。
在GSU
之后,用户行为的长度可以从一万多个减少到数百个。因此,可以缓解在线系统中 lifelong
行为的存储压力。
下图显示了 SIM
的新 CTR
预估系统。新系统加入了一个硬搜索模块,以从长的用户行为序列数据中寻找 target item
相关的有效行为(effective behaviors
)。
注意:GSU
的UBT
的索引可以离线构建。这样,在线系统中的 GSU
的响应时间可以非常短,与 GSU
的索引构建相比可以忽略。此外,其它用户特征可以并行计算。
如何解决
category
不平衡问题?例如,某些类目的商品特别多,另一些类目的商品很少。
这里我们详细介绍了我们的实验,包括数据集、实验配置、模型比较、以及一些相应的分析。由于 SIM
已经部署在我们的在线广告系统中,因此我们还会进行仔细的在线 A/B test
,并比较几个著名的工业级的模型。
数据集:我们在两个公共数据集、以及阿里巴巴在线展示广告系统收集的工业数据集进行了模型比较。
Amazon Dataset
:由 Amazon
的商品评论和元数据(meta-data
)组成。我们使用 Amazon
数据集的 Books
子集,该子集包含 75053
个用户、358367
个 item
、1583
个类目(category
)。
对于该数据集,我们将评论视为一种交互行为,并按时间对一个用户的评论进行排序。Amazon Books
数据集的最大行为序列长度为 100
。我们将最近的 10
个用户行为划分为短期(short-term
)用户序列特征,将最近的 90
个用户行为划分为长期(long-term
)用户序列特征。这些预处理方法已经在相关作品中广泛使用。
Taobao Dataset
:是来自淘宝推荐系统的用户行为集合。数据集包含几种类型的用户行为,包括点击、购买等。它包含大约800
万用户的用户行为序列。
我们采用每个用户的点击行为,并根据时间对其进行排序从而构建用户行为序列。Taobao Dataset
的最大行为序列长度为 500
。我们将最近的 100
个用户行为划分为短期用户序列特征,将最近的 400
个用户行为划分为长期用户序列特征。数据集将很快公开。
Industrial Dataset
:是从阿里巴巴在线展示广告系统收集的。样本是由曝光日志构建的,标签为是否点击。训练集是由过去49
天的样本组成,测试集是第50
天的样本组成,这是工业建模的经典设置。
在这个数据集中,每个样本的用户行为特征包含最近 180
天的历史行为序列作为长期行为特征,以及最近 14
天的历史行为序列作为短期行为特征。超过 30%
的样本包含长度超过 1
万的行为序列数据。此外,行为序列的最大长度达到 54000
,这比 MIMN
中的行为序列长 54
倍。
这些数据集的统计信息如下表所示。注意,对于Industrial Dataset
,item
为广告。
baseline
方法:我们将 SIM
和以下主流的 CTR
预估模型进行比较。
DIN
:是用户行为建模的早期工作,旨在针对候选item
进行用户行为的软搜索。和其它长期用户兴趣模型相比,DIN
仅将短期用户行为作为输入。
Avg-Pooling Long DIN
:为了比较长期用户兴趣下的模型性能,我们对长期行为应用了均值池化操作(没有使用任何 attention
操作),并将long-term embedding
、以及其它特征 embedding
拼接起来。
MIMN
:它巧妙地设计了模型体系结构从而捕获长期的用户兴趣,实现了SOTA
性能。
SIM(hard)
:我们提出的 SIM
模型,其中第一阶段使用硬搜索,并且在 ESU
中没有 time embedding
。
SIM(soft)
:我们提出的 SIM
模型,其中第一阶段使用软搜索,并且在 ESU
中没有 time embedding
。
SIM(hard/soft) with Timeinfo
:我们提出的 SIM
模型,其中第一阶段使用硬搜索/软搜索,并且在 ESU
使用 time embedding
。
实验配置:我们采用与相关工作(即 MIMN
)相同的实验配置,以便可以公平地比较实验结果。
对所有模型,我们使用 Adam
优化器。
我们使用指数衰减,学习率从 0.001
开始。
全连接网络FCN
的layer
设置为 200 x 80 x 2
。
embedding
维数设置为 4
。
我们使用 AUC
作为模型性能的评估指标。
下表显式了所有模型在公共数据集上的比较结果。a
表示SIM
采用软搜索且没有时间间隔的 embedding
。b
没有在 Amazon Dataset
上实验,因为该数据集没有时间戳数据。
和 DIN
相比,具有长期用户行为特征的其它模型的性能要好得多。这表明长期用户行为对CTR
预估任务很有帮助。
和 MIMN
相比,SIM
取得了显著提升,因为 MIMN
将所有未过滤的用户历史行为编码到固定长度的 memory
中,这使得难以捕获多样化的长期用户兴趣。
SIM
使用两阶段搜索策略从庞大的历史行为序列中搜索相关的行为,并针对不同target item
来建模多样化的长期用户兴趣。
实验结果表明:SIM
优于所有其它长期兴趣模型。这充分证明了我们提出的两阶段搜索策略对于长期用户兴趣建模很有用。而且,包含time embeding
可以实现进一步的提升。
在这个
Taobao
数据集中,MIMN
的指标与原始MIMN
中的指标对不上,可能的原因是:这里的Taobao
数据集与之前的Taobao
数据集不同。
消融研究--两阶段搜索的有效性:如前所述,我们的 SIM
模型使用两阶段搜索策略。
第一阶段遵循通用搜索策略,从而过滤得到与target item
相关的历史行为。
第二阶段对第一阶段的行为进行 attention-based
的精确(exact
)搜索,从而准确地(accurately
)捕获用户对于target item
的多样化的长期兴趣。
这里我们通过对长期历史行为应用不同操作的实验来评估所提出的两阶段搜索架构的有效性。这些不同的操作如下:
Avg-Pooling without Search
:仅仅简单地应用均值池化来聚合长期行为 embedding
,没有使用任何过滤。它和 Avg-Pooling Long DIN
相同。
Only First Stage(hard)
:在第一阶段对长期历史行为应用硬搜索,并通过对过滤后的结果应用均值池化从而得到固定大小的、聚合的 embedding
,从而作为 MLP
的输入。即没有第二阶段搜索策略。
Only First Stage (soft)
几乎和 Only First Stage(hard)
,但是前者采用软搜索而不是硬搜索。
我们根据预训练(pre-trained
)的 embedding
向量,离线计算 target item
和长期用户行为之间的内积相似度得分。然后根据相似度得分选择 top 50
个相关行为来进行软搜索。
最后三个实验是我们提出的两阶段搜索架构的搜索模型。
实验结果如下表所示,可以看到:
与简单的均值池化 embedding
相比,所有具有过滤策略的方法都极大地提高了模型性能。这表明在原始的长期行为序列中确实存在大量的噪声,而这些噪声可能会破坏长期用户兴趣的学习。
和仅进行一阶段搜索的模型相比,我们提出的具有两阶段搜索策略的搜索模型通过在第二阶段引入 attention-based
的搜索而取得了进一步的提升。这表明:精确地建模用户对 target item
的多样化的长期兴趣,有助于 CTR
预估任务。并且在第一阶段搜索之后,过滤后的行为序列通常比原始序列短得多,attention
操作不会给在线 RTP
系统带来太多负担。
包含time embedding
的模型得到了进一步的提升,这表明不同时期 peroid
的用户行为的贡献是不同的。
我们进一步对阿里巴巴在线展示广告系统收集的工业数据集进行实验,下表给出了实验结果。a
表示该模型目前已经部署在我们的在线serving
系统,并且服务于主要的流量。
SIM
相比 MIMN
在 AUC
上提升了 0.008
,这对于我们的业务而言意义重大。
和第一阶段使用硬搜索相比,第一阶段使用软搜索的性能更好。
在第一阶段,硬搜索和软搜索这两种搜索策略之间只有微小的差距。
在第一阶段应用软搜索会花费更多的计算资源和存储资源。因为软搜索需要在 online serving
中使用最近邻搜索,而硬搜索只需要从离线构建的两级索引表中检索。因此,硬搜索更加有效且系统友好。
对两种不同的搜索策略,我们对来自工业数据集的超过 100
万个样本和 10
万个具有长期历史行为的用户进行了统计。结果表明:硬搜索策略保留的用户行为可以覆盖软搜索策略的 75%
。
最后,我们在第一阶段选择更简单的硬搜索策略,这是在效率(efficiency
)和性能 (performance
)之间的 trade-off
。
在线 A/B test
:自 2019
年以来,我们已经在阿里巴巴的展示广告系统中部署了SIM
。从 2020-01-07 ~ 2020-02-07
,我们进行了严格的在线 A/B test
实验,从而验证 SIM
模型。和 MIMN
(我们的最新模型)相比,SIM
在阿里巴巴的展示广告场景中获得了巨大收益,如下表所示。现在,SIM
已经在线部署并每天为主要场景流量提供服务,这为业务收入的显著增长做出了贡献。
下表为 2020-01-07 ~ 2020-02-07
期间,SIM
相对于 MIMN
的在线效果提升,其中模型应用于淘宝 App
首页的“猜你喜欢” 栏目。
Rethinking Search Model
:我们在用户长期兴趣建模方面做出了巨大努力,所提出的 SIM
在离线和在线评估方面都取得了良好的性能。但是 ,由于进行了精确的长期兴趣建模,SIM
的性能会更好吗?SIM
是否会倾向于推荐和人们长期兴趣相关的 item
?
为回答这两个问题,我们制定了另一个指标,即点击样本的 Days till Last Same Category Behavior
cateogry
)的item
上的最近行为距离当前点击事件的时间间隔。
例如,用户 item
item
item
)。如果将点击事件记作 Days till Last Same Category Behavior
为 5
,即
对于给定的模型,可以使用 long-term interest
)或短期兴趣(short-term interest
)上的选择偏好(selection preference
) 。
经过在线 A/B test
之后,我们根据提出的 SIM
和 DIEN
(这是短期的CTR
预估模型的最新版本)的点击样本。点击样本越多则说明模型效果越好(模型找的越准)。
根据 >14
天)、短期的(<14
天)。方框显示了不同 SIM
模型点击样本的提升比例(相对于 DIEN
模型)。曲线表示不同
可以看到:在短期部分( SIM
和 DIEN
在过去14
天中都具有短期的用户行为特征。在长期部分,SIM
提升比例更大。
此外在工业数据集上,我们统计了 target item
相同类目的历史行为的概率。结果如下表所示(在线 a/b test
对应的点击样本,在离线上统计到的)。
结果表明:SIM
的提升确实是更好的长期兴趣建模的结果。并且和 DIEN
相比,SIM
倾向于推荐与人们长期行为有关的item
。
读者注:这里假设
A/B test
时流量相等,因此点击量的差异等价于CTR
的差异。
部署的实践经验:这里我们介绍了在线 serving
系统中实现 SIM
的实践经验。
阿里巴巴的高流量是众所周知的,它在流量高峰时每秒为超过100
万用户提供服务。此外,对于每个用户,RTP
系统需要计算数百个候选item
的预估CTR
。我们对整个离线用户行为数据建立一个两阶段索引,该索引每天都会更新:第一阶段是user id
;在第二阶段,一个用户的 life-long
行为数据由该用户所交互的类目来索引。
虽然候选item
的数量为数百,但是这些item
的类目数量通常少于 20
。同时,来自 GSU
的每个类目的子行为序列的长度被截断为不超过 200
(原始的行为序列长度通常小于 150
)。这样,来自用户的每个请求的流量是有限的并且可以接受的。
此外,我们通过 deep kernel fusion
优化了 ESU
中 multi-head attention
的计算。
下图显示了我们的实时 CTR
预估系统相对于 DIEN,MIMN,SIM
流量的效率。值得注意的是:
MIMN
可以处理的最大用户行为长度是 1000
,而这里显示的性能是基于截断的行为数据( MIMN
和 DIEN
中,用户行为的长度被截断为 1000
)。
而 SIM
中的用户行为的长度不会被截断,并且可以扩展到 54000
,使得最大长度可以扩展到 54
倍。针对一万个行为的 SIM serving
,相比于截断用户行为的 MIMN serving
,latency
仅增加了 5ms
。
DIEN
的最大流量为 200
,因此图中只有一个点。