二十四、MIMN[2019]

  1. 不断发展的互联网将我们带入具有个性化在线服务的数字世界。从在线系统收集的大量用户行为数据为我们提供了更好地了解用户偏好的绝佳机会。从技术上讲,从丰富的行为数据中捕获用户兴趣至关重要,因为它有助于典型的现实世界application (如推荐系统、在线广告)的显著改进。这里我们限制在点击率Click-Through Rate: CTR预估建模的任务上。CTR 预估在在线服务中起着至关重要的作用。这里讨论的解决方案也适用于许多相关任务,例如转化率 conversion rate: CVR 预估和用户偏好建模。

    在深度学习的推动下,人们已经提出了体系结构精心设计的、用于建模用户兴趣的深度 CTR 模型,从而实现了 state-of-the-art 效果。这些模型大致可以分为两类:

    • pooling-based 的架构:它将用户的历史行为视为独立的信号,并应用sum/max/attention 等池化操作来summarize 用户的兴趣representation

    • sequential-modeling 架构:它将用户的历史行为视为序列信号,并应用 LSTM/GRU 操作来summarize 用户的兴趣representation

    但是在工业应用中,需要大量的精力将这些复杂的模型部署到在线 serving 系统中以进行实时推断,其中每天都有数以亿计的用户访问该系统。当遇到非常长的用户行为序列数据时,问题变得更加困难:因为所有上述模型都需要在 online serving 系统中存储完整的用户行为序列(也称作特征),并在极短的延迟时间内获取它们以计算兴趣representation 。这里,"长" 表示用户行为序列的长度高达1000 甚至更多。实际上,系统延迟和存储成本随着用户行为序列的长度大致成线性关系。

    DIEN 做了大量的工程工作来部署序列模型,但是它也就最大能处理长度为 50 的用户行为序列。下图给出了在阿里巴巴线展示广告系统online display advertising system 中,用户行为序列的平均长度以及对应的 CTR 模型的性能。显然,解决长序列用户行为建模的挑战是值得的。

    在论文 《Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction》 中,论文共同设计(co-design)了机器学习算法和在线serving 系统来用于 CTR 预估任务,并介绍了工程实践。论文将用户行为建模和完整的 CTR 预估系统解耦,并相应地设计了特定的解决方案:

    • serving 系统的角度:论文设计一个叫做 UIC: User Interest Center 用户兴趣中心的独立模块,将用户兴趣建模中最耗资源的部分和整个模型解耦。UIC 聚焦于在线serving 的用户行为建模问题,它维护每个用户的最新兴趣representation

      UIC 的关键是它的更新机制。用户粒度的状态更新仅取决于实时的用户行为触发事件realtime user behavior trigger event ,而不依赖于流量请求。也就是说,UIC 对于实时 CTR 预估是无延迟的 latency free

    • 机器学习算法的角度:解耦UIC 模块无法解决存储问题,因为对于数以亿计的用户、且每个用户可能长达上千的用户行为序列的存储和推断仍然很困难。这里作者借鉴了 NTM 的记忆网络 memory network 的思想,并提出了一种叫做 MIMN: (Multi-channel user Interest Memory Network (多通道用户兴趣记忆网络)的新颖架构。MIMN 以增量的方式工作,可以很容易地使用 UIC 模块实现,这有助于解决存储挑战。

      此外,MIMN 通过记忆利用正则化 memory utilization regularization 和记忆归纳单元 memory induction unit 这两种设计改善了传统的 NTM ,使其在有限的存储空间下更有效地建模了用户行为序列,并大大提升了模型性能。

    从理论上讲,UICMIMN 的共同设计方案co-design solution 使得我们能够处理无限长度的用户行为序列数据的用户兴趣建模。实验表明:论文提出的方法在模型性能和系统效率上均具有优势。据作者所知,这是能够处理长达数千的用户行为序列数据的、最早的工业解决方案之一。目前该方案已经部署在阿里巴巴的 display advertising system 中。

    本文主要贡献:

    • 论文介绍了一个工程实践(hands-on practice):结合学习算法和 serving 系统的协同设计来完成 CTR 预估任务。该解决方案已经部署在世界领先的广告系统中,使我们能够处理长的用户行为序列建模。

    • 论文设计了一个新颖的 UIC 模块,它将沉重( heavy )的用户兴趣计算与整个 CTR 预估过程分离。UIC 对流量请求没有延迟,并允许任意复杂的模型计算,其中模型计算以离线模式工作。

    • 论文提出了一个新颖的 MIMN 模型,它改进了原有的 NTM 架构,具有记忆利用正则化memory utilization regularization 和记忆归纳单元 memory induction unit 两种设计,使其更适合用于兴趣的学习。MIMN 很容易用 UIC server 实现,其中 UIC server 增量地更新用户的兴趣representation

    • 论文对公共数据集和从阿里巴巴广告系统收集的工业数据集进行了仔细的实验。作者还详细分享了在部署所提出的解决方案的实际问题方面的经验。

  2. 相关工作:

    • Deep CTR Model:随着深度学习的快速发展,我们在计算机视觉、自然语言处理等诸多领域取得了进展。受这些成功的启发,人们提出了许多基于深度学习的 CTR 预估方法。与传统方法中的特征工程不同,这些方法利用神经网络来捕获特征交互。虽然这个思想看起来很简单,但是这些工作在 CTR 预估任务的发展上向前迈出了一大步。之后,工业社区更多地关注模型架构设计,而不是通过无穷无尽的特征工程来提高性能。

      除了学习特征交互之外,人们还提出了越来越多的方法来从丰富的历史行为数据中获取用户的洞察 insight

      • DIN 指出用户的兴趣是多样化的,并且随着目标 item 的不同而不同。DIN 中引入了注意力机制来捕获用户的兴趣。

      • DIEN 提出了一个辅助损失来从具体行为中捕获潜在的兴趣,并改进了 GRU 从而建模兴趣演变。

    • Long-term User Interest

      • 《Learning implicit user interest hierarchy for context in personalization》 认为长期兴趣意味着通用兴趣general interest ,这是用户大脑根深蒂固的、对个性化很重要的因素。

      • 《Framework for selecting and delivering advertisements over a network based on combined short-term and long-term user behavioral interests》 提出对用户对类目的长期兴趣建模。

      • 《Incremental update of long-term and short-term user profile scores in a behavioral targeting system》 增量地建模长期和短期用户画像 score,从而表达用户的兴趣。

      所有这些方法都通过特征工程来建模长期兴趣,而不是通过自适应端到端的学习。TDSSM 提出联合建模长期用户兴趣和短期用户兴趣来提高推荐质量。不幸的是,这些基于深度学习的方法,如 TDSSM、DIN、DIEN 很难部署在面临极长用户行为序列的实时预估 server 中。存储压力、计算延迟将随着用户行为序列的长度线性增长。在工业 application 中,行为序列的长度通常很小(例如 50),然而淘宝的活跃用户可能会在两周内留下长度超过 1000 的行为(如点击、转化等)。

    • Memory Network:记忆网络已经被提出用于使用外部记忆组件external memory component 提取知识。这个思想在 NLP 中得到了广泛的应用,如问答系统question answering system 。一些工作利用记忆网络进行用户兴趣建模。然而,这些方法忽略了长期兴趣建模和实际部署问题。

24.1 模型

24.1.1 UIC

  1. 在现实世界的推荐系统或者广告系统中,点击率预估模块是至关重要的组件。通常点击率预估模块接收一组候选对象(如item 或者广告),并通过执行实时的模型推断来返回相应的预估点击率。这一过程需要在严格的延迟时间内完成,实践中典型的延迟时间为 10ms

    下图简要介绍了在线展示广告系统online display advertising system 中用于 CTR 任务的实时预估(RealTime Prediction: RTP) 系统。为了便于读者理解,我们假设对 RTP 的请求输入仅包含用户和广告信息,忽略了上下文或其它信息。

  2. 在工业应用中,如电商行业的推荐系统,用户行为特征在特征集合中的贡献最大。例如,在我们的推荐系统中,接近 90% 的特征是用户行为特征,剩余 10% 的特征是用户人口统计特征 user demography featur 和广告特征。这些用户行为数据包含丰富的信息,对于用户兴趣建模很有用。

    下图显示了我们系统中不同天数收集的用户行为序列的平均长度,以及使用不同长度的用户行为特征训练的basic modelEmbedding & MLP)的离线性能。无需任何其它努力,当使用长度为 1000 的用户行为序列时,basic model 要比使用长度为 100 的用户行为序列,在 AUC 上提升 0.6% 。值得一提的是,仅 0.3%AUC 提升对我们的业务而言就足够了。

    这种AUC 的提升表明:利用较长的用户行为序列数据具有很大的价值。

  3. 然而,利用长的用户行为序列数据带来了巨大的挑战。

    实际上,数以亿计用户的行为特征非常庞大。为了在推荐系统中保持低延迟和高吞吐量,通常将行为特征存储在额外的分布式内存存储系统(distributed in-memory storage system)中,例如我们系统中的 TAIR (阿里巴巴实现的一个分布式 key-value 存储系统)。这些特征将被提取到预测服务器 prediction server ,并在流量请求到来时参与实时推断的计算。

    根据我们的实践经验,在我们的系统中实现 DIEN 会花费很多工程工作。为了使得延迟和吞吐量都满足 RTP 系统的性能需求,用户行为序列的长度最高为 150,无法达到长度为 1000 的情况。

    直接包含更多的用户行为数据非常困难,因为面临几个挑战。其中两个最关键的挑战包括:

    • 存储约束:我们系统中有超过 6 亿用户,每个用户的行为序列的最大长度为 150 。这将花费大约 1TB 的存储空间,该存储空间不仅存储 product_id,也会存储其它相关的特征id(如shop_idbrand_id 等)。

      当用户行为序列的长度最大为 1000 时,将会消耗 6TB 的存储空间,并且该数量还会随着用户行为序列的长度而线性增加。如前所述,我们的系统中使用高性能存储来保持低延迟和高吞吐量,而维持如此大的存储太昂贵了。庞大的存储量也导致用户行为特征的相应计算和更新的成本很高。

      因此,较长的用户行为序列意味着无法接受的存储消耗。

    • 延迟约束:众所周知,使用序列的深度网络sequential deep network 进行实时推断非常困难,尤其是在我们的请求量很大的情况下。DIEN 部署了多种技术,可以将我们系统中 DIEN serving 的延迟降低到 14ms,而每个 workerQuery Per Second: QPS 的容量 capacity500

      然而,当用户行为序列的长度最大为 1000 时,DIEN 的延迟在 500 QPS 时会高达 200ms 。我们的展示广告系统很难容忍 500 QPS 下的 30ms 延迟限制。因此,在当前的系统架构下,无法获得长的用户行为序列的好处。

  4. 为解决上述针对长的用户行为序列建模的挑战,我们提出了共同设计(co-design)机器学习算法和在线serving 系统的解决方案。由于用户行为建模是 CTR 预估系统最具挑战性的部分,因此我们设计了一个 User Interest Center: UIC 模块来处理它。

    下图的 B 部分说明了带有 UIC server 的、新设计的 RTP 系统。系统 AB 之间的差异是用户兴趣 representation 的计算。在 B 中,UIC server 为每个用户维护最新的兴趣representationUIC 的关键是其更新机制:用户状态的更新仅取决于实时用户行为触发事件,而不是取决于请求。 也就是说,UIC 对于实时 CTR 预测是无延迟 latency free 的。在我们的系统中,UIC 可以在 500QPS 下将长度 1000 的用户行为序列的 DIEN 模型的延迟从 200ms 降低到 19ms

    下图为CTR 任务的 RTP 系统示意图。通常 RTP 由三个关键组件构成:特征管理模块feature management module 、模型管理模块model management module、预估服务器prediction server 。系统 AB 的主要区别在于用户兴趣representation 的计算。

    • A 中,用户兴趣representation 针对每个请求在 prediction server 内执行。

    • B 中,用户兴趣 representation 针对实时的用户行为事件在 UIC server 中独立执行。也就是说,用户兴趣 representation 的计算和流量请求解耦并且是 latency free 的。

24.1.2 MIMN

  1. 这里我们详细介绍用于长的用户行为序列建模的机器学习方法。

  2. 从长序列数据中学习是困难的。众所周知,简单的 RNNRNN,GRU,LSTM )难以建模长的序列。

    注意力机制通过将序列数据中的必要信息necessary information 压缩到固定长度的张量中来提升模型的表达能力。例如,在 DIN 中,注意力机制通过 soft-search 隐状态序列(或者 source 行为序列)中与目标 item 相关的部分来工作。

    • 为了进行实时推断,注意力机制需要存储所有原始行为序列,这给在线系统的存储带来很大压力。

    • 此外,注意力的计算成本随着行为序列的长度线性增长,这对于长的用户行为序列建模是不可接受的。

    实际上,RNN 中的隐状态hidden state 并非旨在存储 source 序列历史的全部信息,而是更多地关注预测目标( predicting target)。因此,最后一个隐状态可能会遗忘长期的信息 long-term information 。此外,存储所有隐状态是多余的。

    最近,人们提出了神经图灵机 Neural Turing Machine: NTMsource 序列中捕获信息,并将其存储在固定大小的外部记忆中(external memory) 。在很多使用长序列数据进行建模的任务中,NTM 相比 RNN 模型取得了显著提升。

    借鉴 NTM 的想法,本文中我们提出了一个基于记忆网络memory network-based 的模型,该模型为处理长的用户行为序列建模提供了新的解决方案。我们将该模型命名为 Multi-channel User Interest Memory Network: MIMN ,如下图所示。

    MIMN 由两个主要部分组成:左子网络聚焦于用户行为序列的用户兴趣建模;右子网络遵循传统的 Embedding &MLP 范式,该范式采用左子网络的输出以及其它特征作为输入。

    NIMN 的贡献在于左子网络,它是由 NTM 模型驱动的,并且包含两个重要的记忆网络架构:

    • 基本的 NTM 记忆单元,它具有标准的记忆读取( memory read )和记忆写入( memory write )操作。

    • 多通道 GRU 的记忆归纳单元(memory induction unit),它用于基于先前学习的 NTM 记忆来捕获高阶信息。

  1. UIC 存储 MIMN 的外部记忆张量( external memory tensor),并利用用户的每个新行为来更新该张量。这样,UIC 从用户的行为序列中逐步捕获用户的兴趣。

    尽管 UIC 存储固定长度的记忆张量而不是原始行为序列,但是考虑到存储压力时,必须限制存储张量的大小。本文中,我们提出了记忆利用正则化(memory utilization regularization ),以通过 memory utilization 来提升 UIC 中的记忆张量的表达能力。

    另一方面,随着用户兴趣的变化以及随着时间的演变,我们提出使用记忆归纳单元( memory induction unit )来帮助捕获高阶信息。

  2. NTM:标准的 NTM 通过记忆网络从序列数据中捕获并存储信息。在 time step t ,记忆(memory )的参数记作 MtRM×d ,其中包含 M 个记忆槽 memory slot {mt(i)}i=1,,M ,其中 mtRd

    NTM 的两个基本操作是记忆读取 memory read 和记忆写入memory write ,它们通过一个控制器controller 来和记忆交互。

    readwrite 还是先 writeread?作者没有明确表达。读者猜测是先writeread,这样始终能够读取最新的状态。

    memory read 有两个作用:

    • 选择 top-k 重要的 slots ,从而更新 MIU

    • 输出 memory summarization rT 作为模型的特征。

    • 记忆读取memory read:给定第 t 个行为的 embedding 向量 etRde 作为输入,控制器会生成一个 read key ktRd 来寻址记忆( address memory )。它首先遍历所有的记忆槽,生成一个权重向量 wtrRM

      wtr(i)=exp(K(kt,mt(i)))j=1Mexp(K(kt,mt(j))),i=1,2,M

      其中:

      K(kt,mt(i))=ktmt(i)kt×mt(i)

      然后计算加权的memory summarization 作为输出 rtRd

      rt=i=1Mwtr(i)mt(i)
    • memory write:类似于memory read 操作,我们生成用于 memory write 寻址的权重向量 wtwRM 。控制器还生成了额外的两个keyadd vector atRderase vector ztRd ,从而控制 memory 的更新:

      Mt=(1Zt)Mt1+At

      其中:

      • Zt=wtwztRM×derase matrix 为向量的外积。

        Zt 相当于每个 slot 提供一个加权的 erase vector zt ,第 islot 权重为 wtw(i)

      • At=wtwatRM×dadd matrix

        At相当于每个 slot 提供一个加权的 add vector at ,第 islot 权重为 wtw(i)

      • 为逐元素乘积。(注:原文说的是 dot product )。

  3. Memory Utilization Regularization:实际上,basic NTM 会遭受 memory utilization unbalanced 的问题,尤其是在用户兴趣建模的场景下。即,热门的 item 倾向于在用户行为序列中频繁出现,并且主导着 memory 的更新,从而使得 memory 的使用变得低效。

    NLP 领域先前的一些工作已经提出使用 LRU 策略来平衡每个 memory 的利用(utilization)。由于 LRU 在处理过程的每个短序列中都非常注意平衡 memory 的利用,因此 LRU 几乎从来不会在相邻的时间步对相同的slot 写入信息。

    但是,在我们的场景中,用户可能会与隶属于相同兴趣的几种行为进行交互,这会写入同一个 slotLRU 将会使得内容寻址混乱 disorganize,并且不适合我们的任务。

    本文中,我们提出了一种称作memory 利用正则化(memory utilization regularization )的新策略,该策略被证明对用户兴趣建模是有效的。

    memory utilization regularization 背后的思想是:将不同 memory slot 之间的 write weight 方差进行正则化,从而使得 memory 利用达到平衡。

    gt=c=1twcw~ 为截止到 t 时刻的累积的、各 slot 的更新后的权重,其中 wcw~ 为时刻 c 的、re-balancedwrite weight

    Pt=softmax(Wggt)RM×Mwtw~=PtwtwRM

    其中:

    • wtw 为原始的 write weight,而 wtw~ 为新的 write weight

    • Ptslot 之间的权重转移矩阵,它取决于:

      • gt ,它代表了截止到 t 步每个 memory slot 的累积利用(accumulated utilization) 。

      • 参数矩阵 Wg ,它通过正则化损失来学习:

        g=gT=t=1Twtw~Lreg=λi=1M(g(i)1Mj=1Mg(j))2

        其中: Mslot 数量。注意:上式中没有下标 t 。该正则化的物理意义为:不同 slot 的累计 write weight 的方差最小化。

        Lreg 有助于降低不同 memory slotwrite weight 的方差。

    通过使用 ww~ 来代替 ww ,则所有的 M 个槽的更新频率将趋于均匀。通过这种方式,所有 memory slot 的利用都被提升从而得到平衡。因此,utilization regularization 可以帮助 memory tensor 存储来自于 source 行为数据的更多信息。

  4. Memory Induction UnitNTM 中的 memory 旨在尽可能多地存储源数据中的原始信息。美中不足的是,它可能会错过捕获某些高级信息的机会,例如各部分兴趣的动态演变过程。为了进一步提升用户兴趣抽取的能力,MIMN 设计了一个 Memory Induction Unit: MIU

    MIU 还包含了一个内部的 memory SRM×d ,它具有和 NTM 相同的槽数 M 。这里我们将每个 memory slot 视为一个用户兴趣通道user interest channel 。在时刻 tMIU

    • 选择 k 个通道,其中通道索引为:

      {i:wtr(i)topk(wtr)}i=1,,k

      其中 wtr 为前面提到的 NTMmemory read 中的权重向量。

      选择 top k 是为了挑选重要的通道,从而过滤掉噪音信号。k 怎么选择?论文没有给出指导,也没有给出消融实验。

    • 对于第 i 个选中的通道,更新 st(i)

      st(i)=GRU(st1(i),mt(i),et)

      其中 mt(i)NTM 的第 imemory slotet 为行为 embedding 向量。

      注意:一般情况下 k<M ,因此这里只有被选中的通道才会更新 st(i)

      上式表明:MIU 既从原始行为输入中捕获信息,又从 NTM 模块存储的信息中捕获信息。这是一个归纳过程 inductive process ,如下图所示。

    多通道 memoryGRU 参数是共享的,因此不会增加参数量。

    {sT(i)}i=1M 和目标广告 embedding ea 进行 attention-pooling 从而得到固定长度的 embedding 向量,并用于后续的向量拼接和 MLP

  5. Online Serving:与 DIEN,DIN 应用注意力机制从而获得 candidate-centric 兴趣的 representation 不同,MIMN 学会了显式地捕获和存储用户的多样化兴趣,并将其存储在每个用户的 external memory 中。这种 memory-based 架构无需在候选对象(如,我们系统中的目标广告)和用户行为序列之间进行交互式计算,并且可以增量执行,这使得它可扩展地用于长的用户行为序列建模。

    用于在线 servingMIMN 的实现非常简单。我们将整个模型拆分并实现到两个 server 中:

    • 左侧的子网是在 UIC server 中实现的,如下图所示。它使用 NTMMIU 进行计算量最大的用户兴趣建模。

    • 右侧的子网可以在 RTP server 中实现。

    NTMMIU 模块均享受增量计算的优势:最新的 memory state 代表用户的兴趣,并更新到 TAIR 以进行实时 CTR 预估。当收到最新的用户行为事件时,UIC 将再次计算用户兴趣 representation,并更新到 TAIR 。这样,不需要存储用户行为数据。

    在我们的系统中,长用户行为序列的存储量可以从 6T 减少到 2.7T

  6. UIC serverMIMNco-design 使得我们能够处理长的用户行为序列数据,序列长度可以扩展到数千。

    • UIC 用于用户兴趣representation 的更新和整个模型的计算无关,从而使它对于实时CTR 预估是无延迟latency free 的。

    • MIMN 提出以增量的方式对用户兴趣进行建模,而无需像传统解决方案一样存储整个用户行为序列。此外,MIMN 使用改进的 memory architecture,可以实现出色的模型性能。

    但是,它并不适合所有情况。我们建议将该解决方案应用于具有以下条件的应用程序:丰富的用户行为数据,以及实时用户行为事件的流量规模不能明显超过实时 CTR 预测请求的流量规模。

24.2 实验

  1. 实验分为两个部分:

    • 详细介绍了算法验证,包括数据集、实验配置、比较模型、以及相应的分析。

    • 讨论并分享在阿里巴巴展示广告系统中部署所提出的解决方案的实践经验。

24.2.1 实验结论

  1. 数据集:

    • Amazon Dataset:由Amazon 提供的商品评论、商品元信息组成。我们使用Amazon 数据集的 Books 子集。

      对于该数据集,我们将评论视为一种交互行为,并根据时间对一个用户的所有评论进行排序。假设用户 uT 个行为,我们的目的是使用之前的 T1 个行为来预测用户 u 是否会对第 T 个评论中的商品写下评论。

      为了聚焦长的用户行为序列预测,我们过滤了行为序列长度小于 20 的样本,并截断了行为序列长度为 100 (即超过100 截断为 100)。

    • Taobao Dataset:收集自淘宝推荐系统的用户行为。数据集包含几种类型的用户行为,包括点击、购买等。它包含大约一百万用户的用户行为序列。我们采用每个用户的点击行为,并根据时间对其进行排序,从而尝试构建行为序列。

      假设用户 uT 个行为,我们使用之前的 T1 个商品作为特征来预测用户是否会点击第 T 个商品。行为序列长度被截断为 200

    • Industrial Dataset:收集自阿里巴巴在线展示广告系统。样本来自曝光日志,其中标签为这个曝光是 ”点击“ 或者”未点击“。训练集由过去49 天的样本组成,测试集由下一天的样本组成。这是工业建模的经典配置。

      在这个数据集中,每天每个样本的用户行为特征包含之前60天的历史行为序列,行为序列长度被截断为 1000

    下表给出了这些数据集的统计信息。

  2. 实验配置:

    • 对于所有模型,我们使用 Adam 优化器。我们采用指数衰减,学习率从 0.001 开始、衰减速率为 0.9

    • FCN: fully connected network 的层数设置为:200 x 80 x 2

    • embedding 维度设为 16,和 memory slot 的维度相同。

    • MIUGRU 的隐层维度设为 32

    • NTMMIU 中的 memory slot 数量是一个在消融研究部分仔细检查过的参数。

    • 我们将 AUC 视为衡量模型性能的指标。

  3. baseline 方法:我们将 MIMNstate-of-the-artCTR 预估模型进行比较。

    • Embedding & MLP:是CTR 预估的 basic 深度学习模型。它需要 sum 池化操作才能整合行为 embedding 序列。

    • DIN:是用户行为建模的早期工作,提出针对目标 item 条件下对用户行为进行软搜索soft-search

    • GRU4Rec:基于 RNN 的方法,并且是使用循环单元recurrent cell 来建模用户行为序列的首次研究。

    • ARNN:是 GRU4Rec 的一种变体,它使用注意力机制对所有隐状态进行加权和,从而得到更好的用户行为序列 representation

    • RUM:使用external memory 来存储用户的额行为特征。它还利用 soft-writingattention reading 机制来和memory 进行交互。我们使用 feature-level RUM 来存储序列信息。

    • DIEN:将 GRUcandidate-centric attention 技巧融合,从而捕获用户兴趣的演变趋势,并实现了 state-of-the-art 性能。

      为了进行公平地比较,我们省略了辅助损失的技巧,以便更好地在 DIEN 中进行 embedding 学习。否则应该针对上述所有模型都使用辅助损失技巧。

  4. 下表给出了所有模型的实验结果,每个实验重复 3 次并报告均值和标准差。可以看到:

    • 所有其它模型都击败了 Embedding & MLP,这验证了针对用户行为建模的网络体系架构设计的有效性。

    • MIMN 以很大的 AUC 优势击败了所有模型。我们认为,这是由于memory-based 架构的巨大容量capacity 适用于建模用户行为。

      如前所述,长的用户行为序列数据背后的用户兴趣是多样的,且随着时间而动态演化。MIMN 使用多通道 memory 在两个方面学会了捕获用户兴趣:

      • basic NTM 中的 memory 使用平衡的利用 balanced utilization 来记忆兴趣。

      • MIU 中的 memory 通过归纳兴趣的序列关系进一步捕获高阶信息,其中兴趣是基于 NTMmemory

  5. memoryslot 数量:我们在具有不同数量的memory slotMIMN 上进行了实验。为简化起见,我们使用最基本的 NTM 体系结构来评估 MIMN,省略了 memory utilization regularizationmemory induction unit 。下表给出了结果。

    可以看到,slot 数量会影响模型性能:

    • 对于 Amazon 数据集,最佳性能是 slot 数量为 4 时取得的。

    • 而对于 Taobao 数据集,最佳性能是 slot 数量为 8 时取得的。

    我们的分析结果表明,这与数据集中用户行为序列的长度有关。memory 中的每个slot 都是随机初始化的。

    • 对于行为序列较长的数据集,例如 Taobao 数据集,memory 有更多的机会学习和达到稳定(stable )的 representation

    • 对于行为序列较短的数据集,例如 Amazon 数据集,具有较大memory capacity 的模型遭受学习不足的影响。尤其是当 memory 的所有 slot 的利用不平衡时,部分 memory 向量可能无法充分利用和更新,这意味着这些 memory 向量仍然保持接近于初始化状态。

      这会损害模型的性能。因此我们提出了 Memory Utilization Regularization 来缓解该问题。

  6. Memory Utilization Regularization:由于每个用户的兴趣强度不一致,并且memory 进行了随机初始化,因此在basic NTM 模型中,存储的利用可能不平衡。这个问题将损害 memory 的学习,使其不足以利用有限的memory 存储。

    我们使用 memory utilization regularization 技巧来帮助解决该问题。下图显式了memory utilization ,它验证了所提出的正则化器的有效性。

    这种平衡的效果还带来了模型性能的改善,如下表所示。

  7. Memory Induction Unit:通过归纳从 basic NTMmemory,带 memory induction unitMIMN 能够捕获高阶信息并带来更多提升,如上表所示。它增强了用户兴趣抽取的能力,并有助于从长的用户行为序列数据中建模用户兴趣。

  8. 工业数据集结果:

    • 我们进一步对阿里巴巴在线展示广告系统收集的数据集进行实验。我们将 MIMNDIEN 模型进行了比较,下表给出了结果。MIMN0.01AUC 提升超越了 DIEN,这对于我们的业务而言意义重大。

    • 除了离线模型的性能,在系统方面 MIMNDIEN 模型之间还存在很大差异。下图给出了当 MIMNDIEN 作为 serving 模型时实际 CTR 预估系统的性能。

      MIMNUIC serverco-design 在很大程度上击败了 DIEN,前者具有随着不同行为序列长度保持恒定的延迟和吞吐量的特性。因此,MIMN 可以在我们的系统中利用长度可达数千个的、长的用户行为序列数据,并享受模型性能的提升。相反,DIEN serving 的系统会同时遭受延迟和系统吞吐量的困扰。

      由于系统的压力,作为我们最新产品模型的 DIEN 中使用的用户行为序列长度仅为 50 。这再次验证了我们提出的解决方案的优越性。

    • 我们已经在阿里巴巴的展示广告系统中部署了提出的解决方案。我们在 2019-03-30 ~ 2019-05-10 进行了严格的在线 A/B 测试实验,从而验证提出的 MIMN 模型。

      DIEN (我们的最新产品模型)相比,MIMNCTRRPMRevenue Per Mille 每千次收入)均提高了 7.5%。我们将此归因于提出的 co-design 解决方案从长的用户行为序列中挖掘的额外信息。

24.2.2 部署经验

  1. 这里我们讨论在我们的在线系统中,部署 UICMIMN 的实践经验。

  2. UIC ServerRTP Server 的同步synchronization:如前所述,MIMN 是通过 UIC serverRTP server 一起来实现的。因此,UIC serverRTP server 之间存在不同步out-sync 的问题。

    在周期性模型部署的实际系统中,两个 server 的异步参数更新可能导致不正确的模型推断,这具有很大的风险。下表给出了模拟不同步场景实验的结果。注意,在该实验中,out-sync 时间的间隔在一天之内,这是工业系统中的常见设置。实际上,在我们的真实系统中,模型部署被设计为每小时执行一次,这进一步降低了风险。

    可以看到 MIMN 针对 out-sync 具有很好的鲁棒性。我们认为这是由于 MIMN 学到的用户兴趣的稳定表示stable representation,从而使得 MIMN 具有良好的泛化性能。

  3. 超大规模big-scale 数据的影响:如今很多电商网站都采用大促来吸引用户进行在线消费,例如阿里巴巴的”双十一“活动。在这种极端情况下,样本的分布以及用户行为和日常情况大相径庭。我们比较了系统中 11.11 大促日收集的训练数据、以及不包含 11.11 大促日的训练数据,这两种情况下 MIMN 的性能。

    结果如下表所示。我们发现:最好移除 big-scale 数据。

  4. Warm Up Strategy:尽管 UIC 旨在进行增量更新,但是从一开始就需要相当长时间才能进入稳定积累stable accumulation。 实际上我们采用预热策略warm up strategy 来使用预先计算的用户兴趣表示来初始化 UIC 。即,我们为每个用户收集最近 120 天的历史行为(用户行为序列的平均长度为 1000),并以离线模式使用训练好的 MIMN 来推断,然后将累积的 memory 推送到 UIC 中以便进行进一步的增量更新。

    该策略可以尽快地部署MIMN ,并取得合理的模型性能。

  5. Rollback Strategy:如果出现意外问题,如大规模在线作弊对训练样本的污染,UIC server 的增量更新机制可能会遭受重大损失。 一个麻烦的挑战是寻找异常case 发生的时间点。

    为了抵御这种风险,我们设计了一种回滚策略 rollback strategy,该策略将每天00:00 学到的用户兴趣representation 副本存储起来,并保存最近 7 天的副本。

二十五、SIM[2020]

  1. 点击率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: SIMSIM 采用了 DIN 的思想,并且仅捕获与特定候选 item 相关的用户兴趣。

    SIM 中,用户兴趣是通过两个级联 cascaded的搜索单元search unit 来提取的:

    • 通用搜索单元 General Search Unit: GSU:充当原始的、任意长的行为序列数据的通用搜索,并具有来自候选 itemquery 信息,最终得到和候选item 相关的用户行为序列子集Sub user Behavior Sequence: SBS

      为了满足latency 和计算资源的严格限制,在 GSU 中使用了通用、但是有效的方法。根据我们的经验,可以将 SBS 的长度缩短为数百个,并且可以过滤原始的、长的用户行为序列数据中的大部分噪声信息。

    • 精准搜索单元Exact Search Unit: ESU:对候选 itemSBS 之间的精确关系进行建模。在这里,我们可以轻松应用 DINDIEN 提出的类似方法。

    论文主要贡献:

    • 提出了一种新的范式 SIM,用于长的用户行为序列数据进行建模。级联的两阶段搜索机制的设计使得 SIM 具有更好的能力,可以在可扩展性scalability 和准确性accuracy 方面为长期的life-long 用户行为序列数据建模。

    • 介绍了在大规模工业系统中实现 SIM 的实践经验。自 2019 年以来,SIM 已经部署在阿里巴巴展示广告系统display advertising system 中,带来了 7.1%CTR 提升和 4.4%RPM 提升。现在 SIM 正在服务于主要流量。

    • 将长的用户行为序列数据建模的最大长度提高到 54000,比已发布的 SOTA 行业解决方案 MIMN54 倍。

  2. 相关工作:

    • 用户兴趣模型User Interest Model:基于深度学习的方法在CTR 预估任务中取得了巨大的成功。

      在早期,大多数前期作品使用深度神经网络来捕获来自不同 field 的特征之间的交互,以便工程师可以摆脱枯燥的特征工程的工作。最近,我们称之为用户兴趣模型User Interest Model 的一系列工作聚焦于从用户历史行为中学习潜在用户兴趣的 representation ,这些工作使用不同的神经网络架构(如 CNN, RNN, Transformer, Capsule 等等)。

      • DIN 强调用户的兴趣是多样化的,并引入了一种attention 机制来捕获用户对不同 target itemdiverse 兴趣。

      • 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-sessionin-session 中的兴趣进行建模。

    • 长期用户兴趣Long-term User InterestMIMN 的论文中显示了在用户兴趣模型中考虑长期历史行为序列可以显著提高 CTR 模型的性能。尽管更长的用户行为序列为用户兴趣建模带来了更多有用的信息,但是它极大地增加了在线 serving sysem 的延迟和存储负担,同时也为 point-wiseCTR 预估带来了大量的噪声。

      一系列工作聚焦于解决长期用户兴趣建模中的挑战。长期用户兴趣建模通常基于非常长的、甚至是 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 的限制。

        但是,MIMNmemory network 中放弃了 target item 的信息,而 target item 已经被证明对于用户兴趣建模很重要。

25.1 模型

  1. 通过建模用户行为数据来预估 CTR ,这已经被证明是有效的。典型地,attention-based CTR 模型(如 DIN, DIEN)设计复杂的模型结构,并且包含attention 机制,以通过从用户行为序列中搜索有效知识来捕获用户的多样化兴趣。其中搜索的 input 来自于不同的候选 item

    但是在现实世界的系统中,这些模型只能处理长度小于 150 的短期short-term 行为序列数据。另一方面,长期long-term 用户行为数据很有价值,并且对长期兴趣进行建模可以为用户带来更多样化的推荐结果。

    我们似乎陷入了一个两难的境地:在现实世界的系统中,我们无法通过有效而复杂的方法来处理有价值valuablelife-long 用户行为数据。为应对这一挑战,我们提出了一种新的建模范式,称之为基于搜索的兴趣模型Search-based Interest Model: SIMSIM 遵循两阶段搜索策略,可以有效地处理长的用户行为序列。

    我们首先介绍 SIM 的总体工作流程,然后详细介绍我们提出的两种搜索单元 search unit

  2. SIM 遵循一个级联的 two-stage search 策略,其中包含两个单元:通用搜索单元General Search Unit: GSU、精确搜索单元Exact Search Unit: ESUSIM 的整体工作流如下图所示。

    • 第一阶段:我们利用 GSU 从原始的长期行为序列中寻找 top-K 相关(relevant )的子行为序列,其复杂度为线性时间复杂度。这里 K 通常要比原始序列的长度要短得多。

      如果有时间和计算资源的限制,则可以执行一种有效的搜索方法来搜索相关relevant 的子行为序列。在后续内容中,我们提供了 GSU 的两种简单实现:软搜索soft-search 和硬搜索 hard-search

      GSU 采取一种通用general 但有效effective 的策略来减少原始的行为序列的长度,从而满足对时间和计算资源的严格限制。同时,长期用户行为序列中可能会破坏用户兴趣建模的大量噪声可以在第一阶段通过搜索策略进行过滤。

    • 第二阶段:ESU 将经过过滤的用户行为子序列作为输入,并进一步捕获精确的用户兴趣。

      由于长期用户行为序列的长度已经减少到数百,因此可以应用复杂体系结构的精巧(sophisticated) 的模型,如 DIN, DIEN 等等。

    然后遵循传统的 Embedding&MLP 范式,将精确的长期用户兴趣的输出、以及Other Feature作为输入。

    注意:尽管我们分别介绍了这两个阶段,但是实际上它们是一起训练的。

    长期用户行为序列是否包含短期用户行为序列?论文未说明这一点。看结构图的描述,似乎不包含。

25.1.1 General Search Unit

  1. 给定一个候选 item (即将被 CTR 模型打分的target item),只有一部分用户行为有价值。这部分用户行为与最终用户决策密切相关。挑选出这些相关relevant 的用户行为有助于用户兴趣建模。

    然而,使用整个用户行为序列直接对用户兴趣进行建模将带来巨大的资源占用和响应延迟(latency ),这在实际应用中通常是无法接受的。为此,我们提出了一个通用搜索单元(general search unit: GSU ),从而减少用户兴趣建模中用户行为的输入数量。这里,我们介绍两种通用的搜索单元:硬搜索hard-search 和软搜索 soft-search

  2. 给定用户行为的列表 B=[b1;b2;,bT] ,其中 bi 为第 i 个用户行为(这里每个行为就是用户点击或购买的 item ),T 为用户行为列表的长度。通用搜索单元计算每个行为 bi 相对于候选 item 的相关性得分 relevant score ri,然后选择得分 top-K 的相关relevant 行为作为行为子序列 sub behaviour sequence

    K 的大小对模型性能的影响如何?论文并未进行消融实验。

    硬搜索和软搜索的区别在于相关的分 ri 的计算:

    ri={I(ci=ca),hard-search(Wbei)(Waea),soft-search

    其中:

    • I() 为示性函数, ci 表示第 i 个行为 bi 的类目,catarget item 的类目。

    • WbRd×dWaRd×d 为权重参数,eiRd 为第 i 个行为 biembedding 向量,eaRdtarget itemembedding 向量。ditem embedding 的维度,d 为映射的新空间的维度。

      对于软搜索,GSUESU 共享相同的 embedding 参数。

  3. 硬搜索 hard-search:硬搜索模型是非参数(non-parametric) 的。只有和候选item 相同类目category 的行为被挑选出来,然后得到一个子行为序列并发送给 ESU

    硬搜索非常简单,稍后在实验中我们证明它非常适合在线 serving

    对于 hard-search,如何选择 top-k?因为它的 score 要么为 0、要么为 1 。这使得相同 category 的行为,其 score 全部为 1

  4. 软搜索soft-search:在软搜索模型中,首先将 bi 编码为one-hot 向量,然后嵌入到低维向量 ei 中。

    • 为了进一步加速成千上万个用户行为的 top-K 搜索,基于embedding 矩阵 E 的、亚线性时间sublinear time 的最大内积搜索 maximum inner product search 方法 ALSH 用于搜索和target item 最相关的 top-K 行为。其中 E 为所有distinct 行为的 embedding 向量组成。

      借助训练好的 embedding 和最大内积搜索Maximum Inner Product Search: MIPS 方法,成千上万个用户行为可以减少到数百个。

    • 需要注意的是:长期long-term数据和短期short-term数据的分布是不同的。因此,在软搜索模型中直接使用从短期用户兴趣建模中学到的参数可能会误导长期用户兴趣建模。所以在本文中,软搜索模型的参数是在基于长期行为数据的辅助 CTR 预估任务下训练的,如上图左侧的软搜索训练soft search training 所示。

      用户整体行为序列的representation ur 可以通过将 riei 相乘得到:

      ur=i=1Triei

      行为 representation urtarget Ad 向量 ea 然后拼接起来,作为后续多层感知机 Multi-Layer Perception: MLP 的输入,从而建模辅助任务。

      注意,如果用户行为序列增长到一定程度,则不可能将整个用户行为序列馈入辅助任务的模型。这种情况下,可以从长的用户行为序列中随机采样子序列,子序列仍然遵循原始行为序列相同的分布。

      作者提到 “对于软搜索,GSUESU 共享相同的 embedding 参数“,这意味着 embedding layer 的训练不仅依赖于 main task,还依赖于这里的辅助任务。

25.1.2 Exact Search Unit

  1. 在第一个搜索阶段,我们从长期用户行为中选择和 target item 最相关的 top-K 子用户行为序列 B()=[b1();;bK()] 。为了进一步从相关行为中建模用户兴趣,我们引入了精确搜索单元Exact Search Unit: ESUESU 是一个以 B() 为输入的、attention-based 的模型。

    考虑到这些选出来的用户行为横跨了很长时间,因此每个用户行为的贡献是不同的,所以涉及到每个行为的时间属性temporal property 。具体而言,target item 和选出来的 K 个用户行为的时间间隔 D=[Δ1;Δ2;;ΔK] 用于提供时间距离temporal distance 信息。

    B()D 被编码为 embedding 矩阵 E()=[e1();e2();;eK()]embedding 矩阵 E(t)=[e1(t);e2(t);;eK(t)] 。 其中, ej()ej(t) 的拼接作为第 j 个行为的最终 representation ,记作 zj=concat(ej(),ej(t))

    time info 用向量拼接还是直接逐元素相加?可以做个消融实验分析。

    我们利用 multi-head attention 来捕获用户的多样化兴趣:

    atti,score(j)=Softmax((Wi,zzj)(Wi,aea))=exp[(Wi,zzj)(Wi,aea)]k=1Kexp[(Wi,zzk)(Wi,aea)]z<i>=j=1Katti,score(j)×zj

    其中:

    • atti,score(j) 为作用在第 j 个行为 zj 上的第 iattention scorez<i> 为第 iheadattention

    • Wi,z,Wi,a 为第 ihead 的权重矩阵。

    最终的用户长期diverse 兴趣表示为:ulong=concat(z<1>;;z<H>) ,其中 Hhead 数量。然后 ulong 被馈入到 MLP 中用于点击率预估。

  2. 最终模型同时使用了长期用户行为和短期用户行为,其中:

    • 长期用户行为使用 ESU 来抽取长期用户兴趣representation ulong

    • 短期用户行为使用 DIEN 来抽取短期用户兴趣representation ushort

    长期用户兴趣representation ulong 、短期用户兴趣representation ushort 、以及Other feature representation 一起拼接作为后续 MLP 的输入。

    长期用户兴趣由长期用户行为来捕获,这里使用 GSU + ESU 的原因是序列太长,DIEN 无法处理。

    短期用户兴趣由短期用户行为来捕获,这里使用 DIEN 是因为序列较短因此可以更精细地建模。对于较短的序列,没必要使用 GSU 来硬过滤。

  3. 最后,我们在交叉熵损失函数下同时训练 GSUESU

    L=αLossGSU+βLossESU

    其中:

    • αβ 为超参数,用于控制损失之间的比例。在我们的实验中:

      • 如果 GSU 为软搜索模型,则 α=β=1

      • 如果 GSU 使用硬搜索模型,那么 α=0

    • LossESUESU 单元的损失,这也是SIM 模型主任务的目标损失。

    • LossGSUGSU 单元的损失。

      • 如果 GSU 为硬搜索,则由于硬搜索没有参数,因此不考虑其损失。

      • 如果 GSU 为软搜索,则它是 SIM 模型辅助任务的目标损失。辅助任务也是一个 CTR 预估任务,只是它采用了更简单的架构(没有 multi-head、没有 DIEN )、更少的特征(没有短期用户行为、没有 Other feature )。

    这个辅助损失函数本质上是强制 GSU 部分学到的 embedding 是任务相关的。

    SIMDeepMCPDMR 等模型都是类似的思想,要求模型的子结构也能够捕获到 CTR 相关的信息,从而使得约束了模型的解空间。

25.1.3 在线实现

  1. 这里我们介绍在阿里巴巴的展示广告系统display advertising system 中实现 SIM 的实际经验。

  2. life-long 用户行为数据在线serving 的挑战:工业级的推荐系统或广告系统需要在一秒钟内处理的大量的流量请求,这需要 CTR 模型实时响应。通常, serving latency 应该小于 30 毫秒。下图简要说明了我们在线展示广告系统中用于 CTR 任务的实时预测Real Time Prediction: RTP系统。该系统由两个关键组件组成:计算节点(Computation Node)、预估server

    考虑到 lifelong 的用户行为,在实时工业系统中建立长期的用户兴趣model serving 就变得更加困难。存储和延迟的限制可能是长期用户兴趣模型的瓶颈。实时请求的数据量(数据量 = 请求条数 x 单条请求的数据量)会随着用户行为序列长度的增加而线性增加。此外,我们的系统在流量高峰时每秒可为超过 100 万用户提供服务。因此,将长期模型部署到在线系统是一个巨大的挑战。

  3. 在线 serving 系统:前面我们提出了两种类型的 GSU:软搜索模型和硬搜索模型。

    对于软搜索模型和硬搜索模型,我们对从阿里巴巴在线展示广告系统收集的工业数据进行了广泛的离线实验。我们观察到软搜索模型生成的 top-K 行为数据与硬搜索模型的结果极为相似。换句话讲,软搜索的大部分 top-K 行为通常属于 target item 相同类目category 的。这是我们场景中数据的一个特色。在电商网站中,属于同一类目的 item 在大多数情况下是相似的。考虑到这一点,尽管在离线实验中软搜索模型的性能要比硬搜索模型稍好,但是在平衡性能提升和资源消耗之后,我们选择硬搜索模型将 SIM 部署到我们的广告系统中。

    对于硬搜索模型,包含所有长的用户行为序列数据的索引是关键组件。我们观察到,行为可以通过其所属类目自然访问到。为此,我们为每个用户建立一个两级的结构化索引 two-level structured index ,并将其命名为用户行为树(user behavior tree: UBT ),如下图所示。

    简而言之,UBT 遵循 Key-Key-Value 数据集结构:第一个 keyuser-id,第二个 keycategory id,最后一个value 是属于每个类目的特定的行为itemUBT 被实现为分布式系统,最大容量可达 22TB,并且足够灵活以提供高吞吐量的query

    然后,我们将 target itemcategory 作为我们的硬搜索query

    GSU 之后,用户行为的长度可以从一万多个减少到数百个。因此,可以缓解在线系统中 lifelong 行为的存储压力。

    下图显示了 SIM 的新 CTR 预估系统。新系统加入了一个硬搜索模块,以从长的用户行为序列数据中寻找 target item 相关的有效行为effective behaviors

    注意:GSUUBT 的索引可以离线构建。这样,在线系统中的 GSU 的响应时间可以非常短,与 GSU 的索引构建相比可以忽略。此外,其它用户特征可以并行计算。

    如何解决 category 不平衡问题?例如,某些类目的商品特别多,另一些类目的商品很少。

25.2 实验

  1. 这里我们详细介绍了我们的实验,包括数据集、实验配置、模型比较、以及一些相应的分析。由于 SIM 已经部署在我们的在线广告系统中,因此我们还会进行仔细的在线 A/B test,并比较几个著名的工业级的模型。

  2. 数据集:我们在两个公共数据集、以及阿里巴巴在线展示广告系统收集的工业数据集进行了模型比较。

    • Amazon Dataset:由 Amazon 的商品评论和元数据meta-data组成。我们使用 Amazon 数据集的 Books 子集,该子集包含 75053 个用户、358367item1583 个类目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 Datasetitem 为广告。

  3. 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

  4. 实验配置:我们采用与相关工作(即 MIMN)相同的实验配置,以便可以公平地比较实验结果。

    • 对所有模型,我们使用 Adam 优化器。

    • 我们使用指数衰减,学习率从 0.001 开始。

    • 全连接网络FCNlayer 设置为 200 x 80 x 2

    • embedding 维数设置为 4

    • 我们使用 AUC 作为模型性能的评估指标。

  5. 下表显式了所有模型在公共数据集上的比较结果。a 表示SIM 采用软搜索且没有时间间隔的 embeddingb 没有在 Amazon Dataset 上实验,因为该数据集没有时间戳数据。

    • DIN 相比,具有长期用户行为特征的其它模型的性能要好得多。这表明长期用户行为对CTR 预估任务很有帮助。

    • MIMN 相比,SIM 取得了显著提升,因为 MIMN 将所有未过滤的用户历史行为编码到固定长度的 memory 中,这使得难以捕获多样化的长期用户兴趣。

    • SIM 使用两阶段搜索策略从庞大的历史行为序列中搜索相关的行为,并针对不同target item 来建模多样化的长期用户兴趣。

      实验结果表明:SIM 优于所有其它长期兴趣模型。这充分证明了我们提出的两阶段搜索策略对于长期用户兴趣建模很有用。而且,包含time embeding 可以实现进一步的提升。

    在这个 Taobao 数据集中,MIMN 的指标与原始 MIMN 中的指标对不上,可能的原因是:这里的 Taobao 数据集与之前的 Taobao 数据集不同。

  6. 消融研究--两阶段搜索的有效性:如前所述,我们的 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-trainedembedding 向量,离线计算 target item 和长期用户行为之间的内积相似度得分。然后根据相似度得分选择 top 50 个相关行为来进行软搜索。

    • 最后三个实验是我们提出的两阶段搜索架构的搜索模型。

    实验结果如下表所示,可以看到:

    • 与简单的均值池化 embedding 相比,所有具有过滤策略的方法都极大地提高了模型性能。这表明在原始的长期行为序列中确实存在大量的噪声,而这些噪声可能会破坏长期用户兴趣的学习。

    • 和仅进行一阶段搜索的模型相比,我们提出的具有两阶段搜索策略的搜索模型通过在第二阶段引入 attention-based 的搜索而取得了进一步的提升。这表明:精确地建模用户对 target item 的多样化的长期兴趣,有助于 CTR 预估任务。并且在第一阶段搜索之后,过滤后的行为序列通常比原始序列短得多,attention 操作不会给在线 RTP 系统带来太多负担。

    • 包含time embedding 的模型得到了进一步的提升,这表明不同时期 peroid 的用户行为的贡献是不同的。

  7. 我们进一步对阿里巴巴在线展示广告系统收集的工业数据集进行实验,下表给出了实验结果。a 表示该模型目前已经部署在我们的在线serving 系统,并且服务于主要的流量。

    • SIM 相比 MIMNAUC 上提升了 0.008,这对于我们的业务而言意义重大。

    • 和第一阶段使用硬搜索相比,第一阶段使用软搜索的性能更好。

    • 在第一阶段,硬搜索和软搜索这两种搜索策略之间只有微小的差距。

      • 在第一阶段应用软搜索会花费更多的计算资源和存储资源。因为软搜索需要在 online serving 中使用最近邻搜索,而硬搜索只需要从离线构建的两级索引表中检索。因此,硬搜索更加有效且系统友好。

      • 对两种不同的搜索策略,我们对来自工业数据集的超过 100 万个样本和 10 万个具有长期历史行为的用户进行了统计。结果表明:硬搜索策略保留的用户行为可以覆盖软搜索策略的 75%

      最后,我们在第一阶段选择更简单的硬搜索策略,这是在效率efficiency 和性能 performance 之间的 trade-off

  8. 在线 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 首页的“猜你喜欢” 栏目。

  9. Rethinking Search Model:我们在用户长期兴趣建模方面做出了巨大努力,所提出的 SIM 在离线和在线评估方面都取得了良好的性能。但是 ,由于进行了精确的长期兴趣建模,SIM 的性能会更好吗?SIM 是否会倾向于推荐和人们长期兴趣相关的 item

    为回答这两个问题,我们制定了另一个指标,即点击样本的 Days till Last Same Category Behavior dcategorydcategory 定义为:在点击事件发生之前,用户在相同类目cateogryitem 上的最近行为距离当前点击事件的时间间隔。

    例如,用户 u1 点击了类目为 c1item i1 ,并且用户 u1 五天前点击了相同类目 c1item i2 (并且在这五天之内没有点击相同类目的其它item )。如果将点击事件记作 s1,那么样本 s1Days till Last Same Category Behavior5 ,即 dcateogrys1=5 。此外,如果用户 u1 历史上从未在类目 c1 上有任何行为,我们设置 dcateogrys1=1

    对于给定的模型,可以使用 dcategory 来评估模型在长期兴趣long-term interest 或短期兴趣short-term interest 上的选择偏好(selection preference) 。

    • 经过在线 A/B test 之后,我们根据提出的 dcategory 指标分析了 SIMDIEN (这是短期的CTR 预估模型的最新版本)的点击样本。点击样本越多则说明模型效果越好(模型找的越准)。

      根据 dcategory 我们将点击样本(这里指的是模型预估参与竞价的结果)拆分为两个部分:长期的(>14天)、短期的(<14天)。方框显示了不同 dcategorySIM 模型点击样本的提升比例(相对于 DIEN 模型)。曲线表示不同 dcategory 下不同模型找到的点击样本数量。

      可以看到:在短期部分( dcategory<14 )上的两个模型之间几乎没有差异,因为 SIMDIEN 在过去14 天中都具有短期的用户行为特征。在长期部分,SIM 提升比例更大。

    • 此外在工业数据集上,我们统计了 dcategory 的均值、以及用户拥有和 target item 相同类目的历史行为的概率。结果如下表所示(在线 a/b test 对应的点击样本,在离线上统计到的)。

      结果表明:SIM 的提升确实是更好的长期兴趣建模的结果。并且和 DIEN 相比,SIM 倾向于推荐与人们长期行为有关的item

    读者注:这里假设 A/B test 时流量相等,因此点击量的差异等价于 CTR 的差异。

  10. 部署的实践经验:这里我们介绍了在线 serving 系统中实现 SIM 的实践经验。

    阿里巴巴的高流量是众所周知的,它在流量高峰时每秒为超过100 万用户提供服务。此外,对于每个用户,RTP 系统需要计算数百个候选item 的预估CTR。我们对整个离线用户行为数据建立一个两阶段索引,该索引每天都会更新:第一阶段是user id;在第二阶段,一个用户的 life-long 行为数据由该用户所交互的类目来索引。

    虽然候选item 的数量为数百,但是这些item 的类目数量通常少于 20 。同时,来自 GSU 的每个类目的子行为序列的长度被截断为不超过 200 (原始的行为序列长度通常小于 150 )。这样,来自用户的每个请求的流量是有限的并且可以接受的。

    此外,我们通过 deep kernel fusion 优化了 ESUmulti-head attention 的计算。

    下图显示了我们的实时 CTR 预估系统相对于 DIEN,MIMN,SIM 流量的效率。值得注意的是:

    • MIMN 可以处理的最大用户行为长度是 1000,而这里显示的性能是基于截断的行为数据( MIMNDIEN 中,用户行为的长度被截断为 1000)。

    • SIM 中的用户行为的长度不会被截断,并且可以扩展到 54000,使得最大长度可以扩展到 54 倍。针对一万个行为的 SIM serving ,相比于截断用户行为的 MIMN servinglatency 仅增加了 5ms

    • DIEN 的最大流量为 200,因此图中只有一个点。

五十一、UBR4CTR [2020]

《User Behavior Retrieval for Click-Through Rate Prediction》

  1. CTR prediction 在现代的 online personalization services 中起着关键作用。在实践中,需要通过对用户行为序列进行建模来捕获用户的兴趣变化,以构建准确的 CTR prediction 模型。然而,随着用户在平台上积累越来越多的行为数据,对 sequential models 而言,利用每个用户的 whole behavior history 变得并非易事。

    • 首先,直接馈入长的行为序列将使在线推理时间和系统负载变得不可行。

    • 其次,如此长的历史行为序列中存在大量噪音,导致 sequential model learning 的失败。

    当前的业界的解决方案主要截断序列并仅将近期行为馈入 prediction model ,这导致一个问题,即:周期性或长期依赖性等 sequential patterns 未被纳入近期的若干个behaviors中,而是包含在很久以前的历史中。为了解决这些问题,在本文中,我们从数据的角度考虑它,而不仅仅是设计更复杂的模型,并提出了 User Behavior Retrieval for CTR prediction: UBR4CTR 框架。在 UBR4CTR 中:

    • 首先使用可学习的搜索方法从整个用户历史序列中检索最相关、最合适的user behavior

    • 然后将这些被检索到的行为(而不是简单地使用近期行为)馈入到 deep model 中以进行最终预测。

    以低成本将 UBR4CTR 部署到 industrial model pipeline 中是非常可行的。在三个真实世界大型数据集上的实验证明了我们提出的框架和模型的优越性和有效性。

  2. CTR prediction 在当今的在线个性化平台(例如电商、在线广告、推荐系统)中起着关键作用,其目标是预测用户在特定情境下点击特定 item 的概率。在线个性化平台经过十多年的发展,平台上记录的user behavior数量迅速增长。23% 的用户在六个月内在淘宝上有超过 1000behavior《Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction》)。由于user behavior中存在丰富的时间模式(temporal patterns ),因此建立一个有效且高效的模型,利用user behavior序列来获得准确的 CTR prediction 成为业界和学术界的一个重要问题。

    在深度学习时代,有许多 DNN-basedCTR prediction 模型,例如 Wide&DeepFNNDeepCrossDeepFMPNNxDeepFM,其中大多数已部署在商业的个性化平台上。这些模型强调挖掘特征交互(feature interactions ),并被用于更好地利用数据的 multi-categorical features 。然而,这些模型忽略了user behavior的序列模型或时间模式(sequential or temporal patterns)。

    《Spatio-temporal models for estimating click-through rate》《Vista: a visually, socially, and temporally-aware model for artistic recommendation》《Recurrent neural networks with top-k gains for session-based recommendations》《Collaborative filtering with temporal dynamics》 所示,user behaviortemporal dynamics 在预测用户未来兴趣方面起着关键作用。这些序列模式(sequential patterns )包括概念漂移(concept drifting )、长期behavior依赖性(long-term behavior dependency )、周期性模式(periodic patterns )等。因此,在 CTR prediction 和序列推荐任务中,人们提出了一些模型来捕获用户的序列模式。

    • 对于 CTR prediction ,有 attention-based 的模型,如 DINDIEN ;有 memory network-based 的模型,如HPMN

    • 对于序列推荐,人们提出了更多的 user behavior modeling 方法,这是一项与 CTR prediction 非常相似的任务。有 RNN-based 的模型、CNN-based 的模型、Transformer-based 的模型、以及 memory network-based 的模型。

    然而,上述大多数序列模型在实际应用中都有一个共同的问题。当平台记录了大量的user behavior时,常见的工业解决方案是截断整个行为序列,只使用最近的 Nbehavior作为 prediction model 的输入,如 Figure 1 上半部分所示。online serving time 的严格要求,加上系统负载和计算能力的瓶颈,限制了可使用的用户序列的长度。因此,在大多数情况下,使用的近期行为不超过 50 个(《Deep interest evolution network for click-through rate prediction》)。 使用最近 Nbehavior的传统框架可能会带来负面问题。很明显,有效的序列模式可能不仅仅包含在最近的行为序列中。它可以追溯到更远的历史,如周期性和长期依赖性。然而,如果我们尝试使用更长的序列,可能会引入大量不相关的behavior和噪音。更不用说更长的历史带来的时间复杂性和空间复杂性了。 在本文中,为了解决上述实际问题,我们尝试从数据的角度解决问题,而不是设计更复杂更精密的模型。具体来说,我们的目标是设计一个框架来检索对每个 CTR prediction target 最有用的有限数量的历史行为。如 Figure 1 所示,prediction target 由三部分组成,即:target usertarget item 和相应的上下文。prediction target 的特征包括用户的位置、性别、职业,以及itemcategory 、品牌、商家,以及时间和场景等上下文特征。然后我们使用模型选择这些特征的一个子集,该子集构建一个 query 来检索相关的历史行为。用户的所有behavior都作为information items 来存储在搜索引擎中,我们使用所生成的 query 从历史记录中进行搜索。被检索到的behavior用于 CTR prediction 对于同一用户的每个不同 target item ,我们将检索不同的 behaviors 来用于 prediction ,因为所生成的 queries 不同。对同一用户的不同 items 上的预测而言,与使用完全相同的最近 Nbehavior的传统框架相比,这是一个重大变化。

    最终的解决方案框架称为 User Behavior Retrieval for CTR: UBR4CTR。在 UBR4CTR 中,任务分为两个模块:

    • 第一个是可学习的检索模块,它由两个组件:

      • 一个 self-attentive network ,用于选择特征并形成 query

      • 以及一个搜索引擎,其中以倒排索引的方式存储user behavior

    • 另一个模块是 prediction 模块,其中构建了一个 attention-based deep neural network ,从而根据检索到的user behavior、以及 prediction target 的特征进行最终预测。

    本文的贡献可以概括为三点:

    • 我们揭示了一个重要事实,即在 user response prediction 中,检索更相关的user behavior比仅仅使用最近的behavior更重要。我们没有设计更复杂的模型,而是将更多注意力放在检索用户的behavior数据上。

    • 我们提出了一个名为 UBR4CTR 的新框架,该框架可以检索不同的 behaviors 从而用于同一用户在不同上下文中对不同 itemsCTR prediction 。所有先前的序列模型仅使用用户最近的behavior。我们提出了一种 search engine based 的方法和一种有效的训练算法来学习检索适当的behavior数据。

    • 我们在三个现实世界的大型电商数据集上进行了大量的实验,并将我们的框架与传统框架中几个强大的 baselines 进行了比较。结果验证了 UBR4CTR 框架的有效性。

    UBR4CTRSIM(hard) 的扩展。在 SIM(hard) 中,我们使用 catgory of target item 作为 query 从而执行检索。而在 UBR4CTR 中,我们根据不同的 input 来自动选择合适的 query 来执行检索。但是,更复杂的 query 引入了更复杂的检索系统(一个搜索引擎客户端),增加了工程量。

51.1 基础知识

  1. 在本节中,我们将问题公式化并引入符号。在 CTR prediction 任务中,有 M 个用户 U={u1,,uM},有 Nitems V={v1,,vN}user-item interactions 记作 Y={yu,vuU,vV},并且:

    yu,v={1,u has clicked v0,else

    此外,每个 user-item interaction 都有一个时间戳和一个上下文,时间戳和上下文是 interaction 发生时刻的。因此数据被公式化为四元组,即 {u,v,c,ts},表示用户 u 在时刻 ts 在上下文 c 的情况下点击了 item v

    为了建模用户不断变化的兴趣,我们将用户历史行为组织为 Hu={b1u,b2u,,bTu},其中 biu 代表用户 u 的第 ibehavior记录,按时间戳升序排序。点击率本质上是用户、item 、以及上下文之间的匹配概率,因此每条behavior biu 由以下三部分组成:biu=[u,vi,ci],其中 viV 是被用户 u 点击的第 iitemci 是发生交互的上下文。

  2. 在特征层面,每个用户 u 由一组特征表示,u=[f1u,,fKuu],其中 fpu 表示 u 的第 p 个特征。通常所有特征都是 multiple categorical 特征。如果有 numerical 特征,则将其离散化为 categorical 特征。

    类似地,v=[f1v,,fKvv]c=[f1c,,fKcc]Ku,Kv,Kc 分别为用户、item、以及上下文的特征数量。

    这里的特征数量就是 field 数量。例如,fiu 就是 user u 的第 ifield

  3. CTR prediction 的目标是:根据 u 在上下文 c 下的历史行为,预测 target user u 点击 target item v 的概率。其公式为

    y^u,v=f(u,v,cHu;θ)

    其中: f(;θ) 是具有参数 θ 的函数。

  4. 我们在 Table 1 中总结了符号和相应的描述。

51.2 方法论

  1. 本节将详细描述我们提出的 UBR4CTRUser Behavior Retrieval for CTR prediction )框架。我们首先给出整体框架的总体概述,然后详细描述 user behavior retrieval 模块和 prediction 模块。此外,以下各节将给出训练方法和一些时间复杂度分析。

51.2.1 整体框架

  1. UBR4CTR 的整体框架如 Figure 2 所示。该框架可分为两个主要模块:user behavior retrieval 模块和 prediction 模块。

    • user behavior retrieval 模块由一个 feature selection model 、一个 search engine client 和一个 user history archive 组成。所有用户历史行为都存储在 archive 中,并以 feature-based 的倒排索引方式组织,这将在后续章节中详细说明。

      Figure 2 所示,当我们需要在特定上下文中预测 target usertarget item 之间的点击率时,所有这三部分信息结合在一起形成 prediction targetprediction target 本质上是由 target usertarget item 和上下文的一系列特征组成。因此, prediction target 随后被馈入到 feature selection model 中,该模型将选择适当的特征来形成一个 queryfeature selection model 的详细设计见后续章节。然后,我们使用该 query 通过搜索 search engine clientuser history archive 中进行搜索。

    • search engine client 检索出一定数量的user behaviors,然后这些被检索到的 behaviorsprediction 模块使用。在 prediction 模块中,我们使用 attention-based 的深度模型来区分每个behavior对点击概率的影响,并做出最终预测,这将在后续章节中讨论。

    feature selection modelprediction model 轮流进行训练。feature selection model 的目标是选择最有用的特征子集。该子集的特征将组合起来生成一个 query ,该 query 用于检索与 final prediction 最相关的user behavior

51.2.2 User Behavior Retrieval Module

  1. 在本节中,我们介绍用 user behavior retrieval module ,该模块由 feature selection modelbehavior searching 过程组成。

  2. Feature Selection Model :如 Figure 3 所示,我们将 target user utarget item v 和对应的上下文 c 的所有特征作为 feature selection model 的输入。不失一般性,我们将 f1u 设置为 user id 特征。 user id 是一个特殊的特征,我们必须选择它,因为我们想要检索用户 u 自己的behavior。所有其他特征都拼接成一个整体。为简单起见,我们将所有特征 [f2u,,fKuu,f1v,,fKvv,f1c,,fKcc] 表示为