CTR 预估模型:神经网络模型

一、DSSM[2013]

  1. 现代搜索引擎主要通过将 document 中的关键词 keywords 和搜索 query 中的关键词进行匹配matching 来检索 web document 。然而,词汇匹配lexical matching 可能不准确,因为同一个概念通常在 documentquery 中使用不同的词汇 vocabulary 和语言风格language styles 来表达。

    潜在语义分析 latent semantic analysis: LSA 等潜在语义模型 latent semantic models 能够在词汇匹配经常失败的语义级别 semantic levelquery 映射到 query 相关的document 。这些潜在语义模型通过将出现在相似上下文中的不同 term 分组到相同的语义簇 semantic cluster ,从而解决 web document 和搜索 query 之间的语义差异。因此,querydocument 在低维语义空间中表示为两个向量,即使它们不共享任何 term,它们仍然可以具有很高的相似度得分similarity score

    根据 LSA 扩展,人们还提出了诸如 probabilistic LSA: PLSALatent Dirichlet Allocation: LDA 之类的概率主题模型probabilistic topic models 用于语义匹配semantic matching

    然而,这些模型通常以无监督的方式使用目标函数进行训练,该目标函数与检索任务的评估指标联系不紧密。因此,这些模型在 web 搜索任务上的表现并不如最初预期的那么好。最近,已经进行了两个研究方向来扩展上述的潜在语义模型,下面对其进行简要的回顾:

    • 首先,由 query 及其点击document 组成的点击数据集被用于语义建模 semantic modeling,从而弥合搜索 queryweb document 之间的语言差异language discrepancy 。例如,Gao 等人提出使用Bi-Lingual Topic Model: BLTM 和线性的判别投影模型 Discriminative Projection Model: DPM 在语义级别进行 query-document matching 。这些模型使用针对 document ranking 任务定制的目标函数对点击数据进行训练。具体而言:

      • BLTM 是一种生成模型,它要求 query 及其点击的document 不仅共享相同的主题分布,而且还包含分配给每个主题的相似词组。
      • 相比之下,DPM 是使用 S2Net 算法学习的,该算法遵循《Learning to rank using gradient descent》 中概述的 pairwise learning-to-rank 范式。将 querydocumentterm vectors 投影到低维语义空间的概念向量 concept vectors 之后,query 及其点击 document 的概念向量比 query 及其未点击 document 的概念向量距离更近。

      Gao 等人报告说,在document ranking 任务中,BLTMDPM 的表现都显著优于无监督的潜在语义模型,包括 LSAPLSA

      然而,BLTM 的训练虽然使用点击数据,但最大化对数似然函数,这对于 document ranking 任务的评估指标而言是次优的。

      另一方面,DPM 的训练涉及大规模矩阵乘法,这些矩阵的大小通常随着词表规模vocabulary size 的增加而迅速增长。而在 web 搜索任务中,词表规模可能达到数百万的量级。为了使训练时间可以接受,词表被激进地裁剪。尽管更小规模的词表使得模型使得训练可以进行,但是会导致性能欠佳。

    • 其次,SalakhutdinovHinton 使用深度自编码器deep auto-encoder 扩展了语义建模semantic modeling 。他们证明了嵌入在 querydocument 中的层次语义结构 hierarchical semantic structure 可以通过深度学习来提取。

      据报道,这种方法的性能优于传统 LSA。然而,他们使用的深度学习方法仍然采用无监督学习方法,其中模型参数针对 document 的重建进行优化,而不是针对给定的 query 将相关的 document 和无关的 document 区分开。因此,深度学习模型并没有显著优于基于关键词匹配的 baseline 检索模型。

      此外,语义哈希模型semantic hashing model 还面临大规模矩阵乘法的可扩展性挑战。然而,学习大词表的能力对于在现实世界的 web 搜索任务中获得良好结果至关重要。

    在论文 《"Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》 中,从上述两个研究方向出发,论文提出了一系列用于 web 搜索的深度结构化语义模型 Deep Structured Semantic Model: DSSM 。具体而言,论文的最佳模型使用深度神经网络 DNN 对给定 query 的一组 document 进行排序,如下所示:

    • 首先,执行非线性投影从而将 querydocument 映射到公共语义空间。
    • 然后,每个 document 和给定 query 的相关性计算为它们在这个公共语义空间中的向量之间的余弦相似度。

    神经网络模型使用点击数据进行有区别地 discriminatively 训练,从而最大化给定query 条件下点击 document 的条件概率。和之前以无监督方式学习的潜在语义模型不同,DSSM 模型直接针对 web document ranking 进行了优化,因此具有卓越的性能。

    此外为了处理大型词表vocabulary,作者提出了所谓的哈希方法 hashing method,通过该方法将 querydocument 的高维 term vectors 投影到低维的 letter based n-gram vectors ,信息损失很小。在论文的实验中,实验表明:通过在语义模型中添加这一个额外的layerword hashing 使得我们能够有区别地学习大词表的语义模型,这对于 web 搜索至关重要。

    论文使用真实世界的数据集在 web document ranking 任务上评估了 DSSM,结果表明:DSSM 的最佳模型在 NDCG@1 中以 2.5%-4.3% 的显著优势优于所有竞争方法(包括之前被认为是 state-of-the-art 的方法)。

  2. 论文的主要贡献在于论文在三个关键方面对先前的潜在语义模型(如 LSA )进行了重大扩展。

    • 首先,论文直接针对 document ranking 的目标,利用点击数据来优化模型参数。

    • 其次,论文使用多个 hidden-representation layer 将线性语义模型扩展到非线性语义模型。

      采用深层架构可以进一步增强建模能力,从而捕获和表达 querydocument 中更复杂的语义结构。

    • 第三,论文使用 letter n-gram based word hashing 技术,该技术证明有助于扩展深度模型的训练,以便可以在现实的 web 搜索中使用非常大的词表。

    论文的实验表明上述三个方面的每一个新技术都可以显著提高 document 排序任务的性能。三种新技术的组合产生了一个新的 state-of-the-art 的语义模型,该模型以显著的优势击败了所有之前的baseline 模型。

  3. 相关工作:论文的工作是基于对信息检索 IR 的潜在语义模型的两个最新扩展。第一个是探索用于以监督方式学习潜在语义模型的点击数据,第二个引入深度学习方法进行语义建模。

    • 潜在语义模型以及使用点击数据:使用潜在语义模型进行 query-document mathcingIR 社区中一个长期存在的研究课题。流行的模型可以分为两类:线性投影模型linear projection model 和生成主题模型generative topic model

      最著名的 IR 线性投影模型是 LSA 。通过使用 document-term 矩阵的奇异值分解 singular value decomposition: SVD,可以将 document (或者 term)映射到低维概念向量 concept vector 。给定document term vector ,其中 为词表大小,则:

      其中: 为投影矩阵 ;document 投影后的低维概念向量, 为低维概念空间维度。

      document 搜索中,query (由 term vector 表示)和 document (由 term vector 表示)之间的相关性得分 relevance score ,与它们对应的概念向量 的余弦相似度得分similarity score 成正比:

      除了潜在语义模型之外,在点击的 query-document pair 对上训练的翻译模型 translation model 提供了另一种语义匹配方法。和潜在语义模型不同,基于翻译的方法直接学习 document 中的 termquery 中的 term 之间的翻译关系。最近的研究表明,给定大量用于训练的点击数据,这种方法非常有效。论文还将通过实验将 DSSM 和翻译模型进行比较,细节参考后面的内容。

    • 深度学习:最近,深度学习方法已经成功地应用于各种语言和信息检索 application。通过利用深度架构,深度学习技术能够从训练数据中发现对任务有用的不同抽象级别abstractions level 的隐藏结构和特征。

      《Semantic hashing》 中,SalakhutdinovHinton 通过使用深度网络(自编码器 auto-encoder)来扩展 LSA 模型,从而发现嵌入在 querydocument 中的层次语义结构 hierarchical semantic structure 。他们提出了一种语义哈希semantic hashing: SH 方法,该方法使用从深度自编码器中学到的 bottleneck 特征进行信息检索。这些深度模型分为两个阶段学习。

      • 首先,学习一系列生成模型(即受限玻尔兹曼机restricted Boltzmann machine)将documentterm vector representation 逐层映射到低维的语义概念向量semantic concept vector
      • 其次,对模型参数进行微调,从而最小化 document 的原始 term vector 和重构的 term vector 之间的交叉熵误差。

      中间层 activation 用作 document 排序的特征(即 bottleneck)。他们的评估表明,SH 方法取得了优于 LSA 的文档检索性能。

      然而,SH 存在两个问题,并且无法超越基于标准的lexical matching based 的检索模型(例如,使用 TF-IDF term weighting 的余弦相似度)。

      • 第一个问题是模型参数针对 documentterm vector 重建进行了优化,而不是针对给定query 从而将相关的document 和不相关的 document 区分开来。
      • 第二个问题是为了降低计算成本,documentterm vector 仅包含最常用的 2000 个单词。

      接下来论文将展示对这两个问题的解决方案。

1.1 模型

1.1.1 DNN 架构

  1. 我们开发的 DNN 架构可以将原始的高维稀疏文本特征映射到语义空间中的低维稠密特征,如下图所示。

    • DNN 的输入(原始文本特征)是一个高维稀疏的 term vector ,如 querydocumentterm 未归一化的原始计数。输入层 500k 表示采用 500k 个单词的大型词表。
    • DNN 的第一个隐层有 30k 个单元,从而完成 word hashing
    • 然后通过多层非线性投影来映射经过 word hashed 的特征。
    • DNN 的输出是低维语义特征空间中的概念向量 concept vector

  2. 这个 DNN 模型用于 web document ranking 如下:

    • term vectors 映射到它们对应的语义概念向量semantic concept vectors
    • 计算 documentquery 对应的语义概念向量的余弦相似度cosine similarity 作为它们之间的相关性得分relevance score

    形式化地,假设输入向量为 ,输出向量为 ,网络一共有 层。第 层的隐向量为:

    其中:

    • 为激活函数,这里采用 tanh 激活函数。
    • 为待学习的网络参数。注意, 为第一层 word hashing layer 固定的权重矩阵,不需要学习,详细内容参考后文所述。

    对于 query ,输入就是 ,输出就是 ;对于 document ,输入就是 ,输出就是 。对于 query document ,它们之间的相关性得分为:

  3. 一般而言,term vector (可以视为IR 中的原始 bag-of-words 特征)的维度与用于索引 web document 集合的词表大小相同。在现实世界的 web 搜索任务中,词表大小通常非常大。因此,当使用 term vector 作为输入时,神经网络输入层的尺寸将无法用于模型推断和模型训练。

    为了解决这个问题,我们为 DNN 的第一层开发了一种称作 word hashing 的方法,如上图的下半部分所示。word hashing layer仅由线性隐单元组成,其中包含一个不需要学习的、规模很大的权重矩阵。接下来我们将详细描述 word hashing 方法。

1.1.2 word hash

  1. word hashing 方法旨在降低 bat-of-word 向量的维度。该方法基于 letter n-gram,是一种专门为我们的任务开发的新方法。给定一个单词(如 good):

    • 我们首先为单词添加开始标记、结束标记(如#good#)。
    • 然后我们将单词分解为 letter n-gram (例如 letter trigrams#go, goo, ood, od#)。
    • 最后,单词使用 letter n-grams 的向量来表示。

    这种方法的一个问题是冲突collision ,即两个不同的单词可能具有相同的 letter n-gram 向量表示。

    下表展示了对两个词表进行 word hashing 的一些统计数据。和 one-hot 向量的原始尺寸相比,word hashing 允许我们使用维度低得多的向量来表示 querydocument

    • 40K-word 词表为例,每个单词都可以使用 letter trigrams 由一个 10306 维的向量来表示,从而在几乎没有冲突的情况下将维度降低了 4 倍。
    • 当该技术应用于更大规模的词表时,维度的降低更为显著。如下表所示,500K-word 词表中每个单词都可以使用 letter trigrams 由一个 30621 维的向量来表示,维度降低了 16 倍,而且冲突率 0.0044%22/500000)几乎可以忽略不计。

  2. 虽然英语单词的数量可以是无限的,但是英语(或者其他类似语言)中 letter n-gram 的数量通常是有限的。此外,word hashing 能够将同一个单词的形态变化映射到 letter n-gram 空间中彼此靠近的点。更重要的是,letter n-gram based representation 可以解决在训练集中看不到的单词(即 out-of-vocabulary: OOV)的问题。

    唯一的风险是 representation 冲突,虽然冲突比例较小。因此,基于 letter n-gramword hashingOOV 问题具有鲁棒性,使得我们能够将 DNN 解决方案扩展到词表非常大的 web 搜索任务中。我们将在实验部分演示该技术的好处。

  3. 在我们的实现中,基于 letter n-gramword hashing 可以被视为一种固定的(不需要学习的)线性变换。通过该变换,输入层中的 term vector 将被投影到下一层的 letter n-gram vector 。由于 letter n-gram vector 的维度要低得多,因此可以有效地进行 DNN 学习。

1.1.3 DSSM 学习

  1. 点击日志由 query 及其点击的 document 组成。我们假设每个 query 与对应的点击 document 至少部分相关。

    受语音和语言处理中判别式训练 discriminative training 方法的启发,我们提出了一种监督训练方法来学习我们的模型参数(即模型中的权重矩阵 和偏置向量 ),以便最大化给定 query 的条件下点击 document 的条件概率。

    给定 query document ,我们通过 softmax 函数从 query-document 之间的语义相关性得分得到后验概率:

    其中:

    • 为平滑因子,它是一个超参数,需要根据验证集来执行超参数搜索。

    • 是需要排序的候选 document 集合。理论上应该考虑所有的候选文档,但是实际应用中给定一对点击样本 ,我们从曝光但是未点击的文档中随机选择 篇文档作为负样本 ,则

      我们选择 ,并且在实验中发现: 不同的负采样策略对结果没有显著影响。

  2. 我们的目标函数是在给定 query 的情况下最大化点击 document 的可能性,即:

    其中 表示模型的参数集合。

    该模型很容易使用基于梯度的数值优化算法进行训练,限于篇幅我们省略了梯度的推导过程。

    注意:这里并没有计算负样本的概率 ,负样本的信息在计算概率 时被使用。

  3. DSSM 模型配置:

    • 为了训练模型并避免过拟合,我们将点击数据分为训练集和验证集。模型在训练集上训练,超参数在验证集上优化。

    • 在实验中,我们的 DSSM 使用了具有三层隐层的架构。第一层隐层是 word hashing layer,包含大约 30k 个节点(letter-trigramms);接下来的两层隐层各有 300 个隐节点。

      此外,输出层包含 128 个节点。

    • word hashing 基于固定的投影矩阵,相似性度量基于维度为 128 的输出层。

    • 我们初始化网络权重为 范围之间的均匀分布,其中 分别为输入单元数量和输出单元数量。

    • 实验结果表明:在采用逐层预训练时我们没有观察到更好的性能。

    • 在训练阶段我们使用基于 mini-batch 的随机梯度下降 SGD 优化模型,每个 mini-batch 包含 1024 个训练样本。我们观察到模型训练通常会在 20epoch 内收敛。

1.2 实验

  1. 数据集:我们在大规模真实世界数据集(称作评估数据集)的 web document 排序任务中评估了 DSSM

    评估数据集包含 16510 个英语 query,这些 query 来自商业搜索引擎的一年的 query 日志文件。平均而言,每个 query 都和 15web documentURL)相关联。我们仅使用 web document 的标题字段进行排序。我们使用了大约 1 亿对的随机采样子集,这些 document 很受欢迎并且具有丰富的点击信息。

    每个 query-title pair 都有一个人工生成的相关性标签,标签等级从 0 ~ 4 一共五级相关性:4 级表示 documentquery 最相关,0 级表示 documentquery 最不相关。

    所有 querydocument 都经过预处理:单词被空格分开,字母小写,数字被保留,并且不执行词干化。

  2. 评估方式:评估指标是 Normalized Discounted Cumulative Gain: NDCG。我们在这里报告 NDCG@1, NDCG@3, NDCG@10

    我们还使用 paired t-test 来进行显著性检验,当 时才认为差异具有统计显著性。

    本文中使用的所有排序模型(即 DSSM 模型、主题模型、线性投影模型)都包含很多需要凭经验设置的超参数,我们使用 2-fold 交叉验证来调优超参数。

  3. baseline 方法:我们将 DSSM 和三组 baseline 模型进行比较。

    • 第一组 baseline 方法包括一些广泛使用的 lexical matching 方法,如 TF-IDFBM25TF-IDFBM25 都是基于 lexical matchingstate-of-the-artdocument ranking 模型。

      • TF-IDF 方法中,querydocument 都表示为具有 TF-IDF 权重的 term-vector 。给定 querydocument 按照 query vectordocument vector 之间的余弦相似度排序。

      • BM25 方法中,querydocument 相关性表示为:query 中每个 termdocument/query 相关性的加权和,权重为 term 的重要性,即:

        其中:query 中第 term 的重要性;document 的相关性;query 的相关性。

    • 第二组 baseline 是单词翻译模型,如 WTM,它旨在通过学习 query 单词和 document 单词之间的 lexical mapping 来直接解决 query-document 语言差异问题。

    • 第三组 baselinestate-of-the-art 的潜在语义模型,这些模型包括无监督方法(如 LSA, PLSA, DAE)以及有监督方法(BLTM-PR, DPM)。

      • 对于 LSA,我们使用 PCA 而不是 SVD 来计算线性投影矩阵。 querytitle 被视为单独的文档,因此模型中并未使用来自点击数据的 pair 信息。

      • PLSA 仅针对 document (即 title)进行训练,另外我们的 PSLA 版本是使用 MAP 估计学习的。

      • DAE 是基于深度自编码器的语义哈希模型的实现。由于模型训练的复杂性,输入的 term vector 基于 40k 的词表。

        DAE 架构包含四个隐层,每个隐层包含 300 个节点。中间有个 bottleneck layer,它包含 128 个节点。该模型仅以无监督的方式对 document 进行训练。在微调阶段,我们使用交叉熵误差作为目标函数。bottleneck 激活用作计算 querydocument 之间余弦相似度的特征。

      • BLTMPLSA 的扩展。DPM 也可以视为 LSA 的扩展,其中线性投影矩阵是使用点击数据以监督方式训练的。

    为了使得结果具有可比性,我们按照 《Clickthrough-based latent semantic models for web search》 中的描述重新实现了这些模型。例如,由于模型复杂性的限制,LSADPM 的模型使用 40k-word 的词表进行训练,其它模型采用 500k-word 的词表进行训练。

  4. 实验结果如下表所示。第 9 行到第 12 行显式了 DSSM 不同设置的结果。

    • DNN (第 9 行)是一个不使用 word hashingDSSM。它使用与 DAE 相同的结构,但是在点击数据上以监督方式进行训练。输入 term vector 基于 DAE 使用的 40k 词表。

    • L-WH linear(第 10行)是使用 letter trigram based word hashing 和监督训练构建的单隐层模型。它和 L-WH no-linear 的不同之处在于:我们没有对 L-WH linear 输出层采用任何非线性激活函数,例如 tanh。注:但是隐层还是使用了非线性激活函数。

    • L-WH DNN(第 12 行)是我们最好的、基于 DNN 的语义模型。它使用三层隐层,包括具有 Letter-trigram-based Word Hashing: L-WH 的层和一个输出层,并在 query-title pair 上进行有区分性地地训练。虽然基于 letter n-gramword hashing 方法可以应用于任意大的词表,但是为了和其它方法进行公平地比较,该模型使用了 500-k word 的词表。

      它和 L-WH no-linear 的不同之处在于: L-WH no-linear 是单隐层,但是 L-WH DNN 是三层隐层。

    可以看到:

    • WTM 显著优于 TF-IDFBM25,这证明了 《Clickthrough-based translation models for web search: from word models to phrase models”》 中得到的结论。
    • DAE 的结果与之前在 《Semantic hashing》 中报告的结果一致。基于 DNN 的潜在语义模型(如 DAE )优于线性投影模型(如 LSA)。然而, LSADAE 都是以无监督方式训练,因此无法超越 state-of-the-artlexical matching 排序模型。
    • 引入点击数据进行监督训练会带来一些显著的提升,BLTM-PRDPM 都优于 baseline 模型。
    • DSSM 模型表现最佳,在 NDCG 中以统计显著的优势超越了其它方法。这证明了使用 DNN 进行语义匹配的有效性。

    此外,我们还有以下结论:

    • 很明显,对点击数据的监督学习,再加上 IR-centric 优化准则的排序,对于获得卓越的 document 排序性能至关重要。

      例如 DNN (第9行)和 DAE(第6行)使用相同的 40k-word 词表并采用相同的深度架构,前者在 NDCG@1 中比后者高出 0.032

    • word hashing 允许我们使用非常大的词表进行建模。

      例如第 12行中的模型使用 500k-word 词表,显著优于第 9行中使用 `40k-word 词表的模型,尽管前者的参数规模更少(因为 word hashing layer 的权重矩阵是固定的)。

    • 深层架构比浅层架构在对嵌入在querydocument 中的语义信息建模方面效果更好。

      例如在无监督模型中, DAE (第3行) 深层模型优于 LSA (第2行) 浅层模型。在监督模型中我们也观察到类似的结果:

      • 比较第 11 行和 12 行,我们观察到将非线性层从1增加到3会使得 NDCG 得分提高 0.004 ~ 0.005 ,这在统计上是显著的。
      • 比较第 10 行和 11 行(它们都是一层隐层的浅层模型),我们观察到线性模型和非线性模型之间没有显著差异。

二、FNN[2016]

  1. 用户响应user response (如点击click-through 或转化 conversion )预测在很多 web applications 中起着至关重要的作用,包括web 搜索、推荐系统、sponsored 搜索广告、展示广告 display advertising 。例如,和传统线下广告相比,在线广告精准定向targeting 到单个用户的能力是核心优势。所有这些 targeting 技术本质上都依赖于系统预测特定用户是否会认为潜在广告是 “相关” 的,即用户在特定上下文中点击给定广告的概率。sponsored 搜索广告、上下文广告、以及最近出现的实时竞价realtime bidding: RTB展示广告在很大程度上依赖于模型预测广告点击率 CTR 的能力。

    当今应用的 CTR 预估模型大多数是线性的,从逻辑回归、朴素贝叶斯到 FTRL 逻辑回归、贝叶斯概率回归,所有这些都是基于大量的、基于 one-hot 编码的稀疏特征。线性模型具有易于实现、学习效率高的优点,但性能相对较低,因为无法它无法学习非平凡的nontrivial 模式来捕获原始特征之间的交互interaction

    另一方面,非线性模型能够利用不同的特征组合,因此有可能提高预估性能。例如:分解机factorization machine: FM 将用户和 item 的二元特征映射到低维连续空间中,并通过向量内积自动探索特征交互;梯度提升树gradient boosting tree: GBT 在生成每棵决策树/回归树的同时自动学习特征组合。然而,这些模型不能利用不同特征的所有可能组合,并且在大特征空间中计算量很大。

    此外,很多模型需要特征工程来手动设计输入特征。

    主流的广告点击率预估模型的另一个问题是:大多数预测模型结构浅、表达能力有限,无法从复杂和海量数据中建模潜在模式。因此,它们的数据建模和泛化能力仍然受限。

    近五年来,深度学习在计算机视觉、语音识别、自然语言处理等领域取得了成功。由于视觉信号、听觉信号、文本信号已知在空间/时间上相关,因此新引入的、在深层结构上的无监督训练能够探索这种局部依赖性local dependency 并建立特征空间的稠密representation,使神经网络模型能够有效地直接从原始特征输入中学习高阶特征。凭借这样的学习能力,深度学习将是估计在线用户响应(如广告点击率)的理想选择。

    然而,CTR 预估中的大多数输入特征都是 multi-field 的,而且是不连续的discrete 、离散的 categorical,例如用户所在城市(London, Paris)、设备类型(PC, Mobile)、广告类目(Sports, Electronics)。另外,输入特征之间的局部依赖性是未知的。因此,了解深度学习如何通过在此类大型 multi-field 离散特征上学习特征 representation 来改进 CTR 预估是非常有意义的。距FNN 论文作者所知,到目前为止还没有使用深度学习方法估计广告点击率的文献。 此外,在大型输入特征空间上训练深度神经网络DNN 需要训练大量参数,这在计算上是昂贵的。例如,不同于图像和音频领域,在 CTR 预估任务中,假设在第一层大约有 100 万个二元输入特征和 100 个隐单元,那么构建第一层神经网络就需要 1 亿个权重参数。

    在论文 《Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction》 中,作者以广告点击率预估作为示例,通过使用有监督和无监督方式的 embedding 方法在大型 multi-field 离散特征空间上研究深度学习。论文介绍了两种类型的深度学习模型,称为因子分解机支持的神经网络Factorization Machine supported Neural Network: FNN 、基于采样的神经网络 Sampling-based Neural Network: SNN 。具体而言:

    • FNN 使用分解机来初始化监督学习的 embedding layer,从而将高维稀疏特征有效地降维到低维稠密连续特征。
    • SNN 是一个深度神经网络,由基于采样的受限玻尔兹曼机sampling-based restricted Boltzmann machine: SNN-RBM 或者基于采样的降噪自编码器 sampling-based denoising auto-encoder: SNN-DAE 提供支持,并且使用了一种负采样方法。

    基于 embedding layer,论文构建了具有全连接的多层神经网络,从而探索非平凡 non-trivial 的数据模式。论文对多个真实世界广告主的广告点击数据进行的实验表明:所提出的模型对 CTR 预估的一致性consistent 的改进优于 state-of-the-art 的模型。

  2. 相关工作:点击率在在线广告中至关重要。为了最大化收入和用户满意度satisfaction,在线广告平台必须预测每个展示广告的预期用户行为,并最大化用户点击的期望。

    当前的大多数模型使用基于一组稀疏二元特征的逻辑回归,这些特征是通过 one-hot 编码从原始离散特征categorical feature 转换而来的。在这个过程中需要大量的特征工程。

    将维度很高的特征向量嵌入到低维 embedding 空间,这对于预测任务很有用,因为它降低了数据和模型的复杂性,并提高了训练和预测的效果effectiveness 和效率efficiency 。人们已经提出了各种 embedding 方法。例如因子分解机Factorization machine: FM 最初是为协同过滤推荐而提出的,被认为是最成功的 embedding 模型之一。FM 天然地可以通过将任意两个特征映射到低维潜在空间中的向量,从而估计它们之间的交互。

    深度学习是人工智能研究的一个分支,它试图开发新技术使得计算机能够处理复杂的任务(诸如识别recognition 和预测prediction )。深度神经网络 DNN 能够从训练数据中提取不同抽象级别的隐藏结构hidden structures 和内在模式 intrinsic patterns,目前已经成功应用于计算机视觉、语音识别、自然语言处理。此外,在无监督预训练的帮助下,我们可以获得良好的特征 representation,引导学习朝着更好泛化的极小值区域发展。

    通常,这些深度模型有两个学习阶段:第一阶段通过无监督学习(即受限玻尔兹曼机RBM或堆叠降噪自编码器SDAE)执行模型初始化,使模型捕获输入数据的分布。第二阶段涉及通过反向传播的监督学习对初始化模型进行微调。

    我们的深度学习模型的新颖之处在于第一层初始化,其中输入的原始特征是从原始离散特征转换而来的高维稀疏二元特征。这种高维稀疏二元特征使得大规模训练传统 DNN 变得困难。与 NLP 中使用的 word embedding 技术相比,我们的模型处理更通用的 multi-field 离散特征,而没有任何假设的数据结构,如 word alignment 以及 letter-n-gram 等。

2.1 模型

  1. 里我们将详细讨论两种 DNN 架构,即因子分解机支持的神经网络 Factorization-machine supported Neural Networks: FNN、基于采样的神经网络 Sampling-based Neural Networks: SNN

    这输入的离散特征是 field-wise one-hot 的。对于每个field(例如 city),有多个unit,每个 unit 代表该field 的一个特定值(例如 city=London),并且只有一个 postive unit (取值为 1)、其它所有 unit 都是 negative(取值为 0)。编码后的特征记作 ,这是很多 CTR 预估模型以及我们 DNN 模型的输入。

2.1.1 FNN

  1. 我们的第一个模型 FNN 基于因子分解机 FM,网络结构如下图所示。网络分为以下几层:

    • 0 层输入层:离散特征经过 one-hot 编码之后作为输入,该层也被称作 sparse binary feature 层。
    • 1embedding 层:输入层经过局部连接生成embedding 向量,该层也被称作 dense real layer 层。
    • 2层到第 层:全连接层。也被称作 hidden layer
    • 最后一层:sigmoid 输出层。

  2. FNN 的核心在于 embedding 向量的生成。假设 one-hot 向量为 包含 fieldfield i 在向量中的起始位置为 、终止位置为 (包含),即 。其中

    每个 field 生成一个 embedding 向量,即 field i 生成 。同时还有全局bias 。因此embedding 层的输出为:

    • 输入位置 仅仅与 相连,即局部连接:,其中 为映射参数。

    • FM 模型初始化,即:

      其中 用于建模特征之间的交互。

      FM 模型中, 为第 个特征的 bias 参数, 为第 个特征的 embedding 向量。field 的取值。 的第 列由向量 初始化。

    • 模型采用逐层预训练,一旦初始化后就冻结 ,直到最后的微调阶段才更新

  3. 一旦求解出 ,就可以计算后续网络:

    其中 为激活函数, 为第 层输出的维度。

    网络每层通过 layer-wise RBM 逐层预训练来初始化。

  4. 通过这种方式,上述神经网络可以更有效地从分解机representation 中学习,从而很自然地绕过了高维二元输入的计算复杂性问题。不同隐层可以看作是不同的内部函数,捕获了数据样本的不同representation 形式。因此,该模型具有更强的捕获内在数据模式的能力。

  5. 在底层使用 FM 的想法是由卷积神经网络CNN 启发的,CNN 通过在相邻层的神经元之间强制执行局部连接模式来利用空间局部相关性。同样地,第一层隐层的输入连接到特定 field 的输入单元。此外,底层不是全连接的,因为 FMone-hot 稀疏编码输入执行 field-wise 训练,从而允许局部稀疏local sparsity ,如上图中的虚线所示。

  6. FM 在潜在空间中学习良好的结构数据representation,有助于构建任何更好的模型。但是,FM 的乘积规则和 DNN 的求和规则之间出现了细微的差异。然而,如果观察到的判别性的信息discriminatory information 是高度模糊的(在我们的广告点击场景下是这样的),后验权重(来自 DNN)不会显著偏离先验权重(来自 FM)。

    此外,隐层(FM 层除外)中的权重通过使用对比散度contrastive divergencelayer-wise RBM 预训练进行初始化,这有效地保留了输入数据集中的信息。

  7. FM 的初始权重通过随机梯度下降 SGD 进行训练。注意,我们只需要更新连接到 positive input 单元的权重,这在很大程度上降低了计算复杂度。

    在对 FM 和上层进行预训练后,我们应用监督微调(反向传播)以最小化交叉熵的损失函数:

    其中 为预估的点击率,ground-truth label

    通过反向传播的链式法则,可以有效地更新包括 FM 权重在内的 FNN 权重。

    时对应梯度为 0,因此只需要更新 中非零的分量对应的参数,这大大降低了参数更新的计算量。

2.1.2 SNN

  1. SNN 的模型如下图 (a) 所示。SNNFNN 的区别在于第一层的结构和训练方法。SNN 的第一层和是全连接的:

    其中 为激活函数, 为第一层的网络参数。

    为了初始化第一层的权重,我们在预训练阶段尝试了受限玻尔兹曼机 restricted Boltz- mann machine: RBM 和降噪自编码器denoising auto-encoder: DAE

    为了处理训练大型稀疏 one-hot 编码数据的计算问题,我们提出了一种基于采样的 RBM(如下图 (b),记作 SNN-RBM),以及基于采样的 DAE(如下图 (c),记作 SNN-DAE),从而有效地计算第一层的初始权重。

    我们不是为每个训练样本集合建模整个 feature set。对于每个特征 field,每个训练样本只有一个 positive value feature ,例如 city= London,并且我们随机采样 negative units (取值为零)。图 (b)(c) 中的黑色单元是未采样到的,因此在预训练数据样本时被忽略。使用采样的单元,我们可以通过对比散度 contrastive divergence 训练 RBM,并通过 SGD 使用无监督方法训练 DAE,从而大大降低数据维度,并具有高的 recovery 性能。

    此外,实值稠密向量用作 SNN 中其它层的输入。

    通过这种方式,我们可以显著降低计算复杂度,进而可以快速计算初始权重,然后执行反向传播来微调 SNN 模型。

     

2.1.3 正则化

  1. 为了防止过拟合,我们在损失函数中加入了广泛使用的 L2 正则化,例如 FNN 中的正则化项为:

    另一方面,我们还实现了 dropout ,并在实验中对这两种正则化方式进行了比较。

2.2 实验

  1. 数据集:我们基于 iPinYou 数据集评估我们的模型,这是一个公开的真实世界展示广告display ad 数据集,包含每个广告曝光信息和相应的用户点击反馈。数据日志由不同的广告主以每条记录的格式进行组织。

    数据集包含 1950 万个数据样本,共有 14790positive label (正样本)。所有的特征都是离散的,特征包括 user agentpartially masked IP、地区、城市、广告交易平台、域名domainURL、广告位ID 等等。经过 one-hot 编码后,整个数据集中的二元特征数量为 937.67K

    在我们的实验中,我们分别使用来自广告主 14582259226129973386 以及整个数据集的训练数据。

  2. baseline 方法:

    • LR:逻辑回归是一种实现简单、训练速度快的线性模型,广泛用于在线广告点击率预估。
    • FM:因子分解机是一种非线性模型,即使在具有巨大稀疏性的问题中也能估计特征交互。
    • FNN:我们提出的分解机支持的神经网络,如前所述。
    • SNN:我们提出的基于采样的神经网络,其中基于采样的 RBM 表示为 SNN-RBM、基于采样的 DAE 表示为 SNN-DAE

    为了衡量每个模型的 CTR 预估性能,我们使用 AUC 指标。

  3. 下表给出了5 个不同广告主和整个数据集上不同模型的比较结果。可以看到:

    • FM 并没有显著优于 LR,这意味着二阶组合特征不足以捕获底层数据模式。

    • 在所有测试集上,FNNSNN 的性能超越了 LRFM

      • 基于FM 学习的潜在结构,FNN 进一步学习这些潜在特征之间的有效模式,并提供对 FM 的一致提升。
      • SNN-DAESNN-RBM 的性能大体上是一致的,即SNN 的结果几乎相同。

  4. 超参数调优:深度神经网络需要调优相当多的超参数,这里展示我们如何实现我们的模型以及调优超参数。

    • 我们使用随机梯度下降来训练模型,训练 epoch 的数量由早停策略来自动决定。
    • 我们尝试了不同的学习率([1, 0.1, 0.01, 0.001, 0.0001]),并选择在验证集上最佳性能的学习率。
    • 对于 SNN-RBMSNN-DAE 的负采样unit,我们尝试每个fieldnegative units 。我们发现 在大多数情况下产生最佳结果。
    • 对于隐层的激活函数,我们尝试了线性函数、sigmoid 函数、tanh 函数,最终发现 tanh 函数的结果最优。
  5. 架构选择:在我们的模型中,我们通过固定所有层的尺寸来研究具有 [3, 4, 5] 层隐层的架构,并发现具有三层隐层(即,包括输入层、输出层一共有五层)的架构在 AUC 性能方面最佳。

    但是如何选择层的尺寸是一个困难。假设具有 层隐层,每一层的隐单元数量取值集合为 [100, 200, 300, 400, 500],那么一共有 种选择。在我们的实验中,我们并没有尝试所有的组合,而是采用另一种策略:所有隐层使用相同数量的隐单元,因为根据经验具有相同尺寸的隐层的架构优于尺寸增加或减小的架构。

    事实上除了尺寸增加、尺寸不变、尺寸减小之外,还有一种更有效的结果,即菱形结构,如下图 (a) 所示。我们将这几种网络结构在不同数据集上进行比较。可以看到:

    • 菱形架构在几乎所有层尺寸设置中都优于其它架构。这种菱形之所以有效,可能是因为这种特殊形状的神经网络对模型容量有一定的约束,这在测试集上提供了更好的泛化能力。
    • 另一方面,菱形架构的最佳隐单元总数为 600,即 (200,300,100) 的组合。这取决于训练样本的数量。针对小规模数据集,如果有太多隐单元可能会导致过拟合。

  6. 正则化:我们比较了 L2 正则化和 dropout 。下图显示了 SNN-RBM 模型采用不同正则化的性能比较。可以看到:在所有情况下 dropout 都优于 L2

    dropout 更有效的原因是:在馈入每个训练样本时,每个隐单元都以 dropout rate 的概率从网络随机排除,即每个训练样本都可以视为一个新的模型,并将这些模型平均为 bagging 的特殊case,这有效地提高了 DNN 模型的泛化能力。

  7. dropout rate:下图显示了 FNNSNN 中, AUC 性能如何随着的 dropout rate 的增加而变化。这里的 dropout rate 指的是每个神经单元处于激活状态的概率(而不是丢弃的概率)。可以看到:

    • 两个模型的性能在开始时都有上升的趋势,然后随着 dropout rate 的不断降低而急剧下降。

    • 这两种模型的区别在于对 dropout 的敏感性不同。

      • 模型 SNNdropout rate 很敏感,这可能是由于 SNN 第一层的全连接而引起的。
      • 模型 FNNdropout rate 相对不敏感,这是因为 FNN 第一层部分连接而引起的。当一些隐单元被丢弃时,FNN 更鲁棒。

      因此,FNNSNN 最佳性能时的 dropout rate 有很大不同。对于 FNN,最佳 dropout rate 大约为 0.8,对于 SNN 大约为 0.99

三、PNN[2016]

  1. 学习和预测用户响应response 在信息检索 information retrieval: IR 的许多个性化任务中起到至关重要的作用,例如推荐系统、web 搜索、在线广告。用户响应预测的目标是估计用户positive response (如点击、购买等)的概率。这个预测的概率表示用户对特定 item (如新闻文章、电商的商品等)的兴趣,并影响后续决策,例如 document ranking、广告出价等等。

    这些 IR 任务中的数据集大多数采用 multi-field 的离散categorical 形式,例如 [Weekday=Tuesday, Gender=Male, City=London] 。通常通过 one-hot 编码将这种形式的特征转换为高维稀疏二元特征。例如包含上述三个 field 的特征向量被 one-hot 编码为:

    许多机器学习模型,包括线性逻辑回归logistic regression: LR 、非线性梯度提升决策树gradient boosting decision tree: GBDT、分解机factorization machine: FM 等等,已经被提出来用于处理此类高维稀疏二元特征并产生高质量的用户响应预测。然而,这些模型高度依赖于特征工程来捕获高阶high-order潜在模式 latent pattern 。因此面对极端的稀疏性,传统模型可能会受限于从数据中挖掘浅层模式的能力。

    最近,深度神经网络 DNN 在分类和回归任务中表现出强大的能力,包括计算机视觉、语音识别、自然语言处理。在用户响应预测中采用 DNN 很有前景,因为 DNN 可以自动学习更具有表达性expressive 的特征并提供更好的预测性能。但是面对高维输入的场景,DNN 模型的参数规模巨大导致难以应用。

    为了改善 multi-field 离散数据交互,《Deep learning over multi-field categorical data: A case study on user response prediction》 提出了一种基于FM 预训练的 embedding 方法。该方法基于拼接的 embedding 向量,并构建了多层感知机MLP 来探索特征交互feature interaction

    然而,embedding 初始化的质量在很大程度上受限于 FM 。更重要的是,感知机layeradd 操作可能无法用于探索 multi-field 中离散数据的交互。先前的工作表明,可以通过特征向量 product 操作而不是 add 操作来有效地探索来自不同field 的特征之间的局部依赖关系。

    为了利用神经网络的学习能力,并以比 MLP 更有效的方式挖掘数据的潜在模式,论文 《Product-based Neural Networks for User Response Prediction》 提出了 Product-based Neural Network: PNN,它具有以下特点:

    • 使用没有预训练的 embedding 层。
    • 基于 embedding 的特征向量构建一个 product layer,从而建模 inter-field 特征交互。
    • 使用全连接的 MLP 进一步提取高阶特征模式。

    论文出了两种类型的 PNN ,分别在 product layer 执行内积 inner product 操作(即 IPNN)和外积 outer product 操作(即 OPNN ),从而有效地对交互模式进行建模。

    论文以在线广告的 CTR 预估为例,探讨 PNN 模型的学习能力。在两个大规模真实世界数据集上的大量实验结果表明:PNN 模型在各种指标上始终优于 state-of-the-art 的用户响应预测模式。

  2. 相关工作:响应预测response prediction 问题通常被表述为基于最大似然或交叉熵的二分类问题。

    从建模的角度来看,线性逻辑回归 logistic regression: LR、非线性梯度提升决策树 gradient boosting decision tree: GBDT 、非线性因子分解机 factorization machine: FM 在工业 application 中得到广泛应用。然而,这些模型在挖掘高阶潜在模式或学习高质量特征 representation 方面受到限制。

    深度学习能够探索高阶潜在模式high-order latent pattern以及泛化的、有表达力的数据 representationDNN 的输入通常是稠密实值向量,而multi-field 离散categorical 数据的解决方案尚未得到很好的研究。

    • 《Deep learning over multi-field categorical data: A case study on user response prediction》 中提出了 Factorization-machine supported neural network: FNN,它通过预训练的 FM 学习离散数据的 embedding 向量。
    • 《A convolutional click prediction model》 中提出了 Convolutional Click Prediction Model: CCPM 来预测广告点击。然而在 CCPM 中,卷积仅在某种对齐 alignment 的相邻 fields 上执行,无法对非相邻 fields 之间的完整交互进行建模。
    • 《Sequential click prediction for sponsored search with recurrent neural networks》 利用 RNN 将用户 queries 建模为一系列用户上下文,从而预测广告点击行为。
    • 《Training product unit neural networks》 提出了 Product unit neural network: PUNN 来构建输入的高阶组合。然而,PUNN 既不能学习局部依赖local dependency ,也无法产生有界的输出bounded output 从而适应响应率response rate (即点击率)。

    在本文中,我们展示了我们的 PNN 模型学习局部依赖和高阶特征交互的方式。

3.1 模型

  1. 我们以在线广告的 CTR 预估为例来描述我们的模型,并探索该模型在各种指标上的表现。 CTR 预估任务是构建一个预估模型从而估计用户在给定上下文中点击特定广告的概率。

    每个数据样本由 multi-field 的离散数据组成,例如用户信息(性别、城市等)、广告信息(广告ID、广告类目ID)、上下文信息(曝光时刻等)。所有信息都表示为一个 multi-field categorical 特征向量,其中每个 field (例如城市)都是 one-hot 编码的,如前所述。

    这种 field-wiseone-hot 编码会导致维数灾难和巨大的稀疏性。此外,field 之间存在局部依赖性 local dependency 和层级结构 hierarchical structure 。因此,我们正在寻求一种 DNN 模型来捕获 multi-field 离散数据中的高阶潜在模式。

    我们提出的 product layer 的想法来自自动探索特征交互。在 FM 中,特征交互被定义为两个特征向量的内积。因此,我们提出了 Productbased Neural Network: PNN 模型。接下来我们详细介绍 PNN 模型并讨论该模型的两种变体,即Inner Product-based Neural Network: IPNN (采用 inner product layer)、Outer Product-based Neural Network : OPNN(采用 outer product layer)。

  2. PNN 模型的架构如下图所示。假设 one-hot 向量为 包含 fieldfield i 在向量中的起始位置为 、终止位置为 (包含),即 。其中 。每个 field 生成一个 embedding 向量,即 field i 生成

    模型包含以下几层:

    • 0 层输入层:categorical 特征经过 one-hot 编码之后作为输入。

    • 1embedding 层:模型从每个 field 中学得各 fieldembedding 表示。

      输入位置 仅仅与 相连,即局部连接:,其中 为映射参数。

    • 2product 层:由embedding 特征的一阶特征和二阶交互特征拼接而成。其中 表示一阶特征, 表示二阶特征。为统一生成方式, 由常数 1 和一阶特征进行交互而生成。

      其中 表示成对特征交互。当定义不同的 函数时,就定义了不同的 PNN 实现。

      product 层的输出为:

      其中:

      • 表示张量的内积,定义为:
      • 类似于 CNN 的卷积核,它们在整个输入上进行张量内积。 表示第 个卷积核,一共有 个卷积核。
    • 3 层到第 层:全连接层。

    • 最后一层:sigmoid 输出层。

    模型的损失函数为 logloss

3.1.1 IPNN

  1. Inner Product-based neural network: IPNNIPNN 的特征交互函数为:

    则有:

    则计算 的复杂度为:

    • 空间复杂度: 。它们分别是计存储 的空间需求。
    • 时间复杂度: 。其中 可以预先计算好,其计算复杂度为
  2. 为降低复杂度,可以将 分解为 ,其中 。则有:

    其中

    则有:

    则计算 的复杂度为:空间复杂度 ,时间复杂度

  3. 仅仅是一阶分解,实际上可以进行更加通用的 阶分解:

    其中 。此时有:

    这种分解的代价更高,同时约束更弱。

3.1.2 OPNN

  1. 给定两个输入向量,向量内积输出一个标量,而向量外积输出一个矩阵。Outer Product-based neural network: OPNN 利用了向量外积,它和 IPNN 的唯一区别在于特征交互函数 。在 OPNN 中,特征交互函数为:

    与内积产生标量不同,这里的外积产生一个矩阵。则

    计算 的复杂度为:

    • 空间复杂度: 。它完全由 主导。
    • 时间复杂度: 。它完全由 主导。
  2. 为降低复杂度,定义:

    此时

    则计算 的复杂度为:空间复杂度 ,它们分别是计存储 的空间需求;时间复杂度:

3.1.3 讨论

  1. FNN 相比,PNN 有一个 product layer。如果移除product layer 中的 部分时,FNNPNN 完全相同。

  2. IPNNFM 模型非常相似。

    • FM 模型将抽取的一阶、二阶特征直接送入分类器。
    • IPMM 模型将抽取的一阶、二阶特征,首先使用类似 CNN 的 “核函数” (由 给出)抽取 个特征,然后将抽取后的特征送入 DNN
  3. PNN 使用 product layer 来探索特征交互。向量的product 可以视为一系列的 “乘法&加法” 操作,内积和外积只是两种不同的实现。

    事实上可以定义更通用或者更复杂的 product layer,从而获得 PNN 更好的探索特征交互的能力。

  4. 类似于电子电路,乘法相当于 AND、加法相当于 ORproduct layer 似乎学习特征以外的规则。因此我们相信在神经网络中引入 product 运算将提高网络对 multi-field 离散数据建模的能力。

3.2 实验

  1. 数据集:

    • CriteoCriteo 1TB 点击日志是著名的广告技术工业 benchmark 数据集。我们选择连续 7 天的样本进行训练,第 8 天的数据进行评估。

      由于数据规模巨大,因此我们对数据集进行负降采样。我们将降采样比例定为 ,将预估的 CTR 定义为 ,重新校准的 CTR 为:

      经过降采样和特征映射之后,我们得到一个数据集,其中包含 7938 万个样本,特征维度为 164 万维。

    • iPinYouiPinYou 数据集是另一个真实世界数据集,记录了超过 10 天的广告点击日志。经过 one-hot 编码之后,我们得到一个包含 1950 万个样本的数据集,特征维度为 937.67K

      我们保留原始的训练/测试拆分方案:对于每个广告主,最后 3 天的数据用作测试集,其余的数据用作训练集。

  2. baseline 方法:

    • LRLR 是工业中使用最广泛的线性模型,它易于实现且训练速度快,但是无法捕获非线性信息。
    • FMFM 在推荐系统和用户响应预测任务中有很多成功的应用。FM 探索特征交互,这对稀疏数据很有效。
    • FNNFNN 能够捕获 multi-field 离散数据的高阶潜在模式。
    • CCPMCCPM 是一种用于点击预估的卷积模型。该模型有效地学习 local-global 特征。然而,CCPM 高度依赖特征对齐feature alignment,并且缺乏解释。
    • IPNN:采用内积的 PNN
    • OPNN:采用外积的 PNN
    • PNN*:该模型的 product layerIPNN product layerOPNN product layer 的拼接。
  3. 模型配置:

    • 所有方法都是基于 TensorFlow 实现,并采样随机梯度下降SGD 来训练。

    • FM 中,我们采用 10 维的分解。相应地,我们在网络模型中采用 10 维的 embedding

    • 网络结构:

      • CCPM1embedding 层、2 个卷积层(具有最大池化)、1 个隐层,一共4 层。
      • FNN1embedding 层、3 个隐层,一共 4 层。
      • 每种 PNN 都有 1embedding 层、1product layer3 个隐层,一共 5 层。
    • 为了防止过拟合,LRFM 模型使用 L2 正则化训练,而 FNN, CCPM, PNN 使用 dropout 训练。

      默认情况下,我们设置 dropout rate = 0.5 。下图给出了 Criteo 数据集上 OPNN 模型的 AUC 随着 dropout rate 变化的曲线。

  4. 评估指标:我们采用评估指标为 AUC 和相对信息增益 Relative Information Gain: RIG。其中,RIG 定义为:NE 为归一化的交叉熵。

    此外,我们还使用 LogLossRMSE 作为额外的评估指标。

3.2.1 模型对比

  1. 不同模型在这两个数据集上的实验结果如下表所示。首先我们关注 AUC 性能,表 I 和表 II 的结果表明:

    • FM 优于 LR,证明了特征交互的有效性。
    • 神经网络优于 LRFM,这证明了高阶潜在模式的重要性。
    • PNN 在所有数据集上表现最好。
    • 另外,结合了 IPNNOPNNPNN* 没有明显优于 IPNNOPNN。我们认为 IPNNOPNN 足以捕获 multi-field 离散数据中的特征交互。

    关于 logloss, RMSE, RIG 指标,结论也是类似的。

  2. 然后我们还在 PNNbaseline 模型之间进行 t-test 。下表给出了两个数据集上 logloss 损失下计算的 p-value 。结果验证了我们的模型相对于 baseline 模型显著提高了用户响应预测性能。

  3. 下图显示了在 iPinYou 数据集上训练迭代的 AUC 性能。可以看到:

    • 我们发现神经网络模型比 LRFM 收敛得更快。
    • 我们还发现,我们提出的两个 PNN 比其它网络模型具有更好的收敛性。

3.2.2 消融研究

  1. 这里我们讨论神经网络架构的影响。对于 IPNNOPNN,我们考虑三个超参数:embedding 维度、网络深度、激活函数。

    由于 CCPM 和其它神经网络几乎没有相似之处,而 PNN* 只是 IPNNOPNN 的组合,因此我们在这里仅比较 FNNIPNNOPNN

  2. embedding layer:我们采用了 FNN 论文中的 embedding layer 的思想。我们比较了不同的 embedding 维度,例如 [2, 10, 50, 100]。但是当维度增加时,模型训练更加困难,并且模型更容易过拟合。在我们的实验中,我们使用 embedding 维度等于 10

  3. 网络深度:我们还通过调整 FNNPNN 中隐层的数量来探索网络深度的影响。我们比较了不同数量的隐层,例如 [1,3,5,7]。下图给出了随着网络深度增长的性能。可以看到:一般而言,具有 3 层隐层的网络在测试集上表现更好的泛化能力。

    为方便起见,我们将卷积层或者 product layer 都称作 representation layer。这些层可以用较少的参数捕获复杂的特征模式,因此训练效率高,并且在测试集上可以更好地泛化。

  4. 激活函数:我们比较三种主要的激活函数,sigmoidtanhrelu。与 sigmoid 族激活函数相比,relu 函数具有稀疏性和梯度计算效率高的优点,有可能在 multi-field 离散数据上获得更多的好处。

    下图比较了 FNNIPNNOPNN 上的这些激活函数。可以看到:

    • tanh 激活函数 比 sigmoid 激活函数具有更好的性能。

    • 除了 tanh,我们发现 relu 函数也有很好的表现。可能的原因包括:

      • 稀疏激活,即负输出的节点不会被激活。
      • 高效的梯度传播,没有梯度消失问题或爆炸问题。
      • 计算效率高,只有比较、加法、乘法运算。

四、DeepCrossing[2016]

  1. 传统的机器学习算法应该充分利用所有输入特征来预测和分类新的样本。然而,简单地使用原始特征很少能够提供最佳结果。因此,无论是工业界还是学术界,都存在大量关于原始特征的特征变换feature transformation 的工作。一种主要的特征变换类型是基于多个特征的特征组合feature combination 函数,并将组合特征combinatorial features 作为学习器 learner 的输入。这些组合特征有时被称作交叉特征cross features 或多路特征multi-way features

    组合特征是强大的工具,尤其是在领域专家domain experts 手中。根据我们自己对主力major 赞助搜索引擎sponsored search engine 的体验,组合特征是许多模型中最强大的特征之一。

    • Kaggle 社区中,顶级数据科学家是制作组合特征的大师,甚至可以交叉crossing 三到五个维度。 直觉intuition 以及创造有效的组合特征的能力是他们获胜的重要组成部分。
    • 在计算机视觉社区中,类似 SIFT 的特征是 ImageNet 比赛当时 state-of-the-art 表现背后的关键驱动因素。SIFT 特征是在图像块 image patches 上提取的,是特殊形式的组合特征。

    组合特征的威力伴随着高昂的成本。在个人开始创建有意义的特征之前,有一个陡峭的学习曲线需要攀登。随着特征数量的增长,管理managing、维护maintaining、部署deploying 组合特征变得具有挑战性。在 web-scaleapplication 中,由于特征数量非常庞大,并且在给定数十亿样本的情况下训练和评估周期很长,因此寻找额外的组合特征来改善现有的模型是一项艰巨的任务。

    深度学习承诺无需人工干预即可从individual 特征中学习。语音、图像领域是最先展示这种潜力的。通过深度卷积神经网络CNN 从特定任务中学习的卷积核,已经取代了手工制作的 SIFT-like 特征,成为图像识别领域的 state-of-the-art 技术。类似的模型已经应用于 NLP application,从零开始构建语言处理模型,而无需进行大量的特征工程feature engineering

    在论文《Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features》 中,论文提出Deep Crossing 模型,从而将深度学习的成功扩展到了更通用的环境中,其中individual 特征具有不同的性质。具体而言,Deep Crossing接受individual 的文本text 特征、离散categorical特征、ID 特征、数值numerical 特征,并根据特定任务自动搜索最佳组合。此外,Deep Crossing 旨在处理 web-scaleapplication 和数据规模。这不仅是因为作者主要对此类 application 感兴趣,还因为在这种规模下运行的通用模型没有太多选择。

    值得注意的是,Deep Crossing 在学习过程中确实以某种方式生成了组合特征,尽管 Deep Crossing 的输出是一个没有这些交叉特征的显式 representation 的模型。

  2. 相关工作:无需手工制作特征的深度神经网络的想法并不新鲜。

    • 80 年代初,Fukushima 报道了一个七层的 Neocognitron 网络,该网络可以从图像的原始像素中识别数字。通过利用部分连接的结构partially connected structureNeocognitron 实现了平移不变性shift invariance,这是视觉识别任务中的一个重要特性。
    • CNN 是由 LeCun 等人在 90 年代后期发明的,具有类似的架构,尤其是部分连接的卷积核。尽管 CNN 作为 recognition engine 具有坚实的基础,但是基于 SIFT-like 特征的分类器主导了图像识别十多年。
    • 2012 年,Krizhevsky 等人提出了 AlexNet,它比基于 SIFTbaseline 的错误率 error rate 降低了接近 11 个绝对百分点。
    • 最近,一个 152 层的残差网络在 2015 年赢得了 ImageNetMS COCO 比赛。

    深度 CNN 的发展鼓舞人心,它表明:即使在十多年来对最佳手动特征进行微调的系统中,深度学习也能够得到改进。换句话说,即使是最有经验的领域专家domain experts 也可能会错过深度 CNN 使用特定于任务的 filters 捕获的特征之间的深度交互deep interaction 。 意识到这一点对我们在 Deep Crossing 方面的工作有着深远的影响。

    深度语义相似性模型 Deep Semantic Similarity Model: DSSM 学习一对文本字符串之间的语义相似性,每个字符串都由称作 tri-letter gram 的稀疏representation 所代表。learning 算法通过将 tri-letter gram 嵌入到两个向量(一个 query embedding 向量、一个 document embedding 向量)中来优化基于余弦距离的目标函数。学习到的 embedding 捕获了单词和句子的语义,应用于赞助搜索sponsored search、问答、机器翻译,并取得了很好的效果。

    分解机 Factorization Machine: FM 以其通用形式对单个特征之间的 d 路交互进行建模。在输入非常稀疏的情况下,FM 展示出比 SVM 更好的结果,但是不清楚 FM 在稠密特征上的表现如何。

    对于 NLP 任务,《Natural language processing (almost) from scratch》 构建了一个统一的神经网络架构,避免了特定任务的特征工程。

  3. 赞助搜索 Sponsered SearchDeep Crossing 是在主力major 搜索引擎的 sponsored search 的背景下讨论的。简而言之,sponsored search 负责在自然搜索organic search 结果旁边展示广告。生态系统中存在三大主体:用户、广告主、搜索平台。平台的目标是向用户展示最符合用户意图user’s intent 的广告,其中用户意图主要是通过特定的 query 来表达。以下是接下来讨论的关键概念。

    • query:用户在搜索框中键入的文本字符串。
    • 关键词keyword:和广告主推广的产品相关的文本字符串,由广告主指定从而匹配用户的 query
    • 标题 title:广告的标题,由广告主指定从而吸引用户的注意力。
    • 落地页landing page:当用户点击相应广告时,用户到达的广告主的产品网站。
    • match type:为广告主提供的关于 keyword 和用户 query 匹配程度的选项,通常是四种类型之一:精确匹配 exact 、短语匹配 phrase 、宽泛匹配 broad、上下文匹配contextual
    • 营销活动 campaign :一组具有相同设置(例如预算、地域定向)的广告,通常用于将广告主的产品归类。
    • 曝光impression:向用户展示的广告实例。曝光通常和运行时run-time 可用的其它信息一起记录。
    • 点击click:表示用户是否点击了曝光的广告。点击通常和运行时可用的其它信息一起记录。
    • 点击率click through rate:总点击次数除以总曝光次数。
    • 点击预测click prediction:搜索平台的点击预估模型,用于预测用户针对给定 query 点击给定广告的可能性。

    sponsored search 只是一种 web-scaleapplication。然而,鉴于问题空间的丰富性、各种类型的特征、以及庞大的数据量,我们认为我们的结果可以推广到具有类似规模的其它application

4.1 Feature Representation

  1. 这里使用下表中列出的 individual 特征,然后对比这些特征的组合特征。这些individual 特征在在线预估阶段可用,也可以用于模型的离线训练。

  2. 单个特征 individual featuresindividual 特征表示为一个向量。 对于诸如 query 之类的文本特征,一个选择是将字符串转换为具有 49292 维的 tri-letter gram 。诸如 MatchType 之类的离散categorical 特征转换为 one-hot 向量。

    sponsored search system 中通常有数百万个 campaign ,简单地将 campaign id 转换为one-hot 向量会显著增加模型的大小。一种解决方案是使用上表中的一对伴随特征 a pair of companion features,其中:

    • CampaignIDone-hot representation ,它仅包含点击次数最多的 top 10000campaigns,而剩余所有的 campaigns 保存在第 10000slot(索引从 0 开始)。
    • CampaignIDCount 覆盖了其它 campaigns (也包括 top 10000campaigns )。这是一个数值特征,用于存储每个 campaigns 的统计信息,如曝光次数、点击率等等。在以下讨论中,这类特征将被称作计数特征counting feature

    目前为止,所有的特征都是稀疏特征或计数特征。

  3. 组合特征combinatorial features:给定单个特征 和单个特征 ,组合特征 。组合特征也有稀疏representation 和稠密representation

    • 稀疏 representation 的一个例子是 CampaignId x MatchType 组合特征,它的维度是 10001 x 4 = 40004 维。
    • 稠密 representation 的一个例子是计算给定 CampaignIdMatchType 组合下的广告点击次数。

    Deep Crossing 避免使用组合特征。它适用于稀疏和稠密的 individual 特征,并支持上述广泛的特征类型。这使得用户可以自由地从他们的特定application 中使用他们选择的特征。虽然收集特征并转换为正确的 representation 仍然需要大量的努力,但是工作仅仅是停留在 individual 特征的层面,剩余的工作交由模型处理。

4.2 模型

  1. DeepCrossing 模型的输入是原始特征,模型有四种类型的Layer

    • Embedding Layer:将原始特征映射成 embedding 向量。

      假设原始特征 one-hot 向量为 field i 在向量中的起始位置为 、终止位置为 (包含),记作 。则 embedding 层的输出为:

      其中 为模型参数, 为第 embedding 的维度。通常有 ,这使得 embedding 之后的维度大大小于原始特征维度。

      对于某些维度较小的原始特征(如维度小于 256),无需进行 embedding 层,而是直接输入到 Stacking Layer 层。如图中的 Feature #2

      需要指出的是:embedding layer 的维度对于模型的整体大小有着显著的影响。即使对于稀疏特征 矩阵本质上也是稠密的。这就是 Deep Crossing 使用伴随特征 companion features 来约束高基数特征high cardinality 维度的原因(降低 )。

    • Stacking Layer:所有 embedding 特征和部分原始特征拼接成一个向量:

      其中: 表示特征拼接, 为原始特征 field 的数量,embedding 向量。如果是直接输入的原始特征,则 表示该原始特征的 one-hot 向量。

    • Residual Unit LayerDeep Crossing 使用稍加修改的残差单元Residual Unit,其中不使用卷积核。据我们所知,这是第一次使用残差单元解决图像识别以外的问题。

      基于残差单元 Residual Unit 构建的残差层,其输出为:

      其中 为残差单元,它跨越了两个 relu layer

      注意:在一个 DeepCrossing 网络中可以有多个残差层。

    • Scoring Layersigmoid 输出层。其输出为:

      其中 为参数, 为前一层的隐向量, 为总的层数。

  2. 模型的损失函数为负的 Logloss

    其中 为总的样本数,ground truth

    当然根据具体任务也可以调整为 softmax 损失函数或者其他损失函数。

  3. Deep Crossing 被应用于各种各样的任务。它也适用于样本量差异很大的训练数据。在所有情况下,都是用相同的模型,无需对层、节点、节点类型进行任何调整。我们认为残差单元可能隐含地执行某种正则化从而导致这种稳定性。

  4. Early Crossing vs Late Crossing:可以将 Deep CrossingDSSM 进行比较。下图是使用 logloss 作为目标函数的改进型 DSSM 的架构。修改后的 DSSM 与点击预测的 application 更密切相关,它在绿色的虚线左侧保留了 DSSM 的基础架构,但使用 logloss 将预测和ground-truth 进行比较。

    DSSM 允许两路文本输入,每路文本输入都由文本的 tri-letter gram 向量来表示。DSSM 具有将特征交互延迟到前向传播后期的特点。在到达 Cosine Distance 节点之前,输入特征通过两条独立路径上的多层变换来完全地嵌入。

    相比之下,Deep Crossing 最多采用一层 single-feature embedding,然后在前向传播的更早阶段开始特征交互。

    实验中我们发现,Deep Crossing 始终优于 DSSM。除了残差单元优越的优化能力之外,在前向传播的早期引入特征交互似乎也起着重要的作用。

  5. Deep CrossingCNTK 提供支持的multi-GPU 平台上实现,具体 CNTK 实现代码和 multi-GPU 平台参考原始论文。

4.3 实验

  1. Deep Crossing 在主力搜索引擎的曝光和点击日志上训练和评估的。下表给出了实验数据集。每个实验将使用训练集、验证集、测试集的组合,由Data Set 列中给出的名字来引用。

    • 只有同一个 group 中的数据集是兼容的,这意味着不同 Type 在时间上没有重叠。例如,使用 all_cp1_tn_b 训练的模型可以使用 all_cp1_vd 进行验证、使用 all_cp1_tt 进行测试,因为它们都属于 group G_3
    • 数据集的 TaskCP1CP2。这两个任务分别代表点击预估 pipeline 中的两个不同模型。在这种情况下,CP1 是两者之间更关键的模型,但是这两个模型在系统中是互补的。
    • Rows 代表了样本数(单位是百万条),Dims 代表了特征维度(单位是千)。

    注意,由于测试集中使用的样本量庞大,所有和 baseline 相比的实验结果在统计上都是显著的。

  1. 实验中,每个 field embedding 维度 。接下来五层网络的维度为 [512, 512, 256, 128, 64]

4.3.1 和 DSSM 对比

  1. 如前所述,我们有兴趣比较 DSSMDeep Crossing。为了公平地比较,我们在 CP1CP2 的数据上训练了 DSSMDeep Crossing,但是将 Deep Crossing 模型限制为使用与 DSSM 相同的数据(即,二者都使用包含一个 pair 的输入,其中包含 query textkeyword or titile text,每个文本都由 tri-letter gram 向量来表示)。

  2. 在第一个实验中,点击预估模型在下表中列出的两个数据集上的任务 CP1 进行训练。在这两个数据集上,Deep Crossing 在相对 AUC 方面都优于 DSSM。注意,这里使用的 DSSM 是前面描述的 logloss 版本。

  3. 在第二个实验中,两个模型都在 text_cp2_tn 数据集上的任务 CP2 进行了训练,并在 text_cp2_tt 数据集上进行了测试。下表给出了 DSSMDeep Crossing、以及我们生产系统中运行的模型的性能结果。

    生产模型在不同的数据集上进行训练,但使用 run-time 记录的预测输出在相同的测试集(text_cp2_tt)上进行测试。

    可以看到:Deep Crossing 的性能比 DSSM 好,但是比生产模型差。这是意料之中的,因为生产模型使用了更多的特征(包括组合特征)、以及经过多年的改进。尽管如此,通过使用 individual query 特征和individual 标题特征,Deep Crossing 距离生产模型仅约 1%

  4. 虽然我们已经展示了 Deep Crossing 从简单的文本输入pair 对中学习的能力,但这并不是它的主要目标。Deep Crossing 的真正力量在于处理很多的 individual 特征,我们将在后续的实验中看到。

4.3.2 文本之外的特征

  1. 我们现在考虑 Deep Crossing 在任务 CP1(训练集 all_cp1_tn_s)上的性能,其中包含Feature Representation 章节列出的大约 20 多个特征。本节的实验没有外部 baseline,我们只会对比具有不同特征组合的 Deep Crossing 的性能。

    这里的目标不是评估相对于其它方法的性能,而是查看 Deep Crossing 的实际效果,并证明其性能会随着特征的添加和删除而发生显著变化。我们将在下一小节中在使用相同的丰富的特征集合的情况下,比较 Deep Crossing 和生产模型的性能。

  2. 在第一个实验中我们对比不同特征子集的 Deep Crossing 的效果,结果下图所示。图中的 logloss 是不同训练 epoch 上验证集的相对 logloss,定义为实际 logloss 除以 All_features 模型在所有 epoch 的最低 logloss

    注意,这里计数特征counting features始终被移除。

    • All_features 模型包含除了计数特征以外的所有特征。不出所料,它在本次实验中所有模型中具有最低的 logloss

    • Only_Q_K 模型仅使用 query textkeyword text,它具有最高的 logloss

      就相对 logloss 而言,Only_Q_KAll_features 之间的差距大约是 0.12。就 AUC 而言,这大约是 7% ~ 8% 的改进。考虑到 AUC0.1% ~ 0.3% 的改进通常被认为对于点击模型而言是显著的,所以这里的提升是巨大的。

    • without_Q_K_T 是一个去除了 query textkeyword texttitle text 的模型(当然也去除了计数特征)。这意味着去掉大部分文本特征会使相对 logloss 增加 0.025

    • without_position 移除了位置特征(当然也去除了计数特征),相对 logloss 增加大约 0.05

  3. 在第二个实验中,我们研究计数特征counting features 如何和其余的 individual 特征交互。如前所述,计数特征在降低高基数high cardinality 特征的维度方面起着重要作用。我们的完整特征集合有五种类型的计数特征。在本实验中,我们只是使用其中之一来演示效果。图中的相对 logloss 的基准是 All_without_counting 模型在所有 epoch 的最低对数 logloss

    • 从图 (a) 可以看到,仅 Counting_only 模型与具有除计数特征之外所有特征的 All_without_counting 模型相比非常弱。
    • (b) 显示了添加计数特征后的结果,其中新模型 All_with_counting 将相对 logloss 减少了 0.02

4.3.3 和生产模型的比较

  1. 到目前为止,问题仍然是 Deep Crossing 是否真的可以击败生产模型,这是最终的 baseline

    为了回答这个问题,我们使用来自生产模型的原始特征的子集训练了一个具有 22 亿个样本的 Deep Crossing 模型。Depp Crossing 在任务 CP1all_cp1_tn_b)数据集上进行训练,并在 all_cp1_tt 上进行测试。生产模型在不同(更大的)的数据及上行进行训练,但使用相同的数据进行测试(基于 run-time 记录的预测输出)。

    结果如下表所示(相对 AUC),可以看到:Deep Crossing 在任务 CP1 的离线 AUC 中的表现轻松超越了生产模型(截至论文发布时,任务 CP2 的结果尚不可用)。

    这一结果非常重要,因为 Deep Crossing 模型仅使用了一小部分特征,并且模型构建和模型维护的工作量要少得多。

五、Wide&Deep[2016]

  1. 推荐系统可以被视为搜索排序系统search ranking system,其中输入 query 是用户和上下文信息的集合,输出是 itemranked list。给定一个 query,推荐任务是在数据库中找到相关 relevantitem ,然后根据某些指标(如点击或购买)对 item 进行排序。

    类似于通用的搜索排序问题,推荐系统中的一个挑战是实现记忆 memorization 和泛化 generalizationmemorization 可以大概定义为学习 item 之间或特征之间频繁的共现 co-occurrence ,并利用历史数据中可用的相关性 correlation 。而 generalization 基于相关性的传递性transitivity of correlation ,并探索历史从未发生或很少发生的新的特征组合new feature combination

    基于 memorization 的推荐通常更具有话题性topical,并且和用户历史互动过的 item 直接相关。和 memorization 相比,generalization 倾向于提高推荐item 的多样性diversity 。在论文《Wide & Deep Learning for Recommender Systems》中,作者聚焦于 Google Play 商店的 app 推荐问题,但是这种方法应该适用于通用推荐系统。

    • 对于工业环境中的大规模在线推荐和排序系统,逻辑回归等广义线性模型generalized linear model 被广泛采用,因为它们简单simple 、可扩展scalable 、可解释interpretable

      这些模型通常使用 one-hot 编码,并且对编码后的二元稀疏特征进行训练。例如,如果用户安装了 Netflix app,那么二元特征 user_installed_app=netflix 的取值为 1

      可以使用对稀疏特征的叉积 cross-product 变换从而有效地实现 memorization ,例如交叉特征 AND(user_installed_app=netflix, impression_app=pandora),如果用户安装了 Netflix app 并且被曝光过 Pandora app,该交叉特征的取值为 1 。这解释了 feature pair 的共现 co-occurrence 如何与 target label 相关。可以通过使用更粗粒度的交叉特征来添加generalization ,例如 AND(user_installed_category=video, impression_category=music) ,但通常需要手动进行特征工程。

      叉积变换 cross-product transformation 的一个限制是它们不能泛化到没有出现在训练数据中的 query-item feature pair

    • embedding-based 模型,例如分解机factorization machine: FM 或深度神经网络DNN,可以通过为每个 query 特征或 item 特征学习一个低维稠密 embedding 向量来泛化到历史未见过unseenquery-item feature pair ,并且特征工程的负担更小。

      然而,当底层的 query-item 矩阵稀疏时,例如具有特定偏好的用户或者特定领域的小众 item ,那么很难为 queryitem 学习有效的低维 representation。在这种情况下,大多数 query-item pair 对之间没有交互,但是稠密 embedding 将导致所有 query-item pair 对之间的非零预测,因此可能会过度泛化over-generalize 并做出不太相关的推荐。

      另一方面,具有叉积特征变换的线性模型可以用更少的参数记住这些特定偏好或者小众产品的 “异常规则exception rules ”。

    在论文 《Wide & Deep Learning for Recommender Systems》中,作者通过联合训练线性模型组件和神经网络组件,提出了 Wide & Deep 学习框架,从而在一个模型中同时实现了 memorizationgeneralization。论文的主要贡献包括:

    • 联合训练具有 embedding 的神经网络模型、以及具有特征变换的线性模型的 Wide & Deep 学习框架,从而用于具有稀疏输入的通用推荐系统。
    • 在拥有超过 10 亿活跃用户、100appmobile app store Goole Play 上实现和评估 Wide & Deep
    • 开源了模型的实现以及 TensorFlow 中的高级 API。虽然想法很简单,但是作者表明 Wide & Deep 框架显著提高了 mobile app storeapp 下载率acquisition rate ,同时满足了训练和serving 速度的要求。
  2. 相关工作:

    • embedding:将带叉积变换的 wide 线性模型与带稠密 embeddingdeep神经网络模型相结合的想法受到先前工作的启发,例如分解机factorization machine: FMFM 通过将两个变量之间的交互interaction 分解为两个低维 embedding 向量之间的内积,从而为线性模型增加泛化能力。

      在本文中,我们通过神经网络(而不是内积)来学习 embedding 之间的高度非线性交互,从而扩展模型容量。

    • 联合训练 & 快捷连接:在语言模型中,已经提出了 RNN 和具有 n-gram 特征的最大熵模型的联合训练,以通过学习输入和输出之间的直接权重来显著降低 RNN 的复杂性(如隐层大小)。在计算机视觉中,深度残差学习deep residual learning 已被用于降低训练更深模型的难度,并通过跳过一层或多层的快捷连接shortcut connection 来提高准确性。神经网络和图模型graph model 的联合训练也应用于从图像中估计人体姿态。

      在这项工作中,我们探索了前馈神经网络和线性模型的联合训练,其中线性模型是将稀疏特征和输出单元直接相连,从而用于稀疏输入数据的通用推荐和排序问题。

    • 推荐系统:在推荐系统文献中,协同深度学习collaborative deep learning 将内容信息的深度学习和评分矩阵的协同过滤collaborative filtering: CF 相结合。之前也有关于 mobile app 推荐系统的工作,如 AppJoy,它在用户的 app 使用记录上应用 CF

      和之前工作中基于 CF 或基于内容的方法不同,我们联合训练 Wide & Deep 模型。

  3. memorizationgeneralization 对于推荐系统都很重要。wide 线性模型可以使用叉积特征变换有效地记住稀疏特征交互,而 deep 神经网络可以通过低维 embedding 泛化到以前未见过的特征交互。我们提出了 Wide & Deep 学习框架来结合这两种模型的优势。

    即:广义线性模型表达能力不强,容易欠拟合;深度神经网络模型表达能力太强,容易过拟合。二者结合就能取得平衡。

5.1 模型

  1. app 推荐系统的整体架构如下图所示。推荐的流程如下:

    • 当用户访问 app store 时产生一个 query,它包含用户特征(如用户画像)和上下文特征(如当前时刻LBS 信息、设备信息)。
    • 推荐系统返回一个 app list(也称作曝光impression),用户可以在这些 app list 上执行某些操作,如点击或购买。这些用户操作,连同 query 和曝光,作为 learner 的训练数据记录在日志中。

由于数据库中有超过一百万个 app,因此很难在服务延迟要求(通常在 毫秒)内为每个 query 对每个 app 进行详尽exhaustively 地评分。因此,推荐系统收到 query 的第一步是检索 retrieval。检索系统使用各种信号返回与 query 最匹配的 itemshort list,这些信号通常是机器学习模型和人类定义规则的组合。

减少候选池之后,ranking 系统根据分数score对所有 item 进行排序。这个分数通常是 ,即给定特征 的条件下用户动作标签action label 的概率。其中,特征包括用户特征(如国家、语言、人口统计特征)、上下文特征(如设备、曝光发生在一天中的小时)、曝光特征(如 app ageapp 历史统计数据)。

在本文中,我们聚焦于使用 Wide & Deep 学习框架的 ranking 模型。

  1. Wide & Deep 模型包含一个 wide 组件和一个 deep 组件,模型架构如下图所示。

    • wide 组件:wide 组件是一个广义线性模型:

      其中 为输入的 维特征向量, 为模型参数。

      这里的输入特征包括原始输入特征、以及特征变换之后的特征。最重要的特征变换之一是叉积变换 cross-product transformation,定义为:

      其中 是一个布尔变量,其取值表示第 个特征变换 是否包含第 个原始特征。

      对于二元特征,叉积变换(例如 AND(gender=female, language=en))当且仅当构成特征(如 gender=femal 以及 language=en)全部为 1 时才取值为 1,否则取值为 0。这捕获了二元特征之间的交互interaction ,并给广义线性模型增加了非线性。

    • deep 组件:deep 组件是一个前馈神经网络。对于离散categorical 特征,原始输入是特征字符串(如 language="en")。这些稀疏的高维离散特征都首先被转换为低维稠密的实值向量,通常被称作 embedding 向量。embedding 向量的维度通常在 的量级上。

      embedding 向量随机初始化,然后训练来最小化模型的目标损失函数。这些低维稠密 embedding 向量然后在前向传播中被馈入到神经网络的隐层。具体而言,每个隐层执行以下计算:

      其中: 为隐层的编号, 为激活函数, 为第 层待训练的权重矩阵和 bias 向量。

  2. 联合训练Joint Trainingwide 组件和 deep 组件使用它们输出加权和的对数几率log odds 作为预测,从而组合这两个组件。

    注意,联合训练和集成训练存在区别:

    • 组合方式的差异:

      • 在集成训练中,各个模型在彼此不了解的情况下独立训练,并且它们的预测仅在推断时(而不是在训练时)进行组合。
      • 相比之下,联合训练通过在训练时考虑 wide 组件和 deep 组件以及它们的加权和来同时优化所有参数。
    • 模型大小的差异:

      • 对于集成训练而言,由于训练是独立的,每个独立的模型的大小通常需要更大(例如,具有更多特征和变换),从而达到合理准确性的 ensemble
      • 相比之下,对于联合训练,wide 部分只需要通过少量的叉积特征变换来补充deep 部分的弱点,而不是 full-sizewide 模型。

    Wide & Deep 模型的联合训练是通过使用 mini-batch 随机优化,将输出梯度同时反向传播到模型的 wide 部分和 deep 部分来完成的。在实现中,我们使用带 L1 正则化的 Follow-the-regularized-leader: FTRL 算法作为 wide 部分的优化器,使用 AdaGrad 算法作为 deep 部分的优化器。

    对于逻辑回归问题,模型的预测是:

    其中:

    • 为二元class label 为原始输入特征。
    • sigmoid 函数。
    • 为原始输入特征的叉积变换,而 || 表示向量拼接。
    • deep 部分最后一个隐层的输出隐向量,deep 部分的隐层数量。
    • wide 部分的加权系数,deep 部分的加权系数,bias

5.2 实现

  1. Wide&Deep 模型的实现如下图所示。模型的 Pipeline 分为三个部分:数据生成 data generation 、模型训练 model training、模型服务model serving

  2. 数据生成 data generation :此阶段把一段时间内的用户曝光数据生成训练样本,每个样本对应一次曝光,标签为用户是否产生行为(如:下载 app)。

    在这个阶段执行两个特征工程:

    • 离散的字符串特征(如app name)映射成为整数ID ,同时生成映射字典vocabulary

      注意:对于出现次数低于指定阈值(如 10 次)的字符串直接丢弃,这能够丢弃一些长尾的、罕见的字符串,降低字典规模。

    • 连续特征归一化为 [0,1] 之间的值:将特征取值 根据累计分布函数 划分为 个分位数。对于第 个分位数,归一化为 。分位数的边界是在数据生成期间计算的。

  3. 模型训练 model training:我们在实验中使用的模型结构如下图所示。在训练过程中,我们的输入层接收训练数据和词表vocabularies ,并生成稀疏特征、稠密特征以及 label

    • wide 组件包括用户已经安装 app、用户曝光app 的叉积变换。

    • 对于 deep 组件,每个离散特征学习一个 32 维的 embedding 向量。我们将所有 embedding 特征和稠密特征拼接在一起,产生大约 1200 维的稠密向量,然后馈入 3ReLU 层,最后馈入 logistic 输出单元。

    • Wide & Deep 模型在超过 5000 亿个样本上进行了训练。每次有新的训练数据集到达时,模型都需要重新训练。然而,每次从头开始重新训练在计算上代价昂贵,并且会延迟从数据arrivalserving 一个updated 模型之间的时间。

      为了应对这一挑战,我们实现了一个热启动warm-starting 系统,该系统使用先前模型的 embedding 和线性模型权重(即 wide 部分)来初始化新模型。

    • 在将模型加载到 model servers 之前,先对模型进行一次试运行,从而确保它不会在 serving 实时流量时造成问题。作为一种健全性检查sanity check,我们根据经验对照前面的模型来验证模型质量。

  4. 模型服务 model serving:模型经过训练和验证后,我们将其加载到 model servers 中。

    对于每个请求,serverapp 检索系统接收一组 app 候选,以及接收用户特征,从而对每个 app 进行打分。然后,app 根据最高分到最低分进行排序,我们按照这个顺序向用户展示 app。分数是通过在 Wide & Deep 模型上运行前向推断来计算的。

    为了以 10ms 的速度处理每个请求,我们通过并行运行较小的 batch 来执行多线程并行multithreading parallelism 从而优化性能,而不是在单个 batch 推断步骤中对所有候选 app 进行打分。

5.3 实验

  1. 为了在真实世界的推荐系统中评估 Wide & Deep learning 的有效性,我们进行了在线实验,并从几个方面评估了系统:app 下载acquisitionserving 性能。

  2. app 下载:我们在 A/B test 框架中进行了为期3 周的实时在线实验。

    • 对照组:我们随机选择 1% 的用户并展示由先前版本的排序模型生成的推荐,这是一个高度优化的 wide-only 逻辑回归模型,具有丰富的叉积特征变换。
    • 实验组:我们随机选择 1% 的用户提供由 Wide & Deep 模型生成的推荐,并使用相同的特征集合来训练。
    • 对照组 2 :我们随机抽取 1% 的用户提供具有deep 部分 deep-only 神经网络模型生成的推荐,并使用相同的特征集合来训练。

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

    • Wide & Deep 模型相对于对照组将 app acquisition rate 提升了 +3.9%(统计显著)。
    • Wide & Deep 模型相对于 deep-only 模型有 +1% 的提升(统计显著)。

    除了在线实验之外,我们还展示了离线 holdout 数据集上的 AUC 性能。可以看到:虽然 Wide & Deep 的离线 AUC 略高,但是对在线流量的影响更为显著。一个可能的原因是离线数据集中曝光和 label 是固定的,而在线系统可以通过将 generalizationmemorization 相结合来生成新的探索性推荐,并从新的用户响应user response 中学习。

  3. serving 性能:由于我们的商业mobile app store 面临很高的流量,因此提供高吞吐量和低延迟的服务具有挑战性。在流量峰值,我们的推荐 server 每秒可以处理超过 1000 万个 app。使用单线程,对单个 batch 中的所有候选 app 进行打分需要 31ms

    我们实现了多线程并行,并将每个 batch 拆分为更小的尺寸,这将客户端延迟显著降低到 14ms(包括 serving 开销),如下表所示。

六、DCN[2017]

  1. 点击率CTR 预估是一个大规模问题,对价值数十亿美金的在线广告行业至关重要。在广告行业中,广告主向媒体平台付费从而在媒体的网站上展示他们的广告。一种流行的付费方式是按点击付费cost-per-click: CPC,其中仅发生点击的时候平台才向广告主收费。因此,平台的收入很大程度上依赖于准确预估点击率的能力。

    特征工程一直是许多预测模型成功的关键。识别常见的、预测性predictive 的特征,并同时探索未见的unseen 或罕见的交叉特征 cross feature 是做出良好预测的关键。然而,这个过程并不简单,而且通常需要手动特征工程或详尽的搜索exhaustive searchingweb-scale 推荐系统的数据大多数是不连续discrete 的、离散categorical 的,导致特征空间庞大而稀疏,这对特征探索带来了挑战。因此大多数大型系统限制为线性模型,如逻辑回归 logistic regression

    线性模型简单simple 、可解释interpretable、且易于扩展scale ,然而它们的表达能力有限。另一方面,交叉特征cross features 已被证明在提高模型的表达能力方面具有重要意义。不幸的是,交叉特征通常需要手动特征工程或详尽的搜索exhaustive search 来识别 。此外,泛化到未见过unseen 的特征交互 feature interactions 是困难的。

    DNN 模型能够自动学习特征交互feature interactions,然而它们隐式地生成所有交互,并且在学习某些类型的交叉特征cross features 时不一定有效。

    在论文 《Deep & Cross Network for Ad Click Predictions》 中,通过引入一种新颖的神经网络结构,交叉网络 cross network ,以自动方式显式应用特征交叉 feature crossing ,从而避免特定于任务的特征工程。交叉网络由多个交叉层组成,其中交互的最高阶 highest-degree 由层的深度决定。每一层在现有阶次交互的基础上产生更高阶的交互,并保留来自前一层的交互。

    交叉网络和深度神经网络 DNN 联合训练。DNN 虽然可以捕获跨特征across features的非常复杂的交互,但是和交叉网络相比,DNN 需要几乎高一个数量级的参数、无法显式地形成交叉特征cross features 、并且可能无法有效地学习某些类型的特征交互。通过联合训练交叉网络和 DNN 网络,模型可以有效地捕获预测性的特征交互,并且在 Criteo CTR 数据集上提供了 state-of-the-art 的性能。

  2. 相关工作:由于数据集的大小和维度的急剧增加,已经提出了许多方法来避免大量的任务特定task-specific的特征工程,这些方法大多数基于 embedding 技术和神经网络。

    • 因子分解机 Factorization machine: FM 将稀疏特征投影到低维稠密向量上,并从向量内积中学习特征交互。

      field 感知因子分解机 field-aware factorization machine: FFM 进一步允许每个特征学习多个向量,其中每个向量与一个 field 相关联。

      遗憾的是,FMFFM 的浅层结构限制了它们的表达能力representative power 。已经有工作将 FM 扩展到更高阶,但是一个缺点在于它们的大量参数会产生高昂的计算成本。

    • 由于 embedding 向量和非线性激活函数,深度神经网络 DNN 能够学习重要的高阶 high-degree 特征交互。

      残差网络最近的成功使得训练非常深的网络成为可能。Deep Crossing 扩展了残差网络,并通过 stacking 所有类型的输入来实现自动特征学习 feature learning

    深度学习的显著成功引发了对其表达能力的理论分析。有研究表明,在给定足够多的隐单元或隐层的情况下,DNN 能够在某些平滑性假设smoothness assumption 下以任意准确性逼近任意函数。此外在实践中,已经发现 DNN 在参数数量适中的情况下运行良好。一个关键的原因是:大多数具有实际兴趣practical interest 的特征都不是任意的。

    然而,剩下的一个问题是:在代表这种实际兴趣的特征方面,DNN 是否确实是最有效的。在 Kaggle 竞赛中,很多获胜解决方案中的手工制作特征都是低阶low-degree 的,以显式的格式explicit format并且有效。另一方面,DNN 学习的特征是隐式的,且高度非线性。这为设计一个能够比通用 DNN 更有效、更显式地学习有界阶次特征交互的模型提供了启发。Wide & Deep 模型就是这种精神的典范,它将交叉特征 cross features 作为线性模型的输入,并与 DNN 模型联合训练线性模型。然而,Wide & Deep 的成功取决于交叉特征的正确选择,这是一个指数问题,目前还没有明确有效的方法。

  3. 论文 《Deep & Cross Network for Ad Click Predictions》 提出了深度交叉网络 Deep & Cross Network: DCN 模型,该模型支持具有稀疏和稠密输入的 web-scale 自动特征学习。DCN 有效地捕获有界阶次的特征交互,学习高度非线性交互,不需要手动特征工程或详尽的搜索,并且计算成本低。

    论文的主要贡献包括:

    • 提出了一种新颖的交叉网络,它在每一层显式地应用特征交叉,有效地学习有界阶次的、预测性的交叉特征,并且无需手动特征工程或详尽的搜索。
    • 交叉网络简单而有效。根据设计,多项式最高阶次在每一层都增加,并且由层的深度来决定。网络由最低阶到最高阶的所有阶次的、系数不同的交叉项cross terms 来组成。
    • 交叉网络内存高效,易于实现。
    • 实验结果表明,采用交叉网络的DCNloglossDNN 更低,而且 DCN 的参数数量相比 DNN 要少了接近一个量级。

6.1 模型

  1. 我们将描述 DCN 模型的架构,如下图所示。DCN 模型从 embedding and stacking 层开始,然后是并行的交叉网络和深度网络,然后是一个组合层 combination layer 从而拼接了来自两个网络的输出。

  2. Embedding and Stacking Layer:我们考虑具有稀疏和稠密特征的输入数据。在 CTR 预估等 web-scale 推荐系统中,输入主要是离散特征,如 country=usa 。这些特征通常被编码为 one-hot 向量,如 [0, 1, 0] 。然而,这通常会导致大型词表vocabulary 的高维特征空间。

    为了降低维度,我们采用 embedding 技术将这些二元特征转换为实值的稠密向量(通常称作 embedding 向量):

    其中:

    • 为第 fieldone-hot 向量。
    • 为第 fieldembedding 向量。
    • 为待优化的、对应的 embedding 矩阵,embedding size 为第 field 的词表大小。

    最后我们将 embedding 向量以及归一化的稠密特征 stack(即拼接)到单个向量中:

    其中: 为输入的field 的数量, 为稠密特征维度, 表示向量拼接操作。

  3. Cross Network:我们新颖的交叉网络的核心思想是:以有效的方式应用显式的特征交叉。

    交叉网络由交叉层cross layers 来组成,每层可以公式化为:

    其中:

    • 为第 层交叉层的输出。
    • 为第 层交叉层的参数,

    注意:这里没有非线性激活函数,因此每一层的输出都是 的线性函数。

    每个交叉层在特征交叉函数 之后加上它的输入,这使得交叉函数 拟合残差

    单个交叉层的可视化如下图所示。

    • 高阶特征交互:交叉网络的特殊结构导致交叉特征的阶次随着层的深度而增加。 层交叉网络的最高多项式阶次(就输入 而言)是

      事实上,交叉网络包含输入 中所有阶次从 的交叉项 cross term 。详细参考后面的分析。

    • 复杂度分析:假设交叉层的数量为 ,交叉层输入特征维度为 ,那么交叉网络的参数数量为

      交叉网络的时间和空间复杂度在输入维度 上是线性的。因此,和deep 组件(DCNdeep 部分)相比,交叉网络引入的复杂度可以忽略不计,使得 DCN 的整体复杂度保持在和传统 DNN 相同的水平。这种效率得益于矩阵 rank-one 属性(即这个矩阵的秩为 1 ),这使得我们能够生成所有交叉项,而无需计算或存储整个矩阵。

    交叉网络的参数太少从而限制了模型的容量。为了捕获高度非线性交互,我们引入了一个并行的深度网络 Deep Network

  4. Deep Network:深度网络是一个全连接的前馈神经网络,每一个 deep layer 可以公式化为:

    其中: 为激活函数, 的向量长度。

    • 复杂度分析:假设所有隐层的维度都是 ,一共 层,则deep network 的参数数量为:

      其中:

      • 输入为 ,所以第一层的参数数量为
      • 后续的 层,每一层的参数数量为
  5. Combination Layer:组合层将来自两个网络的输出拼接起来,并将拼接后的向量馈入标准的 logits 层。

    对于二类分类问题,这可以公式化为:

    其中:

    • 为交叉网络的输出, 为深度网络的输出,|| 表示向量拼接。
    • logits 层的权重向量,logits 层的biassigmoid(.)sigmoid 激活函数。
  6. 模型的损失函数为带正则化的对数似然函数:

    其中: 为样本数量, 为样本的真实 labelL2 正则化系数。

    我们联合训练交叉网络和深度网络,因为这允许每个 individual 网络在训练期间了解其它网络。

6.2 理论分析

  1. 这里我们从理论上分析 DCN 的交叉网络,从而了解它的有效性。交叉网络 可以理解为:多项式逼近 polynomial approximationFM 泛化generalization to FM 、或者有效投影efficient projection

  2. 在这里为了讨论方便,我们假设所有的 bias 项都是零。记 的第 个元素为 。令 ,交叉项为 ,其中 为每一项的度 degree,并且 为非负整数。则该交叉项的度为:

    如果多项式中有多个交叉项,则多项式的度degree (也称作阶次)为所有交叉项中degree 的最大值。

  3. 多项式逼近polynomial approximation: 根据 Weierstrass 逼近定理,任何在一定平滑性假设smoothness assumption 下的函数都可以通过多项式以任意准确性逼近。因此我们从多项式逼近的角度来分析交叉网络。特别是,交叉网络以一种有效的、表达能力强的、以及更好地泛化到真实世界数据集的方式来逼近相同阶次的多项式。

    定义多项式:

    该多项式的项一共有 个,即参数数量有 个。

    我们表明,在只有 个参数的情况下,交叉网络可以包含相同阶次多项式中出现的所有交叉项,每个交叉项的系数彼此不同。

    定理:考虑一个 层的交叉网络,第 层定义为 。定义交叉网络的输入 ,交叉网络输出为 ,其中 为参数。则多元多项式 复现 reproduces 了以下的多项式:

    其中:

    • 无关的常量。
    • 为索引向量 ,
    • 为索引向量, 为索引 的所有排列组合构成的集合。

    证明见原始论文。

  4. FM 泛化generalization to FM :交叉网络和 FM 模型一样具有参数共享 parameter sharing 的精神,并进一步将其扩展到更深的结构。

    • 相同点:在 FM 模型中,特征 关联一个权重向量 ,交叉项 的权重计算为 。在 DCN 中,特征 关联一组标量 ,交叉项 的权重是来自集合 的参数的乘积。两种模型中,每个特征都学习了一些独立于其它特征的参数,交叉项的权重是相应参数的某种组合。

      参数共享不仅使模型更加高效,而且使模型能够泛化到未见unseen 的特征交互,并对噪声具有更强的鲁棒性。例如,以具有稀疏特征的数据集为例。如果两个二元特征 在训练数据中很少同时出现或者从未同时出现,那么针对交叉项 学习的权重将没有任何有意义的预测信息。

    • 不同点:FM 是一种浅层结构,仅限于表达二阶交叉项。相反,DCN 能够表达 阶交叉特征,其中 为交叉网络的深度。因此,交叉网络将参数共享的思想从单层扩展到多层以及高阶交叉项。注意,和高阶 FM 不同,交叉网络中的参数数量仅随输入维度 线性增长。

  5. 有效投影 efficient projection :交叉网络的每一层都是在 之间计算成对交互pariwise interaction,然后投影到 维。

    其中:

    • 行向量包含了 个元素,它代表成对交互pariwise interaction
    • 投影矩阵是一个分块对角矩阵,由 作为列向量来构成。

6.3 实验

  1. 这里我们在一些热门的分类数据集上评估 DCN 的性能。

  2. 数据集 为Criteo Display Ads 数据集,用于预测广告点击率。数据集包含 13 个整数特征和 26 个离散特征categorical features,这些离散特征的基数cardinality 都很高。

    数据集包含 7 天的 11GB 用户日志,大约 4100 万条记录。我们使用前 6 天的数据进行训练,第 7 天的数据随机分成大小相等的验证集和测试集。

    对于该数据集,logloss0.001 的改进都被认为具有实际意义。当考虑到庞大的用户规模,预测准确性的小幅提升可能会导致公司收入的大幅增加。

  3. 实现:DCN 是用 TensorFlow 实现的,我们简要讨论使用 DCN 进行训练的一些实现细节。

    • 数据处理和 embedding

      • 通过应用对数变换log transform 来对实值特征进行归一化。
      • 对于离散特征,我们将特征嵌入到维度为 维的 embedding 向量。然后拼接所有 embedding 从而得到一个维度为 1026 的向量。
    • 优化 optimization:我们使用 Adam 优化器应用了 mini-batch 随机优化,batch size 设置为 512 。我们在深度网络部分采用了 batch normalization,并将梯度裁剪设为 100

    • 正则化regularization:我们使用了早停策略early stopping,因为我们发现 L2 正则化或 dropout 没有效果。

    • 超参数:我们根据隐层数量、隐层维度、初始学习率、交叉层的数量执行 grid search ,然后在实验中报告最佳超参数的结果。

      • 对于所有模型(包括 baseline ),隐层数量从 2 ~ 5、隐层维度从 32 ~ 1024,初始学习率从 1e-4 ~ 1e-3,增量为 1e-4
      • 对于 DCN模型,交叉层数量从 1 ~ 6

      所有实验都在训练step = 150000 处早停,超过该时刻开始发生过拟合。

  4. baseline 方法:我们将 DCN 和五种模型进行比较:没有交叉网络的 DCN 模型(DNN)、逻辑回归 (LR)、因子分解机(FM)、Wide & DeepW&D)、Deep CrossingDC)。

    • DNNembedding 层、输出层、超参数调优过程和 DCN 完全相同,它和 DCN 模型的唯一区别在于 DNN 没有交叉层。

    • LR:我们使用了 Sibyl,一种用于分布式逻辑回归的大规模机器学习系统。整数特征在对数尺度下离散化。交叉特征是由复杂的特征选择工具来选择的。所有的 single 特征都被使用。

    • FM:我们使用一个带有专属细节proprietary detailsFM-based 模型。

    • W&D:和 DCN 不同的是,W&Dwide 组件将原始稀疏特征作为输入,并依赖于详尽的搜索exhaustive searching 和领域知识 domain knowledge 来选择预测性的交叉特征。

      我们跳过了和 W&D 的比较,因为没有什么好的方法来选择交叉特征。

    • DC:和 DCN 相比,DC 没有形成显式的交叉特征。DC 主要依靠 stacking(即 embedding 向量拼接) 和残差单元来构建隐式交叉特征。

      我们应用了和 DCN 相同的 embedding 层(即 stacking),然后是另一个 ReLU 层作为一系列残差单元的输入。残差单元的层数从 1 ~ 5 来调优,隐层维度从 1001026 来调优。

6.3.1 性能比较

  1. 这里我们首先比较不同模型的 logloss 性能,然后我们详细比较了 DCNDNN,即进一步研究了交叉网络带来的影响。

  2. 不同模型的最佳测试 logloss 参考下表。最佳超参数为:

    • DCN 模型:使用2deep layer,每层维度 1024;使用 6cross layercross layer 的维度不需要调优,因为该层的维度就等于 的维度
    • DNN 模型:使用 5deep layer,每层维度 1024
    • DC 模型:使用 5 层残差单元,残差单元的输入维度为 424、残差单元隐层维度为 537
    • LR 模型:使用 42 个交叉特征。

    可以看到:

    • 最佳的性能是在最深的交叉架构中发现的,这表明交叉网络的高阶特征交互是有价值的。
    • DCN 大大优于所有其他模型。特别是,它优于 state-of-the-artDNN 模型,但是仅使用了 DNN 中消耗的 40% 的内存。

    对于每个模型的最佳超参数设置,我们还报告了 10 次独立运行的测试集logloss 的均值和标准差::DCN DNN DC 。可以看到,DCN 始终大幅优于其它模型。

  3. 考虑到交叉网络仅引入了 个额外的参数,我们将 DCN 与其 deep network ,一个传统的 DNN,进行比较,并在改变内存预算和 loss 阈值的同时展示了实验结果。

    给定一定数量参数, loss 被报告为在所有学习率和模型结构中最好的验证损失。我们的计算中省略了 embedding 层中的参数数量,因为它在两个模型中都相同。

    • 下表报告了实现目标 logloss 阈值所需的最少参数数量(比如 表示 7.9 万个参数)。可以看到,DCN 的内存效率比 single DNN 高出近一个量级。这要归功于更有效地学习有界阶次特征交互的交叉网络。

    • 下表比较了受固定内存预算影响的神经网络模型的性能,指标为验证集 logloss。可以看到,DCN 始终优于 DNN

      • 在少量参数small-parameter 的情况下,cross network 中的参数数量和deep network 中的参数数量相当,显著的改进表明 cross network 在学习有效特征交互方面更有效。
      • 在大型参数 large-parameter 的情况下,DNN 弥补了一些差距,但是 DCN 仍然在很大程度上优于 DNN。这表明 DCN 可以有效地学习某些类型的有意义的特征交互,这些特征交互即使是巨大的 DNN 模型也无法学习。

  4. 我们通过展示将交叉网络引入给定 DNN 模型的效果来更详细地分析 DCN。我们给出在相同的层数和层维度的情况下比较 DNNDCN 的最佳性能,然后对于每个设置,我们展示了验证集 logloss 如何随着添加更多 cross layer 而变化。

    下表给出了 DCNDNN 模型在 logloss 上的绝对差异(需要乘以 ),负值表示 DCN 超越了 DNNNodes 表示 deep network 隐层维度,layers 表示 cross network 深度。 DNN 模型相当于将 DCN 模型的 cross layer 层数设为 0

    可以看到:在相同的实验设置下,来自 DCN 模型的最佳 logloss 始终优于来自相同结构的 single DNN 模型。所有超参数的改进都是一致的,这缓解了初始化和随机优化带来的随机性的影响。

  5. 下图显示了我们在随机选择的设置上增加 cross layer 层数对验证 logloss 的改进。cross layer 层数为 0 表示 single DNN 模型。 layers 表示deep layer 层数,nodesdeep layer 隐层维度。不同的符号表示deep network不同的超参数。

    可以看到:

    • 当向DNN 模型中添加 1cross layer 时,会有明显的改进。
    • 随着更多 cross layer 的引入,对于某些设置的 logloss 继续下降,表明引入的交叉项在预测中是有效的;对于其他设置的logloss 开始波动,甚至略有增加,这表明引入的更高阶次的特征交互没有帮助。

6.3.2 Non-CTR 数据集

  1. 我们表明DCNNon-CTR 预测问题上表现良好。我们使用了来自 UCI repositoryforest covertype 数据集(包含 581012 个样本和 54 个特征)、以及 Higgs 数据集(包含 1100 万个样本和 28 个特征) 。数据集被随机拆分为训练集(90%)、测试集(10%)。

    我们对超参数进行grid search,其中:

    • deep layer 层数从 1 ~ 10、层的维度从 500 ~ 300
    • cross layer 的层数从 4 ~ 10。对于 DCN,输入向量直接馈送到 cross network 因此不需要探索 cross layer 的维度。
    • 残差单元的层数从 1~5,其中隐层维度从 50 ~ 300

    对于 forest covertype 数据集,DCN 以最少的内存消耗实现了 最佳的准确率 0.9740DNNDC 均达到 0.9737。此时最佳超参数设置为:

    • DCN8 层维度为 54cross layer6 层维度为 292deep layer
    • DNN7 层维度为 292deep layer
    • DC4 层残差单元,残差单元的输入维度为 271、残差单元隐层维度为 287

    对于 Higgs 数据集,DCN 达到了最好的测试 logloss 0.4494,而 DNN 达到了 0.4506DCN 在使用DNN一半的内存并且超越了 DNN。此时最佳超参数设置为:

    • DCN4 层维度为 28cross layer4 层维度为 209deep layer
    • DNN10 层维度为 196deep layer

七、DeepFM[2017]

  1. 点击率CTR 预估在推荐系统中至关重要,即估计用户点击推荐 item 的概率。在很多推荐系统中,系统的目标是最大化点击次数,因为返回给用户的 item 可以根据估计的点击率进行排序。而在其它应用场景中,例如在线广告,提高平台的收入也很重要,因此可以将排序策略调整为 CTR x bid,其中出价 bid 是平台在 item 被用户点击时获取的收益。无论哪种情况,很明显,关键在于正确预估点击率。

    了解用户点击行为背后隐式的特征交互feature interaction 对点击率预估很重要。通过我们在主流 app 市场的研究,我们发现人们经常在用餐时间下载外卖 app,这表明 app 类别 category 和时间戳之间的交互(二阶交互)可以作为点击率的信号。作为第二个观察,男性青少年喜欢射击游戏和 RPG 游戏,这意味着 app 类别、用户性别、年龄的交互(三阶交互)是点击率的另一个信号。一般而言,用户点击行为背后的特征交互可能非常复杂,低阶特征交互和高阶特征交互都应该发挥重要作用。根据谷歌的 Wide & Deep 模型的见解,同时考虑低阶特征交互和高阶特征交互,比单独考虑任何一种情况都带来了额外的改进。

    关键的挑战在于有效地建模特征交互。一些特征交互很容易理解,因此可以由专家设计(例如前面的例子)。然而:

    • 大多数其它特征交互都隐藏在数据中,并且难以先验地识别(例如,经典的关联规则 “尿布和啤酒” 是从数据中挖掘出来的,而不是由专家发现的),只能通过机器学习自动捕获。
    • 即使对于易于理解的交互,专家似乎也不太可能对它们进行详尽exhaustively 的建模,尤其是当特征数据量很大时。

    尽管简单,广义线性模型(例如 FTRL)在实践中表现出不错的表现。然而,线性模型缺乏学习特征交互的能力。一种常见的做法是在线性模型的特征向量中手动包含 pairwise 的特征交互。但是这种方法很难推广到建模高阶特征交互、或者建模训练数据中从未出现或者很少出现的特征交互。

    因子分解机 Factorization Machine: FMpairwise 特征交互建模为特征之间潜在向量的内积,并显示出非常有希望的结果。虽然理论上 FM 可以建模高阶特征交互,但是实际上由于复杂性太高,因此通常只考虑二阶特征交互。

    作为学习特征 representation 的强大方法,深度神经网络具有学习复杂特征交互的能力。一些想法将 CNNRNN 扩展到 CTR 预测,但是基于 CNN 的模型倾向于相邻特征之间的交互,而基于 RNN 的模型更适合具有顺序依赖性sequential dependency 的点击数据。FNN 模型在应用 DNN 之前预训练了 FM,因此模型受到 FM 能力的限制。PNNembedding 层和全连接层之间引入了 product layer。正如 Wide & Deep 论文所述,PNNFNN 像其它深度模型一样很少捕获低阶特征交互,而低阶特征交互对于 CTR 预测也是必不可少的。为了同时建模低阶特征交互和高阶特征交互,Wide & Deep 模型结合了线性模型 (wide 部分)和深度模型(deep 部分)。在 Wide & Deep 模型中,wide 部分和 deep 部分分别需要两个不同的输入,并且 wide 部分的输入仍然依赖于专业的特征工程。

    可以看到,现有模型偏向于低阶特征交互(如 FM 模型)、或者偏向于高阶特征交互(如 DNN 模型)、或者依赖于手动特征工程(如 Wide & Deep )。在论文 《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》 中,论文证明了有可能导出一个学习模型,该模型能够以端到端的方式同时学习低阶特征交互和高阶特征交互,并且除了原始特征之外无需任何手动特征工程。论文的主要贡献如下:

    • 论文提出了一种新的神经网络模型 DeepFM,它集成了 FMDNN 架构。DeepFM 建模了像 FM 这类的低阶特征交互,也建模了像 DNN 这类的高阶特征交互。和 Wide & Deep 模型不同,DeepFM 可以在没有任何特征工程的情况下进行端到端的训练。
    • DeepFM 可以有效地训练,因为它的 wide 部分和 deep 部分共享相同的输入和 embedding 向量,这和 Wide & Deep 不同。在 Wide & Deep 中,输入向量的维度可能很大,因为在它的 wide 部分的输入向量包含手动设计的 pairwise 特征交互,这大大增加了模型的复杂性。
    • 论文在 benchmark 数据和商业数据上评估了 DeepFM,结果显示:和现有的 CTR 预测模型相比,DeepFM 有一致的提升。
  2. 相关工作:本文提出了一种新的深度神经网络用于点击率预测。最相关的领域是推荐系统中的点击率预测和深度学习。这里我们讨论这两个领域的相关工作。

    • 点击率预测在推荐系统中起着重要作用。除了广义线性模型和 FM 之外,还有一些其它模型用于 CTR 预测,例如 tree-based 模型(《Practical lessons from predicting clicks on ads at facebook》)、tensor-based 模型(《Pairwise interaction tensor factorization for personalized tag recommendation》)、支持向量机、贝叶斯模型等等。

    • 另一个相关的领域是推荐系统中的深度学习。在正文部分我们会提到几种用于 CTR 预测的深度学习模型,这里不再赘述。

      除了 CTR 预测之外,推荐任务中还有几种深度学习模型。

      • 《Restricted boltzmann machines for collaborative filtering》 提出通过深度学习来改进协同过滤。
      • 《Improving content-based and hybrid music recommendation using deep learning》 通过深度学习提取内容特征来提高音乐推荐的性能。
      • 《Deep CTR prediction in display advertising》 设计了一个深度学习网络来考虑展示广告的图像特征和基础特征。
      • 《Deep neural networks for youtube recommendations》YouTube 视频推荐开发了一个两阶段深度学习框架。

7.1 模型

  1. 假设训练集 包含 个样本,其中:

    • 为样本 的特征,包含 useritem 的、一共 field 数据。这些 field 可能是离线的categorical 或者连续的。对于离散 field ,我们进行 one-hot 编码从而得到 one-hot 向量。对于连续 field ,我们直接使用特征本身,或者先离散化discretization 之后再进行 one-hot 编码。

      假设样本 field representation,那么有:

      其中 表示向量拼接。

    • ground truth ,表示用户是否点击。

    通常 为高维、非常稀疏的向量。CTR 预估任务就是构建模型 从而预估用户在给定上下文中点击目标 item 的概率。

  2. 我们的目标是同时学习低阶特征交互和高阶特征交互。为此,我们提出了一个基于 Factorization-Machine: FM 的神经网络 DeepFM 。如下图所示,DeepFM 由共享相同输入的两个组件组成:FM 组件和 deep 组件。

    对于特征 ,我们使用标量 来衡量其一阶重要性,使用潜在向量 来衡量它与其它特征交互的影响。 被馈入 FM 组件从而建模二阶特征交互,同时被馈入 deep 组件从而建模高阶特征交互。

    所有参数,包括 、以及网络参数(如下面的 )都是针对组合的预测模型来联合训练的:

    其中: 为预估的 CTRFM 组件的输出;deep 组件的输出。

  3. FM 组件:如下图所示,该部分是一个 FM ,用于学习一阶特征和二阶交叉特征。

    FM 组件由两种操作组成:加法 Addition 和内积 Inner Product

    其中: 为每个 fieldembedding 维度, 为输入特征的维度。

    第一项 Addition Unit 用于对一阶特征重要性建模,第二项 Inner Product 用于对二阶特征重要性建模。

  4. deep 组件:如下图所示,该部分是一个全连接的前馈神经网络,用于学习高阶特征交互。

    与图像数据、音频数据作为输入(输入纯粹是连续的和稠密的)的神经网络神经网络相比,CTR 预测的输入有很大的不同,这就需要新的网络架构设计。具体而言,CTR 预测的原始特征输入向量通常是高度稀疏的、超高维的、混合了离散和连续的、并按照 field 分组(如性别、位置、年龄)。这建议在馈入第一个隐层之前,embedding 层将输入向量压缩为低维的、稠密的实值向量,否则网络难以训练。

    下图重点显示了从输入层到 embedding 层的子网结构。我们想指出这个子网结构的两个有趣的特性:

    • 虽然不同输入 field 特征向量的长度可以不同,但是它们的 embedding 长度 相同。

    • FM 中的潜在特征向量 现在用作网络权重,这些权重被学习并用于将输入 field 特征向量压缩为 embedding 向量。

      FNN 中,FM 预训练并用于网络权重的初始化。在这项工作中,我们没有像 FNN 那样使用 FM 的潜在特征向量来初始化网络,而是将 FM 模型作为我们整体学习架构的一部分。因此,我们消除了 FM 预训练的需要,而是以端到端的方式联合训练整个网络。

    假设 embedding 层的输出为: ,其中 field iembedding 向量, 为前馈神经网络的输入。则有:

    其中: 为第 l 层, 为激活函数, 为第 层的权重矩阵和 bias 向量。

    最终有:

    deep 部分的网络深度。

  5. DeepFM 和其它神经网络模型的区别:

    • FNNFNN 是一个 FM 初始化的前馈神经网络。FM 预训练策略有两个限制:embedding 参数可能会受到 FM 的过度影响 over affected;预训练阶段引入的开销降低了模型效率。此外,FNN 仅捕获了高阶特征交互。

      相比之下,DeepFM 不需要预训练,可以同时学习高阶特征交互和低阶特征交互。

    • PNN:为了捕获高阶特征交互,PNNembedding 层和第一个隐层之间强加了一个 product layer。根据product 运算的不同类型,有 IPNNOPNNPNN* 三种变体,其中 IPNN 基于向量的内积、OPNN 基于向量的外积、PNN* 同时采用了 IPNNOPNN 结果的拼接。

      为了使得计算更高效,作者提出了内积和外积的近似计算:通过移除一些神经元来近似计算内积;通过将 维特征向量压缩为一个 维向量来近似计算外积。

      然而,我们发现外积结果不如内积结果可靠,因为外积的近似计算丢失了很多信息,使得结果不稳定。内积虽然更可靠,但是仍然存在计算复杂度高的问题,因为 product layer 的输出连接到第一个隐层的所有神经元。

      FNN 一样,所有 PNN 都忽略了低阶特交互。

      PNN 不同的是,DeepFM 中的 product layer (即 FM 的二阶交互)的输出仅连接到最终输出层(一个神经元)。并且 DeepFM 同时考虑了高阶特征交互和低阶特征交互。

    • Wide & Deep:虽然 Wide&Deep 也可以对低阶特征和高阶特征同时建模,但是 wide 部分需要人工特征工程,而这需要业务专家的指导。相比之下,DeepFM 直接处理原始特征,不需要任何业务知识。

      另外,Wide & Deep 的一个直接扩展是:使用 FM 代替 wide 部分的LR 模型,记作 FM & DNN 模型,原始的 Wide & Deep 模型记作 LR & DNN 模型。

      FM & DNN 模型更类似于 DeepFM 模型,但是 DeepFMFMDNN 之间共享 embedding 特征。这种特征 embedding 的共享策略同时通过低阶特征交互和高阶特征交互来影响特征的 representation 学习,使得学到的特征 representation 更加精确。

    总而言之,DeepFM 和其它深度模型在四个方面的关系如下表所示。可以看到,DeepFM 是唯一不需要预训练和特征工程的模型,同时捕获了低阶特征交互和高阶特征交互。

7.2 实验

  1. 这里我们根据经验比较 DeepFM 和其它 state-of-the-art 的模型。评估结果表明,我们的 DeepFM 比任何其它state-of-the-art 模型更有效,并且 DeepFM 的效率可以与其它模型中最好的模型相媲美。

  2. 数据集:

    • Criteo Display Ads 数据集:用于预测广告点击率的数据集,包含 13 个连续continuous 特征,26 个离散categorical特征。

      数据包含 7 天的 11 GB 用户日志(约4100万条记录)。我们将数据集拆分为 90% 训练集和 10%测试集。

    • Company* 数据集:为了验证 DeepFM 在实际工业CTR 预估中的性能,我们在Company* 数据集上进行了实验。

      我们从华为 App Store 的游戏中心收集连续 7天的用户点击数据作为训练集,第八天的数据作为测试集,整个训练集+测试集约 10 亿条记录。在这个数据集中,有 app 特征(如 id、类目category 等等)、用户特征(如用户已经下载过的 app )、上下文特征(如操作时间)。

  3. 评估指标:AUCLogloss

  4. baseline 方法:我们比较了 9 种模型,包括:LR, FM, FNN, PNN(3种变体), Wide & Deep, DeepFM

    另外,在 Wide & Deep 模型中,为了省去手动特征工程的工作量,我们将 FM 代替了 LR 作为 wide 部分。这个变体我们称作 FM & DNN,原始的 Wide & Deep 我们称作 LR & DNN

  5. 配置:对于Company*数据集,通过超参数搜索来获取最佳超参数。对于 Criteo 数据集,超参数为:

    • FNNPNNdropout rate = 0.5;采用Adam 优化器;三层网络结构,每层的神经元数量分别为 400 - 400 - 400IPNN 模型的激活函数为为tanh ,其它模型的激活函数为 relu
    • DeepFM :与 FNN/PNN 相同。
    • LR:使用 FTRL 优化器。
    • FM :采用Adam 优化器;FMembedding 向量维度为 10

7.2.1 性能评估

  1. 模型效率 efficiency 对比:深度学习模型的效率对现实世界的application 很重要。我们通过以下公式比较不同模型在 Ctriteo 数据集上的效率:

    实验结果如下图所示,包括在 CPU(左图)和 GPU(右图)上的测试。可以看到:

    • FNN 的预训练步骤拉低了它的训练效率。
    • 虽然 IPNNPNN*GPU 上的加速比其它模型更高,但是由于内积的低效运算,IPNNPNN* 的计算成本仍然很高。
    • DeepFM 在所有模型中,训练效率几乎是最高的。

  2. 效果 effectiveness 比较:不同模型在这两个数据集上的点击率预测性能如下表所示。可以看到:

    • 学习特征交互提高了点击率预测模型的性能。这个观察结果是因为 LR 模型(这是唯一不考虑特征交互的模型)比其它模型表现更差。

      作为最佳模型,DeepFMCompany*Criteo 数据集上的 AUCLR 分别高出 0.86%4.18%Logloss 方面分别为 1.15%5.60% )。

    • 同时学习高阶特征交互和低阶特征交互,可以提高 CTR 预测模型的性能。DeepFM 优于仅学习低阶特征交互的模型(即 FM ),也优于仅学习高阶特征交互的模型(即 FNN、IPNN、OPNN、PNN* )。

      和第二好的模型相比,DeepFMCompany*Criteo 数据集上的 AUC 分别提高了 0.37%0.25%Logloss 方面分别为 0.42%0.29% )。

    • 同时学习高阶特征交互和低阶特征交互,并且对高阶特征交互和低阶特征交互共享 feature embedding ,可以提高 CTR 预测模型的性能。

      DeepFM 优于使用单独特征 embedding 来学习高阶特征交互和低阶特征交互的模型(即 LR & DNNFM & DNN )。和这两个模型相比,DeepFMCompany*Criteo 数据集上的 AUC 分别提高了 0.48%0.33%Logloss 方面分别为 0.61%0.66% )。

    总体而言,我们提出的 DeepFM 模型在 Company* 数据集上的 AUCLogloss 分别超过了竞争对手 0.37%0.42% 。事实上,离线 AUC 评估的小幅提升很可能会导致在线 CTR 的大幅提升。正如 Wide & Deep 报道的,相比较于 LRWide & Deep 离线 AUC 提高了 0.275%,但是在线 CTR 提高了 3.9%Company*’s App Store 每天的营业额为数百万美元,因此即使点击率提高几个百分点,每年也会带来额外的数百万美元。

7.2.2 超参数研究

  1. 我们在 Company* 数据集上研究了不同深度模型的不同超参数的影响,其中包括:激活函数、dropout 比率、每层神经元数量、隐层的层数、网络形状。

  2. 激活函数:根据论文 《 Product based neural networks for user response prediction》relutanhsigmoid 更适合深度模型。这里我们比较了 relutanh 激活函数,结果如下图所示。

    可以看到:几乎所有的深度学习模型中,relutanh 效果更好。但是 IPNN 是例外,可能原因是 relu 导致了稀疏性。

  3. dropout:我们将 dropout 设置为 [1.0, 0.9, 0.8, 0.7, 0.6, 0.5] ,结果如下图所示。当设置正确的 dropout 比例(从 0.6~0.9 )时,模型可以达到最佳性能。这表明向模型添加一定的随机性可以增强模型的鲁棒性。

  4. 每层的神经元数量:当其它超参数保持不变,增加每层的神经元数量会带来复杂性。

    如下图所示,增加神经元数量并不总是带来好处。例如,当每层神经元数量从 400 增加到 800 时,DeepFM 性能稳定,而 OPNN 的表现更差。这是因为过于复杂的模型很容易过拟合。在我们的数据集中,每层 200 ~ 400 个神经元是个不错的选择。

  5. 隐层的层数:如下图所示,一开始增加隐层的层数会提高模型性能。但是,如果隐层的层数不断增加,模型的性能就会下降。这种现象也是因为过拟合。

  6. 网络形状:我们测试了四种不同的网络形状:恒定形constant、递增形increasing、递减形decreasing、菱形diamond

    当我们改变网络形状时,我们固定隐层的数量和神经元总数。例如,当隐层的数量为 3、神经元总数为 600 时,四种不同形状的每层神经元数量为:恒定性 200 - 200 -200、递增形 100 - 200 - 300、递减形 300 - 200 - 100、菱形 150 - 300 - 150

    实验结果如下图所示,可以看到:恒定形网络在经验上优于其它三种形状,这与《Exploring strategies for training deep neural networks》 的研究结果一致。

八、NFM[2017]

  1. 预测性的分析 predictive analytics 是很多信息检索 information retrieval: IR 和数据挖掘 data mining: DM 任务中最重要的技术之一,从推荐系统、定向广告targeted advertising ,到搜索排序、视觉分析visual analysis 、事件检测event detection 。通常,预测性任务predictive task 被描述为估计将预测变量predictor variables 映射到某个目标的函数,例如用于回归的实值目标 real valued target 和用于分类的离散目标 categorical target 。例如,在在线广告中,我们需要预测特定职业(第二个预测变量)的用户(第一个预测变量)点击广告(第三个预测变量)的可能性(目标)。

    与图像和音频中自然存在的连续预测变量continuous predictor variables (例如原始特征)不同,web application 的预测变量大多数是不连续discrete 的和离散categorical 的。要使用这些离散categorical 的预测变量构建预测性的模型predictive models ,一种常见的解决方案是通过 one-hot encoding 将它们转换为一组二元特征(也称作特征向量)。然后,可以应用标准机器学习machine learning: ML 技术,例如逻辑回归LR和支持向量机SVM

    根据离散的预测变量的可能值possible values,生成的特征向量可以具有非常高的维度但是很稀疏。要使用此类稀疏数据构建有效的机器学习模型,考虑特征之间的交互 interaction 至关重要。工业界和学术界的许多成功解决方案在很大程度上依赖于手动制作的组合特征combinatorial features,即通过组合多个预测变量来构建新特征,也称作交叉特征 cross features 。例如,我们可以交叉变量 occupation = { banker, doctor}gender = { M, F} ,从而得到一个新的特征 occupation_gender = { banker_M, banker_F, doctor_M, doctor_F } 。众所周知,顶级数据科学家通常是精心设计组合特征的大师,这在他们的获胜的公式中起着关键作用。然而,这些特征的强大是以高成本为代价的,因为这需要大量的工程努力 engineering efforts 和有用的领域知识 domain knowledge 来设计有效的特征。因此,这些解决方案很难推广到新问题或者新领域。

    另一种解决方案是设计一个机器学习模型来自动从原始数据中学习特征交互,而不是手动增加特征。一种流行的方法是分解机 factorization machine: FM,它将特征嵌入到潜在空间中,并通过 feature embedding 向量之间的内积来建模特征交互 feature interaction 。虽然 FM 在许多预测任务中取得了巨大的成功,但是NFM 的作者认为其性能可能受到它的线性、以及二阶特征交互建模的限制。具体而言,对于具有复杂的和非线性固有结构 inherent structure 的现实世界数据,FM 表达能力可能不够。尽管已经提出了高阶 FM,但是它们仍然属于线性模型家族,并且据称难以估计 estimate。此外,这些高阶 FM 仅比 FM 略有改善,NFM 的作者怀疑这可能是由于高阶交互的线性建模带来的。虽然深度神经网络最近被应用于学习工业中的非线性特征交互,例如谷歌的 Wide & Deep、微软的 DeepCross,但是深度结构同时使它们难以训练。

    在论文 《Neural Factorization Machines for Sparse Predictive Analytics》中,作者提出了一种新的稀疏数据预测模型,称为神经分解机 Neural Factorization Machine: NFM,它通过建模高阶和非线性特征交互来强化 FM。通过在神经网络建模中设计一种新的操作(即,双线性交互 Bilinear Interaction: Bi-Interaction 池化 pooling ),论文第一次将 FM 纳入神经网络框架之下。

    • 通过在 Bi-Interaction layer 之上堆叠非线性层,NFM能够加深 deepen 浅层线性 FM,有效地建模高阶和非线性特征交互以提高 FM 的表达能力。
    • 与传统的深度学习方法在底层 low level简单地拼接、或平均 embedding 向量相比,NFM 使用 Bi-Interaction pooling 编码了更多有信息 informative 的特征交互,极大地促进了后续 deep layer 来学习有意义的信息。

    NFM 无缝地结合了 FM 在建模二阶特征交互中的线性、以及神经网络在建模高阶特征交互中的非线性。从概念上讲,NFMFM 更具有表达能力,因为 FM 可以被视为没有隐层的 NFM 的特例。

    论文对上下文感知预测context-aware prediction 和个性化标签推荐personalized tag recommendation 的两个公共 benchmark 进行了广泛的实验。仅使用一个隐层, NFM 显著优于 FM(官方 LibFM 的实现),提高了 7.3%。与 state-of-the-art 的深度学习方法( 3Wide & Deep10 层的 DeepCross )相比, 1NFM 以更简单的结构、更少的模型参数显示出一致的提升。论文的实现可以在 github 上获得。

    这项工作的主要贡献如下:

    • 据作者所知,论文是第一个在神经网络建模中引入 Bi-Interaction pooling 操作的人,并为 FM 提出了一种新的神经网络视角。

    • 基于这种新视角,论文开发了一种新的 NFM 模型,从而在神经网络框架下 deepen FM ,最终学习高阶和非线性的特征交互。

    • 论文对两个真实世界的任务进行了广泛的实验,以研究 Bi-Interaction poolingNFM 模型,证明了 NFM 的有效性以及在稀疏设置 sparse setting 下使用神经网络进行预测的巨大前景。

      与最近的深度学习方法 Wide & DeepDeepCross 相比, NFM 使用更浅的结构但是提供了更好的性能,在实践中更容易训练和调优。

8.1 建模特征交互

  1. 由于组合特征的空间很大,传统解决方案通常依靠手动特征工程manual feature engineering 或特征选择 feature selection 技术(如增强决策树boosted decision trees: BDT )来选择重要的特征交互。这种解决方案的一个限制是它们不能泛化到未出现在训练数据中的组合特征。

    近年来,基于 embedding 的方法变得越来越流行,该方法试图从原始数据中学习特征交互。通过将高维稀疏特征嵌入到低维潜在空间中,该模型可以泛化到未见过 unseen 的特征组合。无论是哪个领域 domain,我们都可以将这些方法分为两类:基于分解机factorization machine: FM 的线性模型、基于神经网络的非线性模型。这里我们简要地概述这两种代表性的技术。

8.1.1 FM

  1. FM 最初用于协同推荐 collaborative recommendation 。给定一个实值特征向量 FM 通过分解交互参数interaction parameters ,从而对每个对特征之间的所有交互进行建模,进而估计目标target

    其中:

    • 为全局 bias 建模第 个特征和 target 的交互。

    • 表示分解的交互factorized interaction,其中 为特征 embedding 向量,embedding 向量的维度。

      注意,由于存在系数 ,因此只考虑非零特征的交互。

  2. FM 的一个主要优势来自于它的通用性:与仅对两个实体关系进行建模的矩阵分解 matrix factorization: MF 相反,FM 是一个通用的预测器predictor,可以与任何实值特征向量一起用于监督学习。

    显然,FM 使用特征之间的二阶分解交互factorized interaction 增强了逻辑回归 logistic regression: LR。通过指定specifying 输入特征,论文 《Factorization machines》 表明FM 可以模拟很多特定的分解模型,例如标准的 MF、并行因子分析 parallel factor analysisSVD++。由于这种通用性,FM 被认为是稀疏数据预测的最有效的 embedding 方法之一。它已经成功应用于许多预测任务,从在线广告、微博检索,到开放关系抽取。

  3. FM 的表达能力限制:尽管有效,我们指出 FM 仍然属于(多元)线性模型家族。换句话讲,预测目标 相对于每个模型参数是线性的。

    数学上,对于每个模型参数 ,我们有 ,其中 是独立于 的表达式。不幸的是,现实世界的底层结构通常是高度非线性的,无法被线性模型准确地近似。因此,FM 可能缺乏对具有复杂固有结构和规律的真实数据进行建模的表达能力representation ability

    在方法论方面,已经开发了 FM 的很多变体。例如:

    • Co-FM 从多视图数据multi-view data 中学习。
    • 《Predicting response in mobile advertising with hierarchical importance-aware factorization machine》 通过设计层级正则化器hierarchical regularizer 将特征的先验知识编码到 FM
    • field-aware FM: FFM 为每个特征学习多个 embedding 向量,从而区分与不同 field 的特征交互。
    • 最近,《Attentional factorization machines: Learning the weight of feature interactions via attention networks》 提出了 attentional FM ,使用注意力网络来学习每个特征交互的重要性。

    但是,这些变体都是 FM 的线性扩展,并且仅对二阶特征交互进行建模。因此,它们在建模真实世界数据时可能会遇到相同的表达能力不足的问题。

    在这项工作中,我们通过赋予 FM 非线性建模能力来改善 FM 的表达能力。核心思想是对二阶特征交互的潜在空间进行非线性变换,同时捕获高阶特征交互。

8.1.2 DNN

  1. 近五年来,深度神经网络 deep neural network: DNN 取得了巨大的成功,并广泛应用于语音识别、计算机视觉、自然语言处理。然而,DNN 的使用在信息检索 information retrieval: IR 和数据挖掘 data mining: DM 社区中并不普遍。在我们看来,我们认为一个原因可能是 IRDM 任务的大多数数据天然是稀疏的,例如用户行为、document/query 、以及从离散categorical 变量转换而来的各种特征。尽管 DNN 表现出从稠密数据中学习模式的强大能力,但是在稀疏数据上使用 DNN 受到的审视scrutiny 较少,并且不清楚如何在稀疏设置下使用 DNN 有效地学习特征交互。

    直到最近,一些工作开始在稀疏预测分析的某些场景中探索 DNN

    • 论文 《Neural collaborative filtering》 提出了一个神经协同过滤 neural collaborative filtering: NCF 框架来学习用户和 item 之间的交互。

      后来NCF 框架被扩展为:针对属性感知协同过滤建模属性交互attribute interaction 。然而,他们的方法仅适用于学习两个实体之间的交互,并不直接支持监督学习的一般设置general setting

    • 《Deep learning over multi-field categorical data》 提出了 FNN,它使用 FM 预训练的feature embedding 来初始化 DNN

    • 《Wide & deep learning for recommender systems》 提出了 Wide & Deep ,其中 deep 组件是位于特征 embedding 向量拼接之后的一个多层感知机 multi-layer perceptron: MLP ,从而学习特征交互。

    • 《Deep crossing: Web-scale modeling without manually crafted combinatorial features》 提出了用于广告预测的 DeepCross,它与 Wide & Deep 共享一个类似的框架,但是通过 state-of-the-art 的残差网络代替了 MLP

  2. DNN 的优化困难:值得一提的是这些基于神经网络的方法的共同结构,即在 embedding 向量的拼接之后堆叠多层以学习特征交互。

    我们预期多层能够以隐式方式学习任意阶次的组合特征combinatorial feature 。然而,我们发现这种架构的一个关键弱点是:简单地拼接特征 embedding 向量在底层 low level 上携带的关于特征交互的信息太少。一个经验证据来自于论文 《Neural collaborative filtering》,该论文表明:简单地拼接用户 embedding 向量和 item embedding 向量会导致协同过滤的结果非常差。为了解决这个问题,必须依靠后续的 deep 层来学习有意义的交互函数interaction function 。虽然很多研究表明多个非线性层能够很好地学习特征交互,但是由于梯度消失vanishing /爆炸exploding 、过拟合overfitting 、退化degradation 等臭名昭著的问题,这种深度架构在实践中可能难以优化。

    为了经验上证明 DNN 的优化困难,我们在 Frappe 数据及上绘制了 Wide & DeepDeepCross 每个 epoch 的训练误差和测试误差,如下图所示。我们使用它们原始论文中报告的相同的架构和参数,其中 Wide & Deep 使用 3层塔式结构, DeepCross 使用隐层维度逐渐降低的 10 层残差网络。

    从图 (a) 中可以看到:从头开始训练这两个模型导致的性能比浅层 FM 模型差很多。

    • 对于 Wide & Deep,训练误差相对较高,这很可能是因为模型退化degradation 问题。
    • 对于 DeepCross,非常低的训练误差但很高的测试误差意味着模型过拟合。

    受到 FNN 的启发,我们进一步探索了使用 FM 学习的特征 embedding 来初始化 DNN,这可以看作是一个预训练步骤。从图 (b) 可以看到,这两个模型都实现了更好的性能(超过 11%)的提升。

    • 对于 Wide & Deep 而言,模型退化问题得到了很好的解决,训练误差要低得多,并且测试性能优于 LibFM
    • 然而对于 10DeepCross,它仍然存在严重的过拟合问题,并且表现不如 LibFM

    这些相对负面的结果揭示了训练 DNN 的优化困难。

    在这项工作中,我们提出了一种新的、用于稀疏数据预测的神经网络范式。我们提出了一种新的双向交互Bi-Interaction 操作,而不是拼接特征 embedding 向量,该操作对二阶特征交互进行建模。这导致在底层low level 上提供更多信息的 representation,极大地帮助后续的非线性层学习高阶交互。

8.2 模型

  1. 我们首先提出 NFM 模型,该模型用于稀疏数据建模并结合了 FM 和神经网络的优势。然后我们讨论学习过程,以及如何在 NFM 中使用一些有用的技术,即 dropoutbatch normalization

8.2.1 模型

  1. 类似于 FMNFM 是一个通用的机器学习器,可以处理任何实值特征向量。给定经过one-hot 编码之后的稀疏特征向量 ,其中特征 表示第 个特征不存在。则 NFM 的预测结果为:

    其中:

    • 第一项和第二项是类似于 FM 的线性回归 linear regression 部分,它对数据的全局 bias 和特征权重进行建模。

    • 第三项 NFM 用于建模特征交互的核心组件,它是一个多层前馈神经网络,包含 embedding层、Bi-Interaction 层、Hidden 层、输出层。如下图所示(仅仅包含 )。

  2. Embedding 层:embedding 层是一个全连接层,将每个特征投影到一个稠密的向量 representation 。形式上, 是第 个特征的 embedding 向量。

    经过嵌入之后,则输入 就可以表示为:

    由于 的稀疏性, 只需要保存非零的特征,即:

    注意:这里使用输入特征 来调整 embedding 向量,而不是简单的从embedding table 中查找。这样做的好处是可以统一处理实值特征 real valued feature

  3. Bi-Interaction 层:然后我们将 embedding 集合馈入到 Bi-Interaction 层。Bi-Interaction 层是一个池化操作,将一组 embedding 向量转换为一个向量:

    其中:

    • 是逐元素乘法,即
    • 是一个 维向量,它在 embedding 空间编码了二阶交叉特征。

    重要的是,Bi-Interaction 层可以在线性时间内高效计算。这个特性与平均池化/最大池化、拼接concatenation 相同,它们相当简单且常用于神经网络方法。

    为了显示 Bi-Interaction 池化的线性时间复杂度,我们将上述方程重新表述为:

    其中 表示

    由于输入 的稀疏性,我们可以在 的时间内计算 Bi-Interaction 池化 ,其中 表示输入中非零项的数量。这是一个非常吸引人的特性,这意味着 Bi-Interaction 池化在建模 pairwise 特征交互时的优点是不涉及任何额外成本。

  4. 隐层 Hidden Layer:在 Bi-Interaction 池化层之后堆叠了一组全连接层,这些全连接层能够学习特征之间的高阶交互。形式上,这些全连接层的定义为:

    其中 表示隐层的数量, 表示第 层的待学习的权重矩阵、bias 向量, 表示第 层的激活函数。

    通过指定非线性激活函数,如 sigmoidtanhReLU ,我们允许模型以非线性方式学习高阶特征交互。这优于现有的高阶交互学习方法,如高阶 FMExponential Machine,它们仅支持以线性方式学习高阶交互。

    至于全连接层的结构(即每一层的 size ),可以自由选择塔式tower 、常数constant 、菱形diamond 等等。

  5. 预测层Prediction Layer:最后一个隐层的输出向量 被转换为 final prediction score

    其中 为预测层的权重。

  6. 综上所述,NFM 的预测模型predictive model 形式化为:

    模型的参数为: 。和 FM 相比,NFM 的模型参数多了 的部分,这部分参数用于学习特征之间的高阶交互。

    接下来我们首先展示 NFM 如何推广 FM,并讨论 NFM 和现有深度学习方法之间的联系。然后我们分析评估了 NFM 模型的时间复杂度。

  7. NFMFM 的推广:FM 是一个浅层的线性模型,可以视为 NFM 没有隐层的一个特例。为了证明这一点,我们将 设为零,并直接将 Bi-Interaction 池化的输出投影到预测层。我们将这个简化模型称作 NFM-0,公式化为:

    可以看到,当固定 时,我们可以准确恢复 FM 模型。

    值得指出的是,据我们所知,这是第一次在神经网络框架下表达 FM。而论文 《Polynomial networks and factorization machines: New insights and efficient training algorithms》 通过 kernelization 统一了 FMPolynomial 网络,但是他们对 FMkernel 视角仅提供了一种新的训练算法,并没有提供改进 FM 模型的见解。

    我们对 FM 的新观点具有很强的指导意义,并为改进 FM 提供了更多见解。特别是,我们允许在 FM 上使用各种神经网络技术来提高 FM 的学习能力和泛化能力。例如,我们可以在 Bi-Interaction 层使用 dropout (深度学习社区中一种众所周知的防止过拟合的技术)作为正则化 FM 的一种方式。在实验中我们发现,这比传统的 L2 正则化更有效。

  8. NFMWide & Deep 以及 DeepCross 的关系:NFM 跟现有的几个深度学习解决方案具有类似的多层神经架构。主要区别在于 Bi-Interaction pooling 组件,这是 NFM 中特有的。

    具体而言,如果我们使用拼接操作来替代 Bi-Interaction 池化,并将塔式 MLP(或者残差单元)应用于隐层,那么我们可以恢复 Wide & Deep 模型(或 DeepCross 模型)。拼接操作的一个明显的缺点是它不考虑特征之间的任何交互。因此,这些深度学习方法必须完全依赖于后续的 deep layer 来学习有意义的特征交互。不幸的是,这在实践中很难训练。

    我们使用 Bi-Interaction 池化在底层 low level 捕获二阶特征交互,这比拼接操作提供更多信息。这极大地促进了 NFM 的后续隐层以更简单的方式学习有用的高阶特征交互。

  9. 时间复杂度分析:可以在 时间内有效计算 Bi-Interaction 池化,这与 FM 相同。额外的计算成本是由隐层引起的。

    对于第 层隐层,计算复杂度为 ,其中 表示第 层隐向量维度, 。预测层仅涉及两个向量的内积,其复杂度为 。因此总的时间复杂度为:

    这与 Wide&Deep,DeepCrossing 的时间复杂度相同。

8.2.2 学习

  1. NFM 可以应用于各种预测任务,包括回归、分类、排序ranking 。为了估计 NFM 模型的参数,我们需要指定一个目标函数来优化。

    • 对于回归任务,一个常用的目标函数是平方损失:

      其中: 为训练集, 为样本特征, 为样本 label 为样本的预测值。

      正则化项是可选的,这里省略了,因为我们发现神经网络建模中的一些技术,如 dropout 可以很好地防止 NFM 过拟合。

    • 对于分类任务,我们可以选择 hinge loss 或者 log loss

    • 对于 ranking 任务,我们可以选择 pairwise personalized ranking loss 或者 contrastive max-margin loss

    在这项工作中,我们聚焦于回归任务并优化平方损失。ranking/classification 任务的优化可以用相同的方式完成。

  2. 我们采用随机梯度下降 SGD 来优化神经网络模型。每轮迭代的模型参数更新为:

    其中: 为模型的可训练参数, 为学习率, 为模型输出相对于参数的梯度。

    例如 Bi-Interaction 池化层的参数梯度为:

    其它层都是神经网络建模中的标准操作,已经在 TensorFlow 等机器学习工具包中广泛实现。

    因此,对于端到端的神经网络方法,在插入 Bi-Interaction 池化层之后,它们仍然可以端到端地学习。

  3. Dropout:在 NFM 中,为了避免特征 embedding 相互协同适应 co-adapt 以及过拟合数据,我们建议在 Bi-Interaction 层之后采用 dropout 。具体而言,在获得一个 维的潜在因子向量 之后,我们随机丢弃 比例的潜在因子,其中 称作 dropout rate

    由于没有隐层的 NFM 降级degradeFM 模型,因此可以将 dropout 视为正则化 FM 的一种新方法。

    此外,我们还在 NFM 的每个隐层上应用 dropout,从而防止从协同适应co-adaptation 和过拟合overfitting 中学习高阶特征交互。

  4. Batch Normalization:在 NFM 中,为了避免特征 embedding 的更新改变了隐层或者预测层的输入,我们对 Bi-Interaction 的输出执行了 BN

8.3 实验

  1. 在神经网络建模和用于稀疏数据预测的 NFM 设计中,我们进行了实验来回答以下研究问题:

    • RQ1Bi-Interaction 池化能否有效捕获二阶特征交互?Bi-Interactiondropoutbatch normalization 如何工作?
  1. 数据集:我们使用两个公开可用的数据集 FrappeMovieLens

    • Frappe:给出了不同上下文时用户的 app 使用日志记录,一共包含 96203app 。除了 userID, appID 之外,每条日志还包含 8个上下文特征:天气、城市、daytime(如:早晨、上午、下午) 等。

      采用 one-hot 编码之后,特征有 5382 维。label = 1 表示用户使用了 app

    • MovieLensGroupLens 发布的最新 MovieLens 数据集的完整版,包含 17045 个用户在 23743item 上的 49657 种不同的 tag 。这里我们研究个性化的 tag 推荐任务,而不是仅考虑二阶交互的协同过滤。

      userID,movieID,tag 进行 one-hot 编码之后,特征有 90445 维; label = 1 表示用户给 movie 贴了 tag

    由于两个原始数据集都只包含正样本(即所有样本的 label 都是 1 ),我们为每个正样本随机采样了两个负样本,从而确保预测模型的泛化。

    • 对于 Frappe 数据集,对每条记录,随机采样每个用户在上下文中未使用的其它两个 app
    • 对于 MovieLens 数据集,对每个用户每个电影的每个 tag,随机分配给该电影其它两个该用户尚未分配的 tag

    每个负样本的 label = -1。下表给出了最终评估数据集的统计数据。

  2. 评估指标:我们将数据集随机划分为训练集(70%)、验证集(20%)、测试集(10%)。验证集用于调优超参数,并在测试集上进行最终的性能比较。为了评估性能,我们采用了均方根误差 RMSE,其中较低的 RMSE 得分表示更好的性能。

    • NFM 属性的研究(即 RQ1RQ2 的回答)是在验证集上进行的,这也可以反映我们如何选择最佳超参数。
    • 对于模型的预测结果,如果超出了 1 或者 -1 的范围,那么我们将结果截断为 1 或者 -1
    • 必要时我们进行 one-sample paired t-test 来判断统计显著性。
  3. baseline 方法:我们使用 TensorFlow 实现了 NFM。我们和以下专为稀疏数据预测的、具有竞争力的、基于 embedding 的模型进行了比较:

    • LibFM:这是 Rendle 发布的 FM 的官方实现。它在个性化 tag 推荐和上下文感知预测方面具有强大的性能。我们使用 SGD learner 与其它所有使用 SGD (或者变体)优化的方法进行公平比较。

    • HOFM:这是高阶 FMTensorFlow 实现,如论文 《Factorization machines》 所述。我们尝试了三阶,因为 MovieLens 数据涉及用户、电影、tag 之间的三元关系。

    • Wide & Deepdeep 部分首先拼接特征 embedding,然后是 MLP 对特征交互进行建模。由于 DNN 的结构难以完全调优 fully tuned,我们使用了与原始论文中报道的相同的结构:三层 MLP,隐层维度分别为 [1024, 512, 256]

      虽然 wide 部分(这是一个线性回归模型)可以经过设计以包含交叉特征,但是我们使用原始特征,仅仅是为了和 FM, NFM 进行公平地比较。

    • DeepCross:它在特征 embedding 拼接之后应用多层残差网络来学习特征交互。我们使用了原始论文中报道的相同结构:五层残差单元(每层单元有两个子隐层),每个残差单元的维度为[512, 512, 256, 128, 64]

  4. 超参数配置:

    • 为了公平地比较模型的能力,我们通过优化平方损失来学习所有模型。

    • 所有方法的学习率在 [0.005, 0.01, 0.02, 0.05] 之间搜索。

    • 为了防止过拟合,我们对线性模型 LibFMHOFM 使用了 L2 正则化,正则化系数在 之间搜索。

    • 为了防止过拟合,我们对神经网络模型 Wide & DeepDeepCrossNFM 使用了 dropoutdropout rate[0, 0.1, 0.2, ..., 0.9] 之间搜索。

      注意,我们发现 dropout 可以很好地正则化 Wide & DeepNFM 的隐层,但是对 DeepCross 的残差单元效果不佳。

    • 对于所有方法都执行了早停策略。如果验证集上的 RMSE4 个连续的 epoch 中增加,我们就停止训练。

    • 除了使用平凡 SGD 优化 FMLibFM 之外,所有其它方法都使用 mini-batch Adagrad 进行优化,其中:Frappebatch size 设为 128Movie-Lensbatch size 设为 4096

      注意,batch size 是通过考虑训练时间training time 和收敛速度 convergence rate 来选择的,因为较大的 batch size 通常会导致每个 epoch 的训练速度更快,但是收敛速度较慢(需要更多的 epoch )。

    • 如果没有特殊的说明,我们展示了 embedding size = 64 的结果。

8.3.1 RQ1: Bi-Interaction 池化的研究

  1. 我们根据经验研究了 Bi-Interaction 池化操作。为了避免影响分析的其它组件(例如,隐层),我们研究了 NFM-0 模型,该模型直接将 Bi-Interaction 池化的输出投影到预估分而没有隐层。如前所述,NFM-0FM 相同,因为可训练的 不影响模型的表达能力。我们首先将 dropout 和传统的 正则化进行比较以防止模型过拟合,然后探讨 batch normalization 的影响。

  2. dropout 改进了泛化:下图显示了 NFM-0 验证误差相对于 Bi-Interactiondropout rate 的关系,以及相对于 feature embedding 正则化的关系。我们使用线性回归 linear regression: LR 作为不考虑特征交互的 benchmark 性能。可以看到:

    • 首先,LR 导致了非常差的性能,这凸显了对稀疏特征之间的交互进行建模从而进行预测的重要性。

    • 其次,我们看到 正则化和 dropout 都可以很好地防止过拟合,并改善 NFM-0 对未见过 unseen 数据的泛化。在这两种策略之间,dropout 提供了更好的性能。

      具体而言,在 Frappe 上,使用 dropout rate = 0.3 导致最低的验证误差 0.3562,这明显优于 正则化的 0.3799 。一个原因可能是强制 正则化只会在数值上抑制每次更新中的参数值,而使用 dropout 可以被视为集成 ensembling 多个子模型,这可能更有效。

      考虑到很多因子分解模型都可以归为 FM模型,我们认为这是一个有趣的新发现,这意味着 dropout 也可以成为解决线性潜在因子模型过拟合的有效策略。

    为了更清楚地了解 dropout 的影响,我们在下图中展示了 NFM-0dropout 和没有 dropout 在每个 epoch 的训练误差和验证误差。两个数据集都表明:采用了 dropout rate = 0.3 之后,虽然训练误差更高,但是验证误差更低。这证明了 dropout 在防止过拟合方面的能力,因此可以实现更好的泛化。

  3. batch normalization 加速训练: 下图显示了在 Bi-Interaction 层上有 BN 和没有 BNNFM-0 的每个 epoch 训练误差和验证误差。我们将 dropout rate 设为 0.3,并将学习率设为 0.02

    • 聚焦于训练误差,我们可以看到 BN 导致更快的收敛速度。在 Frappe 数据集上,应用 BNepoch = 20 的训练误差甚至低于没有 BNepoch = 60 ,并且验证误差表明更低的训练误差不是过拟合。

      事实上,《Batch normalization: Accelerating deep network training by reducing internal covariate shift》 表明:通过 BN 解决内部协变量偏移shift,可以提高模型的泛化能力。我们的结果也验证了这一点,即,使用BN 会带来轻微的改进,尽管这个改进在统计上并不显著。

    • 此外,我们注意到 BN 使得学习不太稳定,蓝线的较大波动证明了这一点。这是由于我们同时使用 dropoutBN 造成的,因为随机 dropout 神经元可以改变 BN 的输入。如何有效地结合 BNdropout 是一个有趣的方向。

8.3.2 RQ2: 隐层的影响

  1. NFM 的隐层在捕获特征之间的高阶交互方面起着关键作用。为了探索影响,我们首先在 Bi-Interaction layer 之上添加一个隐层,并稍微过度使用 NFM 这个称呼来表示这个特定的模型。为了确保与 NFM-0 具有相同的模型容量model capability , 我们将隐层的维度设置为和 embedding 维度相同。

    下图显示了 NFM 验证误差相对于隐层的不同激活函数的关系,以及相对于隐层不同 dropout rate 的关系。我们将 LibFMNFM-0 的性能作为 benchmark。可以看到:

    • 首先,我们观察到,通过使用非线性激活,NFM 的性能有很大的提高。和 NFM-0 相比,FrappeMovieLens 上的相对提升分别为 11.3%5.2% 。相对 LibFM 的提升也是类似的。这凸显了对高阶特征交互进行建模从而进行高质量预测的重要性。

      在不同的非线性激活函数中,没有明显的赢家。

    • 其次,当我们使用恒等映射作为激活函数时,即隐层执行线性变换,此时 NFM 表现不佳。这为采用非线性函数学习高阶特征交互的必要性提供了证据。

  2. 为了了解更深的 NFM 是否进一步提高性能,我们在 Bi-Interaction layer 之上堆叠了更多的 ReLU 层。由于独立调整每个隐层的维度和 dropout rate 的计算成本很高,因此我们对所有层都使用相同的设置,并以与 NFM-1 相同的方式调整它们。

    从下表可以看出:当我们堆叠更多层时,性能并没有进一步提高,最佳性能是当我们仅使用一个隐层时。

    我们还探索了隐层的其它设计,例如塔式结构和残差单元,但是性能仍然没有提高。我们认为原因是因为 Bi-Interaction 层编码了信息丰富的二阶特征交互,基于此,一个简单的非线性函数就足以捕获高阶交互。

    为了验证这一点,我们使用拼接操作代替了 Bi-Interaction 层(这导致了与 Wide & Deep 相同的架构),并发现使用更多的隐层(最多三个)可以逐渐提高性能,然而可达到的最佳性能仍然不如 NFM-1。这证明了对底层low-level layers 使用更有信息informative 的操作的价值,这可以减轻高层学习有意义信息的负担。因此,不一定需要深层架构。

  3. 预训练加速了训练过程:众所周知,参数初始化会极大地影响 DNN 的收敛性convergence 和性能performance ,因为基于梯度的方法只能找到 DNN 的局部最优值。如前所述,使用 FM 预训练的feature embedding 进行初始化可以显著增强 Wide & DeepDeepCross

    那么,预训练如何影响 NFM?下图显示了有预训练和没有预训练的 NFM-1 在每个 epoch 的状态。可以看到:

    • 首先,通过使用预训练的 FM embeddingNFM 表现出极快的收敛性。在两个数据集上,只有 5epoch 的性能与从头开始(启用 BN )训练的 NFM40epoch 性能相当。

    • 其次,预训练并没有提高 NFM 的最终性能,随机初始化可以获得比预训练初始化略好一些的结果。这证明了 NFM 的鲁棒性,它对参数初始化相对不敏感。

      和预训练对 Wide & DeepDeepCross 的巨大影响(提高了模型的收敛性和最终性能)相比,我们得出的结论是 NFM 更容易训练和优化。这主要是由于Bi-Interaction 池化操作是有信息的informative 以及有效的 effective

8.3.3 RQ3: 性能比较

  1. 我们现在与 state-of-the-art 的方法进行比较。

    对于 NFM,我们使用一个带有 ReLU 激活函数的隐层,因为baseline 方法 DeepCrossWide & Deep 在原始论文中也选择了 ReLU

    注意,NFM 最重要的超参数是 dropout rate,我们对 Bi-Interaction layer 使用 dropout rate = 0.5,并调优隐层的 dropout rate

    下图给出了测试 RMSEembedding size 的关系,其中 Wide & DeepDeepCross 使用 FM 预训练从而更好地探索这两种方法。LibFM, HOFM 是随机初始化。

    下表给出了在 embedding size = 128256 上获得的具体得分,以及每种方法的模型参数数量。M 表示百万,** 表示相比较于最佳 baseline 具有统计显著性。在表中,我们还给出了没有采用预训练的 Wide & DeepDeepCross 的分数。可以看到:

    • 首先,NFM 在两个数据集上一致地 consistently 实现了最佳性能,并且除了 FM 之外,模型参数最少。这证明了 NFM 在建模高阶特征交互和非线性特征交互从而进行稀疏数据预测方面的有效性和合理性。

      性能紧随其后的是 Wide & Deep,它使用 3MLP 来学习特征交互。我们也为 Wide & Deep 尝试了更深的层,但是性能并没有得到改善。这进一步验证了在底层low level 使用信息的informative Bi-Interaction 池化的效用。

    • 其次,我们观察到 HOFMFM 略有改进,在 FrappeMovieLens 上的平均改进分别为 1.45%1.04%。这揭示了仅建模二阶特交互的 FM 的局限性,从而揭示了对高阶交互进行建模的有效性。

      同时,HOFMNFM 之间的巨大性能差距反映了以非线性方式对高阶交互进行建模的价值,因为 HOFM 以线性方式建模高阶交互,并且使用的参数比 NFM 多得多。

    • 最后,DeepCross 相对较弱的性能表明,更深的学习并不总是更好,因为 DeepCross 是所有使用 baseline 中最深的模型,它使用 10 层网络。在 Frappe 上,DeepCross 仅实现了与浅层 FM 模型相当的性能;而在 Movielens 上,DeepCross 的性能明显低于 FM。我们认为原因在于优化困难和过拟合。

九、AFM[2017]

  1. 监督学习是机器学习和数据挖掘的基本任务之一。目标是推断出一个函数,该函数可以将给定的预测变量predictor variables (又叫做特征)作为输入来预测目标 target 。监督学习具有广泛的应用,包括推荐系统、图像识别等等。

    在对离散categorical 变量进行监督学习时,重要的是要考虑离散变量之间的交互interactions 。例如,考虑使用三个离散变量预测客户收入的 “玩具” 问题:

    虽然 junior bankers 的收入低于 junior engineers,但是对于senior level 的客户可能正好相反:senior bankers 的收入通常高于 senior engineers 。如果机器学习模型假设预测变量之间的独立性,并忽略它们之间的交互,那么模型将无法准确预测。例如线性回归模型为每个特征关联一个权重,并将目标预测为所有特征的加权和。

    为了利用特征之间的交互,一种常见的解决方案是使用特征的乘积(又叫做交叉特征cross features)显式增加特征向量。例如多项式回归 polynomial regression 中学习每个交叉特征的权重。然而 PR(以及其它类似的基于交叉特征的解决方案,例如 Wide & Deep 中的 wide 组件)的关键问题在于,对于稀疏数据集(其中仅仅一小部分交叉特征被观测到)无法估计未观察到unobserved 的交叉特征的参数。

    为了解决 PR 的泛化问题,人们提出了分解机 factorization machine: FMFM 将交叉特征的权重参数化为每个特征(构成交叉特征的)的 embedding 向量的内积。通过学习每个特征的 embedding 向量,FM 可以估计任何交叉特征的权重。由于这种泛化能力,FM 已成功应用于各种 application,从推荐系统到 NLP

    尽管前景广阔,但是AFM 的作者认为 FM 可能会因为它对所有特征交互使用相同权重来建模而受到阻碍。在实际应用中,不同的预测变量通常具有不同的预测能力,并且并非所有特征都包含用于估计目标的有用信号。例如,和无用特征的交互甚至可能引入噪声并对性能产生不利影响。因此,应该为不太有用的特征的交互分配较低的权重,因为它们对预测的贡献较小。然而,FM 缺乏区分特征交互重要性的能力,这可能导致次优预测。

    在论文 《Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks》 中,论文通过区分特征交互的重要性来改进 FM。作者设计了一个叫做注意力分解机 Attentional Factorization Machine: AFM 的新模型,它利用了神经网络建模的最新进展(即注意力机制),从而使得不同特征交互对预测有不同的贡献。更重要的是,特征交互的重要性是从数据中自动学习的,无需任何人类领域知识human domain knowledge

    论文对上下文感知预测 context-aware prediction 和个性化tag 推荐的两个公共 benchmark 数据集上进行了实验。大量实验结果表明,在 FM 上使用注意力机制有两个好处:不仅可以带来更好的性能,而且可以深入了解哪些特征交互对预测的贡献更大。这大大增强了 FM 的可解释性interpretability 和透明性transparency ,允许从业人员对模型行为进行更深入的分析。另外,AFM 始终优于 state-of-the-art 的深度学习方法 Wide & DeepDeep-Cross ,并且 AFM 结构更简单、模型参数更少。

  2. 相关工作:FM 主要用于稀疏setting 下的监督学习,例如在离散变量通过 one-hot encoding 转换为稀疏特征向量的情况下。与在图像和音频中发现的连续continuous 的原始特征不同,web 领域的输入特征大多数是不连续discrete的、离散categorical 的。当使用这类稀疏数据进行预测时,对特征之间的交互进行建模至关重要。

    与仅对两个实体之间的交互进行建模的矩阵分解 matrix factorization: MF 相比,FM 被设计为通用的 machine learner,用于对任意数量的实体之间的交互进行建模。通过指定specifying 输入特征,论文 《Factorization machines》 表明FM 可以模拟很多特定的分解模型,例如标准的 MF、并行因子分析 parallel factor analysisSVD++。因此,FM 被认为是稀疏数据预测最有效的线性 embedding 方法。

    已经提出了FM 的许多变体,如 NFM 在神经网络框架下 deepenFM 从而学习高阶特征交互,FFM 将一个特征关联了多个 embedding 向量从而区分不同 field 的其它特征的交互。在这项工作中,我们通过区分特征交互的重要性来改进 FM。我们知道有一项与我们方法类似的工作 GBFM,它通过梯度提升选择 “好的” 特征,并且只对好的特征之间的交互进行建模。对于选定特征之间的交互,GBFM 也是像 FM 一样以相同的权重对它们求和。因此,GBFM 本质上是一种特征选择算法,它与我们的 AFM 有着本质的不同,我们的 AFM 可以学习每个特征交互的重要性。

    另一方面,深度神经网络正在变得越来越流行,并且最近被用于在稀疏 setting 下进行预测。具体而言:

    • Wide & Deep 用于 App 推荐,其中 Deep 组件是在特征 embedding 向量拼接之后的 MLP,从而学习特征交互。
    • DeepCross 用于点击率预估,它用深度残差 MLP 来学习交叉特征。

    我们指出,在这些方法中,特征交互被深度神经网络隐式地捕获,而不是将每个交互显式建模为两个特征的内积的 FM 。因此,这些深度方法是不可解释的,因为每个特征交互的贡献是未知的。通过使用学习每个特征交互重要性的注意力机制直接扩展 FM,我们的 AFM 更具有可解释性,并且实验证明优于 Wide & DeepDeepCross 的性能。

9.1 模型

9.1.1 FM

  1. 作为监督学习的通用机器学习模型,FM 最初用于协同推荐collaborative recommendation 。给定一个实值特征向量 FM 通过分解交互参数interaction parameters ,从而对每个对特征之间的所有交互进行建模,进而估计目标target

    其中:

    • 为全局 bias 建模第 个特征和 target 的交互。

    • 表示分解的交互factorized interaction,代表交叉特征 的权重。其中 为特征 embedding 向量,embedding 向量的维度。

      注意,由于存在系数 ,因此只考虑非零特征的交互。

  2. 值得注意的是,FM 以相同的方式对所有特征交互进行建模:

    • 首先,在估计第 个特征涉及的所有特征交互时共享一个潜在向量
    • 其次,所有估计的特征交互 都具有统一的权重 1

    在实践中,一个常见的现象是:并非所有特征都与预测相关。以新闻分类问题为例,考虑新闻 “美国继续在外国支付透明度方面发挥主导作用” 的分类。显然,除了 “对外支付透明度” 之外的单词并不代表新闻主题(即金融主题)。那些涉及不相关特征的交互可以被视为对预测没有贡献的噪声。

    然而,FM 以相同的权重对所有可能的特征交互进行建模,这可能会不利地降低模型的泛化性能。

9.1.2 AFM

  1. 下图说明了我们提出的 AFM 模型的神经网络架构。为了清晰起见,我们省略了图中的线性回归部分。输入层和 embedding 层与 FM 相同,即:输入特征采用稀疏表示,并将每个非零特征嵌入到一个稠密向量中。接下来我们详细介绍了 pair-wise 交互层和 attention-based 池化层,这是本文的主要贡献。

  2. pair-wise 交互层Pair-wise Interaction Layer:受使用内积对每对特征之间的交互进行建模的 FM 的启发,我们在神经网络建模中提出了一个新的 Pairwise Interaction Layer 。该layer 个向量扩展为 个交互向量interacted vector,其中每个交互向量是一对向量的逐元素乘积从而编码这对向量的交互。

    形式上,假设特征向量 中非零元素的索引集合为 ,那么 embedding layer 的输出为 。然后我们可以将 Pairwise Interaction Layer 的输出表示为一组向量:

    其中: 表示两个向量之间的逐元素乘积。

    • 通过定制化 Pairwise Interaction Layer ,我们可以在神经网络架构下表达 FM。为了证明这一点,我们首先使用 sum 池化来压缩 ,然后使用全连接层将其投影到 prediction score 上:

      其中 prediction layer 的权重和bias。显然,当我们固定 ,那么我们准确地恢复了 FM 模型。

    • 注意,我们在 NFM 中提出的Bi-Interaction 池化操作可以视为在 Pairwise Interaction Layer 上使用 sum 池化而来。即:

  3. attention-based 池化层Attention-based Pooling Layer:注意力机制自从引入神经网络建模以来,已被广泛应用于许多任务,例如推荐、信息检索、计算机视觉等等。注意力机制的思想是:在将不同部分压缩为单个 representation 时允许不同部分做出不同的贡献。

    FM 缺点的启发,我们提出通过对交互向量执行加权求和来对特征交互采用注意力机制:

    其中 是针对特征交互 attention score ,可以解释为 在预测目标过程中的重要性。

    为了估计 ,一种直觉的方案是通过最小化预测损失来直接学习它,这在技术上似乎也是可行的。然而问题在于,对于从未在训练数据中同时出现的特征,无法估计它们交互的 attention score。为了解决这个泛化问题,我们使用多层感知机 multi-layer perceptron: MLP 进一步参数化 attention score,我们称之为注意力网络attention network

    注意力网络的输入是交互向量,这个交互向量在 embedding 空间中对两个特征的交互信息进行编码。形式上,注意力网络定义为:

    其中: 都是模型参数。attention network 的隐向量维度,称作 attention factor

    attention score 通过 softmax 函数进行归一化,这是已有工作的常见做法。我们使用 relu 激活函数,实验表明它的性能良好。

    attention-based 池化层的输出是一个 维向量,它通过区分特征交互的重要性来压缩 embedding 空间中的所有特征交互。然后我们将这个 维向量投影到 prediction score

    总而言之,我们给出了 AFM 模型的整体公式为:

    模型的参数为:

  4. 当移除 attention network 时,AFM 模型退化为 NFM-0 模型,即标准的 FM 模型。和 NFM 相比,AFM 模型缺少隐层来提取高阶特征交互。

9.1.3 学习

  1. 由于 AFM 从数据建模的角度直接增强了 FM,因此它也可以应用于各种预测任务,包括回归、分类、以及 ranking。应该使用不同的目标函数来为不同的任务量身定制AFM 模型学习。对于目标 是实值的回归任务,常见的目标函数是平方损失:

    其中: 为训练集, 为样本特征, 为样本 label 为样本的预测值。

    对于二分类任务、或者带隐式反馈的推荐任务,我们可以最小化 log loss。在本文中,我们聚焦于回归任务并优化平方损失。

  2. 为了优化目标函数,我们采用了随机梯度下降 SGD。实现 SGD 算法的关键是获得预测值 关于每个参数的导数。由于大多数现代深度学习工具包都提供了自动微分的功能,因此我们这里省略了导数的细节。

  3. 防止过拟合overfitting:过拟合是机器学习模型的永恒问题。结果表明,FM 可能会出现过拟合,因此 L2 正则化是防止 FM 过拟合的重要手段。由于 AFMFM 具有更强的表达能力,因此可能更容易过拟合训练数据。这里我们考虑两种在神经网络模型中广泛使用的防止过拟合的技术:dropoutL2 正则化。

    • dropout 的思想是在训练期间随机丢弃一些神经元。dropout 被证明能够防止神经元对训练数据的复杂的协同适应 co-adaptation

      由于 AFM 对特征之间的所有 pairwise 交互进行建模,但并非所有交互都是有用的,因此Pair-wise Interaction Layer 的神经元可能很容易协同适应co-adapt 并导致过拟合。因此,我们在Pair-wise Interaction Layer 上应用 dropout 来避免协同适应。

      此外,由于dropout 在测试期间被禁用并且整个网络用于预测,因此 dropout 可以视为使用大量较小的神经网络执行模型平均,这可能会提高性能。

    • 对于单层 MLP 的注意力网络组件,我们在权重矩阵 上应用 L2 正则化从而防止可能的过拟合。也就是说,我们优化的实际目标函数是:

      其中 控制正则化强度。

      我们不在注意力网络上使用 dropout,因为我们发现在Pair-wise Interaction Layer 和注意力网络上联合使用 dropout 会导致一些稳定性问题并降低性能。

9.2 实验

  1. 我们进行实验以回答以下问题:

    • RQ1AFM 的关键超参数(即特征交互上的 dropout 和注意力网络的正则化)如何影响其性能?
    • RQ2:注意力网络能否有效地学习特征交互的重要性?
    • RQ3:和 state-of-the-art 的稀疏数据预测方法相比,AFM 的表现如何?
  2. 数据集:我们使用两个公开可用的数据集 FrappeMovieLens

    • Frappe:给出了不同上下文时用户的 app 使用日志记录,一共包含 96203app 。除了 userID, appID 之外,每条日志还包含 8个上下文特征:天气、城市、daytime(如:早晨、上午、下午) 等。

      采用 one-hot 编码之后,特征有 5382 维。label = 1 表示用户使用了 app

    • MovieLensGroupLens 发布的最新 MovieLens 数据集的完整版,包含 17045 个用户在 23743item 上的 49657 种不同的 tag 。这里我们研究个性化的 tag 推荐任务,而不是仅考虑二阶交互的协同过滤。

      userID,movieID,tag 进行 one-hot 编码之后,特征有 90445 维; label = 1 表示用户给 movie 贴了 tag

    由于两个原始数据集都只包含正样本(即所有样本的 label 都是 1 ),我们为每个正样本随机采样了两个负样本,从而确保预测模型的泛化。

    • 对于 Frappe 数据集,对每条记录,随机采样每个用户在上下文中未使用的其它两个 app
    • 对于 MovieLens 数据集,对每个用户每个电影的每个 tag,随机分配给该电影其它两个该用户尚未分配的 tag

    每个负样本的 label = -1。下表给出了最终评估数据集的统计数据。

  3. 评估指标:我们将数据集随机划分为训练集(70%)、验证集(20%)、测试集(10%)。验证集用于调优超参数,并在测试集上进行最终的性能比较。为了评估性能,我们采用了均方根误差 RMSE,其中较低的 RMSE 得分表示更好的性能。

    对于模型的预测结果,如果超出了 1 或者 -1 的范围,那么我们将结果截断为 1 或者 -1

  4. baseline 方法:我们将 AFM 和以下设计用于稀疏数据预测的竞争方法进行比较。

    • LibFM:这是 Rendle 发布的 FM 的官方实现。我们选择 SD learner 与其它所有使用 SGD (或者变体)优化的方法进行公平比较。
    • HOFM:这是高阶 FMTensorFlow 实现,如论文 《Factorization machines》 所述。我们尝试了三阶,因为 MovieLens 数据涉及用户、电影、tag 之间的三元关系。
    • Wide & Deepdeep 部分首先拼接特征 embedding,然后是 MLP 对特征交互进行建模。由于 DNN 的结构难以完全调优 fully tuned,我们使用了与原始论文中报道的相同的结构:三层 MLP,隐层维度分别为 [1024, 512, 256]。而 wide 组件与 FM 的线性回归部分相同。
    • DeepCross:它在特征 embedding 拼接之后应用多层残差网络来学习特征交互。我们使用了原始论文中报道的相同结构:五层残差单元(每层单元有两个子隐层),每个残差单元的维度为[512, 512, 256, 128, 64]
  5. 配置:

    • 所有模型的优化目标为平方损失。
    • 除了 LibFM,所有方法都是通过 mini-batch Adagrad 算法学习的,其中: Frappe 数据集的 batch size = 128MovieLens 数据集的 batch size = 4096libFM 使用常规SGD 优化。
    • 所有方法的 embedding size = 256。如无特殊说明,则注意力因子也是 256 ,与 embedding size 相同。
    • 我们仔细调优了 LibFMHOFML2 正则化,以及 Wide & DeepDeepCrossdroupout rate
    • 我们根据验证集的性能使用了早停策略。
    • 对于 Wide & Deep, DeepCross, AFM,我们发现 FM 预训练初始化 feature embedding 会导致比随机初始化更低的 RMSE。因此我们报告了这些模型在预训练初始化时的性能。

9.2.1 RQ1: 超参数研究

  1. 首先我们探讨了 dropoutPair-wise Interaction Layer 的影响。我们将 以便在注意力网络上不使用 L2 正则化。我们还通过移除 AFM 的注意力组件来验证我们实现的 FMdropout 。下图显示了 AFMFM 在不同 dropout rate 下的验证误差。我们也显示了 LibFM 的结果作为 benchmark。可以看到:

    • 通过将 dropout rate 设为合适的值,AFMFM 都可以得到显著改善。具体而言,对于 AFMFrappeMovieLens 的最佳 dropout rate 分别为 0.20.5。这验证了 Pair-wise Interaction Layerdropout 的有效性,从而提高了 FMAFM 的泛化能力。

    • 我们的 FM 实现提供了比 LibFM 更好的性能。原因有两个:

      • 首先,LibFM 使用平凡的 SGD 进行优化,它对所有参数采用固定的学习率。而我们使用 Adagrad 优化 FM,它根据每个参数的频率来调整每个参数的学习率(即,对高频特征的参数进行较小的更新、对低频特征的参数进行较大的更新)。
      • 其次,LibFM 通过 L2 正则化防止过拟合,而我们采用 dropout。由于 dropout 的模型平均效应,这可以更有效。
    • AFM 大大优于 FMLibFM。即使在不使用 dropout 并且在一定程度上存在过拟合问题的情况下,AFM 的性能也明显优于 LibFMFM 的最佳性能(参考dropout rate = 0 的结果)。这证明了注意力网络在学习特征交互权重方面的好处。

  2. 然后我们研究注意力网络上的 L2 正则化是否有利于 AFM。正如前面的实验所验证的那样,dropout rate 被设置为每个数据集的最佳值。下图为验证误差和 的关系。

    可以看到:

    结论:当 时,AFM 得到了改善。注意,当 时的结果对应于前面实验中 AFM 获得的最佳性能。这意味着仅在 Pair-wise Interaction Layer 上应用 dropout 不足以防止 AFM 过拟合。更重要的是,调优注意力网络可以进一步提高 AFM 的泛化能力。

    注意:FMLibFM 均没有注意力网络,因此它们在图上都是直线。

9.2.2 RQ2: 注意力网络的影响

  1. 我们现在聚焦于分析注意力网络对 AFM 的影响。首先要回答的问题是如何选择一个合适的注意力因子?下图显示了 AFM 的验证误差和注意力因子的关系。注意,针对每个注意力因子已经独立地调优了 。可以看到:对于这两个数据集,AFM 的性能在所有注意力因子上都相当稳定。具体而言,当注意力因子为 1 时,矩阵 退化为一个向量,注意力网络本质上退化为一个线性回归模型,以交互向量(即 )作为输入特征。尽管注意力组件的模型容量如此有限,但是 AFM 仍然非常强大,并且比 FM 有显著改进。

    这证明了 AFM 设计的合理性,该设计基于交互向量来估计特征交互的重要性score,这是这项工作的关键发现。

  2. 下图比较了每个 epochAFMFM 的训练误差和测试误差。我们观察到 AFMFM 收敛得更快。

    • Frappe 上,AFM 的训练误差和测试误差都远低于 FM,表明 AFM 可以更好地拟合数据并导致更准确的预测。
    • MovieLens 上,虽然 AFM 的训练误差略高于 FM,但是较低的测试误差表明 AFM 对未见unseen 的数据的泛化能力更好。

  3. 除了提高性能之外,AFM 的另一个关键优势是通过每个特征交互的 attention score 来得到更好的可解释性。为了证明这一点,我们通过调研 MovieLens 上每个特征交互的得分来进行一些微观分析 micro-level analysis

    • 我们首先固定 为均匀得分 ,并训练模型。该模型模拟simulateFM ,因此我们记作 FM
    • 然后我们固定 feature embedding,仅训练注意力网络。该模型记作 FM + A。模型收敛之后,性能提高了大约 3%,这证明了注意力网络的有效性。

    我们从测试集中随机选择 3 个正样本 ,下表中显示了每个特征交互的 attention score (即 )和 interaction score(即 )。0.33*-1.81 表示 attention sore = 0.33interaction score = -1.81interaction score 可能为负值)。

    可以看到:在所有三个交互中,item-tag 交互是最重要的。然而,FM 为所有交互分配相同的重要性得分,导致更大的预测误差。通过使用注意力网络增强FM(参考 FM+A 那一行),item-tag 交互被分配了更高的重要性得分,从而减少了预测误差。

9.2.3 RQ3: 模型比较

  1. 最后我们比较了不同方法在测试集上的性能。下表给出了每种方法在 embedding size = 256 上获得的最佳性能,以及每种方法的可训练参数数量。M 表示百万。

    • 首先,我们看到 AFM 在所有方法中取得了最佳性能。具体而言:

      • AFM 通过少于 0.1M 的附加参数、以 8.6% 的相对提升优于 LibFM
      • AFM4.3% 的相对提升优于第二好的方法 Wide & Deep,同时模型参数少得多。

      这证明了 AFM 的有效性。尽管 AFM 是一个浅层模型,但是它比深度学习方法实现了更好的性能。

    • 其次,HOFM 优于 FM,这归因于 HOFM 对高阶特征交互的建模。然而,略微的提升是基于参数数量几乎翻倍的相当昂贵的代价,因为 HOFM 使用一组独立的 embedding 来建模每个阶次的特征交互。

      这指出了未来研究的一个有希望的方向:设计更有效的方法来捕获高阶特征交互。

    • 最后,由于过拟合的严重问题,DeepCross 表现最差。我们发现,DeepCrossdropout 效果不佳,这可能是由于它使用了 batch normalization 造成的。考虑到 DeepCross 是所有比较方法中最深层的方法(在 embedding layer 之后叠加了 10 层),这表明更深层的学习并不总是有帮助的,因为更深的模型可能会过拟合并且在实践中更难优化。

  2. AFMNFM 的工作是正交的,其中 NFM 聚焦于建模高阶的、非线性的特征交互的 FM 的深层变体,而 AFM 将注意力机制引入 FM。未来工作:

    • 通过在 attention-based 池化层之后堆叠多个非线性层来探索 AFM 的深度版本,看看是否可以进一步提高性能。
    • 由于 AFM 具有与非零特征数量呈二次关系的、相对较高的复杂度,因此我们将考虑提高学习效率,例如通过使用 learning to hash 、或者数据采样技术。
    • 另一个有前途的方向是开发用于半监督学习和多视图学习的 FM 变体,例如通过结合广泛使用的图拉普拉斯算子,以及结合协同正则化co-regularization 的设计。
    • 最后,我们探索 AFM 为不同 application 建模其它类型的数据,如用于问答的文本数据、以及语义更丰富的多媒体内容。

十、xDeepFM[2018]

  1. 特征在很多预测系统predictive system 的成功中起着核心作用。因为使用原始特征很少能带来最佳结果,所以数据科学家通常会在原始特征的转换transformation 上花费大量工作,从而生成最佳预测系统或赢得数据挖掘data mining 游戏。

    特征转换的一种主要类型是对离散特征categorical feature 的叉积 cross-product 转换。这些特征称作交叉特征cross feature 或者多路特征multi-way feature ,用于衡量多个原始特征的交互interaction 。例如,如果用户在微软亚研院工作,并且在周一看到一篇关于深度学习的技术文章,那么 3-way 特征 AND(user_organization=msra, item_category=deeplearning, time=monday) 取值为 1

    传统的交叉特征的特征工程存在三个主要缺点:

    • 首先,获得高质量的特征需要付出高昂的代价。由于正确的特征通常是特定于任务的task-specific ,因此数据科学家需要花费大量时间从产品数据中探索潜在模式,然后才能成为领域专家domain expert 并提取有意义的交叉特征。
    • 其次,在 web-scale 推荐系统等大规模预测系统中,大量的原始特征使得手动提取所有交叉特征变得不可行。
    • 第三,手动制作的交叉特征无法推广到训练数据中未见 unseen 的交互。

    因此,在无需手动特征工程的情况下学习交叉特征是一项有意义的任务。

    因子分解机 Factorization Machine: FM 将每个特征 嵌入到一个潜在因子向量 中,pairwise 特征交互被建模为潜在向量的内积:

    其中 为特征 的取值, 为特征 的取值。在本文中,我们使用术语 bit 来表示潜在向量中的元素(例如 )。

    经典的 FM 可以扩展到任意的高阶特征交互(即 HOFM),但是一个主要缺点是:HOFM 提出对所有特征交互进行建模,包括有用的组合以及无用的组合。正如 AFM 所揭示的,跟无用特征的交互可能会引入噪声并降低性能。

    近年来深度神经网络 DNN 凭借强大的feature representation learning 能力,在计算机视觉、语音识别、自然语言处理方面取得了成功。 DNN 很有希望用于学习复杂的、有选择性的特征交互。

    • 《Deep learning over multi-field categorical data》 提出 Factorization-machine supported Neural Network: FNN 来学习高阶特征交互。在应用 DNN 之前,FNN 使用预训练的 FM 用于 field embedding

    • 《Product-based neural networks for user response prediction》 进一步提出了 Product-based Neural Network: PNNPNNembedding layerDNN layer 之间引入了一个 product layer,并且不依赖于预训练的 FM

      FNNPNN 的主要缺点是它们更关注于高阶特征交互,而很少捕获低阶特征交互。

    • Wide & DeepDeepFM 模型通过引入混合架构克服了这个问题,其中包含一个浅层组件和一个深层组件,目的是同时学习 memorizationgeneralization 。因此,他们可以共同学习低阶特征交互和高阶特征交互。

    所有上述模型都利用 DNN 来学习高阶特征交互。然而,DNN 以隐式方式对高阶特征交互进行建模。DNN 学习到的最终函数可以是任意的,对于特征交互的最大阶次maximum degree 是什么,并没有理论上的结论。此外,DNNbit-wise level 对特征交互进行建模,这与传统的 FM 框架在 vector-wise level 对特征交互进行建模不同。因此,在推荐系统领域,DNN 是否确实是表达高阶特征交互的最有效模型仍然是一个悬而未决的问题。

    在论文 《xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems》 中,作者提出了一种基于神经网络的模型,以显式的、vector-wise 方式学习特征交互。论文的方法基于深度交叉网络 Deep & Cross Network: DCN,旨在有效地捕获有界阶次bounded degree 的特征交互。然而,作者将在论文中论证 DCN 将导致一种特殊的交互形式。因此,论文设计了一种新颖的压缩交互网络 compressed interaction network: CIN 来代替 DCN 中的交叉网络。CIN 显式地学习特征交互,交互的阶次degree 随着网络深度的增加而增长。

    遵循 Wide & DeepDeepFM 模型的精神,论文将具有隐式交互模块的显式高阶交互模块与传统 FM 模块相结合,并将联合模型命名为 eXtreme Deep Factorization Machine: xDeepFM 。新模型不需要手动特征工程,并将数据科学家从繁琐的特征搜索工作中解放出来。总而言之,论文的贡献如下:

    • 提出了一种名为 eXtreme Deep Factorization Machine: xDeepFM 的新模型。xDeepFM 可以有效地联合学习显式高阶特征交互和隐式高阶特征交互,并且不需要手动特征工程。
    • xDeepFM 中设计了一个压缩交互网络 compressed interaction network: CINCIN 可以显式地学习高阶特征交互。论文表明特征交互的阶次degree 在每一层都会增加,并且特征在 vector-wise level 而不是 bit-wise level 交互。
    • 对三个真实世界的数据集进行了大量实验,结果表明 xDeepFM 显著优于几个 state-of-the-art 的模型。
  2. 相关工作:

    • 经典的推荐系统

      • non-factorization 模型:对于 web-scale 的推荐系统,输入特征通常是稀疏的、categorical-continuous 混合的、高维的。

        线性模型(例如具有 FTRL 的逻辑回归模型)因为易于管理、维护、部署而被广泛采用。由于线性模型缺乏学习特征交互的能力,数据科学家不得不在交叉特征的特征工程上花费大量的工作才能获得更好的性能。

        考虑到一些隐藏特征hidden feature 很难手动设计,一些研究人员利用提升决策树 boosting decision tree: BDT 来帮助构建特征变换。

      • factorization 模型:上述模型的一个主要缺点是它们无法推广到训练集中未见 unseen 的特征交互。

        分解机Factorization Machine: FM 通过将每个特征嵌入到一个低维潜在向量中从而克服这个问题。矩阵分解 Matrix Factorization: MF 仅仅将 ID 视为特征,可以看作是一种特殊的 FM。推荐是通过两个潜在向量的乘积而做出的,因此不需要用户和 item 在训练集中同时出现。MF 是推荐系统文献中最流行的 model-based 协同过滤collaborative filtering: CF方法。一些工作将 MF 扩展到利用辅助信息side information,其中包括线性模型和 MF 模型。

        另一方面,对于很多推荐系统只有隐式反馈数据集,如用户的观看历史和浏览活动可用。因此,研究人员将 factorization 模型扩展到Bayesian Personalized Ranking: BPR 框架从而用于隐式反馈。

    • 深度学习的推荐系统:深度学习技术在计算机视觉、语音识别、自然语言理解方面取得了巨大成功。因此,越来越多的研究人员对于DNN 用于推荐系统感兴趣。

      • 深度学习用于高阶交互:为了避免手动构建高阶交叉特征,研究人员将 DNN 应用于 field embedding,从而可以自动学习来自离散特征交互categorical feature interaction 的模式。代表性模型包括 FNNPNNDeepCrossNFMDCNWide & DeepDeepFM。这些模型与我们提出的 xDeepFM 高度相关。我们将在下文中对它们进行回顾。我们将证明,与这些模型相比,我们提出的 xDeepFM 具有两个特殊属性:xDeepFM 同时以显式方式和隐式方式学习高阶特征交互;xDeepFMvector-wise level 而不是 bit-wise level 学习特征交互。

      • 深度学习用于精细的 Representation Learning:这里我们给出一些基于深度学习的推荐系统,它们不太关注于学习特征交互。

        • 一些早期的工作主要使用深度学习来对辅助信息进行建模,例如视觉数据和音频数据。
        • 最近,深度神经网络被用于对推荐系统中的协同过滤CF 进行建模。《Neural collaborative filtering》 提出了一种神经协同过滤 Neural Collaborative Filtering: NCF ,以便可以通过神经架构用任意函数替换 MF 中的内积。
        • 《Autorec: Autoencoders meet collaborative filtering》《Collaborative denoising auto-encoders for top-n recommender systems》 基于自编码器范式建模 CF,他们通过实验证明了基于自编码器的 CF 优于几个经典的 MF 模型。自编码器可以进一步用于联合建模 CF 和辅助信息,从而生成更好的潜在因子。
        • 《A multi-view deep learning approach for cross domain user modeling in recommendation systems》《CCCFNet: a content-boosted collaborative filtering neural network for cross domain recommender systems》 使用神经网络联合训练多个 domain 的潜在因子。
        • 《Attentive collaborative filtering: Multimedia recommendation with item-and component-level attention》 提出了注意力协同过滤 Attentive Collaborative Filtering: ACF,从而同时在 item-levelcomponent-level 学习更精细的偏好。
        • 《Deep interest network for click-through rate prediction》 表明传统的推荐系统无法有效地捕获兴趣多样性interest diversity 和局部激活local activation ,因此他们引入了深度兴趣网络 Deep Interest Network: DIN 来通过注意力激活机制attentive activation mechanism 来表达用户的多样化兴趣。

10.1 基本概念

  1. embeddingEmbedding Layer:在计算机视觉或自然语言理解中,输入数据通常是图像信号或文本信号,这些信号在空间或/和时间上是相关的,因此 DNN 可以直接应用于具有稠密结构dense structure 的原始特征。然而,在 web-scale 的推荐系统中,输入特征稀疏、维度巨大,并且没有明显的空间相关性或时间相关性。 因此,multi-fieldcategorical 形式被广泛采用。例如,一个样本的输入 [user_id=s02,gender=male, organization=msra,interests=comedy&rock] 通常通过 field-awareone-hot 编码转换为高维稀疏特征:

    embedding layer 应用于原始特征输入从而将其压缩为低维、稠密的实值向量。

    • 如果field 是单值univalent 的,则使用 feature embedding 作为 field embedding。例如,将特征 maleembedding 作为 field genderembedding
    • 如果 field 的多值 multivalent的,则使用 feature embeddingsum 作为 field embedding

    embedding layer 如下图所示,embedding size = 4

    embedding layer 的结果是一个宽的、拼接的向量:

    其中: field 数量, 表示向量拼接,field embedding

    尽管样本的特征长度可能不同,但是它们的 embedding size 都是 ,其中 field embedding 维度。

  2. 隐式高阶交互 Implicit High-order InteractionsFNNDeep CrossingWide & Deep 中的 deep 组件利用 field embedding 向量 之上的前馈神经网络来学习高阶特征交互。前向传播过程为:

    其中 : 为第 层, 为激活函数, 为第 层的输出, 为第 层的参数。

    这个前向传播过程的视觉结构visual structure 和下图中所示的网络结构(PNNDeepFM )非常相似,只是这个前向传播过程不包含 FM Layer 或者 Product Layer。这个前向传播过程以 bit-wise 方式对交互进行建模。也就是说,即使是同一个 field embedding 内的元素也会相互影响。

    PNNDeepFM 稍稍修改了上述架构。除了在 embedding 向量 上应用 DNN 之外,它们还在架构中添加了 2-way 的交互层 interaction layerPNNproduct layerDeeFMFM layer)。因此,它们的模型中同时包含了 bit-wise 交互和 vector-wise 交互。PNNDeepFM 的主要区别在于:PNNproduct layer 的输出连接到 DNN,而 DeepFMFM layer 直接连接到输出单元,如下图所示。图中的红色连线代表 weight-1 的连接、灰色连线代表神经网络连接红色,另外 DeepFM 忽略了线性回归部分。

  3. 显式高阶交互 Explicit High-order InteractionsDCN 提出了交叉网络 Cross Network: CrossNet,其架构如下图所示。DCN 旨在显式地对高阶特征交互进行建模。和经典的全连接前馈神经网络不同,DCN 的隐层通过以下交叉操作 cross operation 计算:

    其中: 分别为第 层的权重向量、bias 向量、输出向量。

    我们认为:CrossNet 学习了一种特殊类型的高阶特征交互,其中 CrossNet 中的每个隐层的输出都是 的标量倍数。

    CrossNet 可以非常高效地学习特征交互。与 DNN 相比,CrossNet 的复杂度可以忽略不计。但是 CrossNet 的缺点是:

    • CrossNet 的输出受限于特征形式,即每个隐层的输出都是 的标量倍数。
    • 特征交互是以 bit-wise 方式进行的。

  4. 定理:考虑一个 层的交叉网络,其中第 层的输出定义为 。那么交叉网络的输出 的标量倍数。

    证明:当 时,根据矩阵乘法的结合律和分配律,我们有:

    其中 的一个线性回归。因此 时命题成立。

    假设结论在 时命题成立。当 时,

    其中 为一个标量。因此 时命题也成立。根据数学归纳法,则交叉网络的输出 的标量倍数。

    注意:标量倍数并不意味着 呈线性关系,因为标量系数 的函数。

10.2 模型

10.2.1 CIN

  1. 我们设计了一个新的交叉网络,称作压缩交互网络 Compressed Interaction Network: CINCIN 具有以下考虑:交互应用在 vector-wise level 而不是 bit-wise level ;显式高阶交互;网络的复杂度不会随着交互的阶次呈指数型增长。

  2. 由于 embedding 向量被视为 vector-wise 交互的基本单元,因此我们将 field embedding 的输出表示为矩阵 的第 行是第 fieldembedding 向量 field embedding 的维度。

    CIN 中第 层的输出也是一个矩阵 ,其中 表示第 层输出的 embedding 向量(也称作 feature vector)的个数,并且 。对于 CIN 计算为:

    其中:

    • 为第 层、第 个输出 feature vector的参数矩阵。它的第 个元素给出了第 层第 个输出 feature vector和第 0 层第 个输出feature vector交互的权重。
    • 为向量的逐元素乘积。

    注意: 是通过 之间的交互推导而来的,因此特征交互可以显式度量,并且交互的阶次degree 随着层的深度增加而增长。

  3. CIN 的结构与循环神经网络 Recurrent Neural Network: RNN 非常相似,其中下一个隐层的输出取决于上一个隐层和一个额外的输入。我们在所有层都以 embedding 向量为单位参与计算,因此交互是在 vector-wise level 应用的。

    有趣的是,上述方程与计算机视觉中著名的卷积神经网络 Convolutional Neural Network: CNN 有着很强的联系。

    • 如下图所示,我们引入了一个中间张量 ,它是隐层 和原始特征矩阵 的外积(沿着每个 embedding 维度)。那么 可以视为一种特殊类型的图像, 为一个滤波器,一共有 个滤波器。

    • 如下图所示,我们沿着 embedding 维度 (D) 将滤波器在 上滑动,得到一个隐向量 ,在计算机视觉中通常称作 feature map 。因此, 个不同 feature map 的集合。

      如下图所示 为滤波器 沿着 embedding 维度滑动, 为滤波器 沿着 embedding 维度滑动。

    CIN 名字中的 compressed 一词表示第 个隐层将 个向量的潜在空间压缩为 个向量。

  4. CIN 网络的整体结构如下图所示。令 表示网络的深度。每个隐层 都与输出单元连接。

    • 我们首先在隐层的每个 feature map 上沿着 embedding 维度应用 sum 池化:

      因此我们得到一个池化向量

    • 来自隐层的所有池化向量在连接到输出单元之前进行拼接:

      其中 || 表示向量拼接。

    • 如果我们直接使用 CIN 进行二分类,那么输出单元是位于 之上的一个 sigmoid 节点:

      其中 为输出层参数。

10.2.2 CIN 分析

  1. 我们分析了CIN 从而研究模型的复杂性和潜在的有效性。

  2. 空间复杂度Space Complexity:第 层的第 feature map 包含 个参数,正好是 size。第 层一共有 feature map,因此第 层共有 个参数。考虑到输出单元有 个参数,因此CIN 的参数总量为 。注意,CINembedding 维度 无关。

    • 相比之下,一个普通的 DNN 包含 个参数,并且参数总量会随着 embedding 维度 的增加而增加。

    • 通常 不会很大,所以 size 是可以接受的。必要时,我们可以利用 阶分解并将 替换为两个较小的矩阵

      其中

    • 这里为了简单起见,我们假设每个隐层都具有相同数量(即 )的 feature map

      通过 阶分解,CIN 的空间复杂度从 下降到 。相比之下,普通 DNN 的空间复杂度为 ,对 field embedding 维度 敏感。

  3. 时间复杂度Time Complexity :计算张量 的时间成本是 。因为我们在一个隐层中有 feature map,所以计算 CIN 需要 时间。相比之下,一个 层的普通 DNN 需要 时间。因此,CIN 的主要缺点在于时间复杂度。

  4. 多项式近似 Polynomial Approximation:接下来我们检查 CIN 的高阶交互特性property 。为简单起见,我们假设隐层的 feature map 数量都等于 field 数量 。则第一层的第 feature map,记作 ,计算为:

    因此,第一层的每个 feature map 都使用 个系数对 pair-wise 交互进行建模。同理,第二层的第 feature map 为:

    注意:所有与下标 有关的计算已经在前一个隐层完成。为了清晰起见,我们展开了 。可以看到,第二层的每个 feature map 都使用 个新的参数对 3-way 交互进行建模。

    一个经典的 阶多项式有 个系数。我们将表明 CINfeature map 链的形式仅使用 个参数来近似此类多项式。通过数学归纳法,我们可以证明第 层的第 feature map 为:

    为了更好地说明,我们令 为一个 multi-index 为非负整数。记 。我们忽略了 的原始上标,并使用 来代替,因为在最终展开的表达式中只有来自第 0 层的 feature map(它就是 field embedding )。现在我们使用上标来表示向量运算,例如

    表示 阶的 multi-vector 多项式:

    这一族的每个vector 多项式都有 个系数。然后,我们的 CIN 逼近系数

    其中 为一个 multi-index 为索引 的所有排列组合构成的索引集合。

10.2.3 与隐式网络结合

  1. 如前所述,普通 DNN 学习隐式高阶特征交互。由于CIN 和普通 DNN 可以互补,因此使模型更强大的一种直观方法是将这两种结构结合起来。最终得到的模型与 Wide & DeepDeepFM 模型非常相似,架构如下图所示。我们将新模型命名为 eXtreme Deep Factorization Machine: xDeepFM 。一方面 xDeepFM 同时包含低阶特征交互和高阶特征交互,另一方面xDeepFM 同时包含隐式特征交互和显式特征交互。

    xDeepFM 的输出单元结果为:

    其中: 为非线性激活函数; 为原始特征; 为普通 DNN 的输出;CIN 的输出; 为权重向量,bias

    对于二元分类问题,损失函数为 log loss

    其中 为训练样本总数。

    优化过程最小化以下目标函数: 。其中: 为正则化系数, 为包括线性部分、CIN 部分、DNN 部分的训练参数集合。

  2. FM, DeepFM 的关系:假设所有字段都是单值univalent 的。从上图不难看出,当 CIN 部分的深度为 feature map 数量 时,xDeepFMDeepFM 的推广,通过学习 FM 层的线性回归权重(注意,在 DeepFM 中,FM 层的单元直接连接到输出单元,没有任何系数)。

    当我们进一步移除 DNN 部分时,同时对 feature map 使用一个 constantsum 滤波器(即它只是获取输入的 sum,没有任何待学习的参数,此时 )时,那么 xDeepFM 就降级downgraded 为传统的 FM 模型。

10.3 实验

  1. 这里我们进行了大量实验来回答以下问题:

    • Q1:我们提出的 CIN 在高阶特征交互学习中的表现如何?
    • Q2:推荐系统是否需要结合显式高阶特征交互和隐式高阶特征交互?
    • Q3:网络的超参数如何影响 xDeepFM 的性能?

    我们将在介绍一些基本的实验配置之后回答这些问题。

  2. 数据集:我们将在以下三个数据集中评估我们提出的方法。

    • Criteo 数据集:它是一个可以公开访问的、著名的工业 benchmark 数据集,用于开发点击率预估模型。给定用户和他正在访问的网页,目标是预估用户点击给定广告的概率。

    • DianPing 数据集:大众点评网是中国最大的消费者评论网站。它提供多种特征,如评论、签到 check-in、以及商店的元信息(包括地理位置和商店属性)。我们为餐厅推荐实验收集了 6 个月的用户 check-in 记录。给定用户的用户画像、目标餐厅的属性、以及用户最近访问的三个point of interest: POI,我们希望预测他将访问目标餐厅的概率。

      对于用户 check-in 样本中的每家餐厅(postive 餐厅),我们根据 POI 热度popularitypostive 餐厅 3 公里范围内的四家餐厅进行采样作为负样本。

    • Bing News 数据集:Bing News 是微软 Bing 搜索引擎的一部分。为了评估我们模型在真实商业数据集中的性能,我们收集了新闻阅读服务上连续五天的曝光日志。我们使用前三天的数据进行训练和验证、用最后两天的数据进行测试。

    对于 CriteoDianping 数据集,我们按照 8:1:1 随机拆分样本用于训练、验证、测试。

    下表给出了这三个数据集的统计特性。

  3. 评估指标:我们使用两个指标 AUCLogloss 从不同角度来评估模型性能。

    • AUC 衡量一个正样本的排序高于随机选择的负样本的概率。它仅考虑预测样本的相对排序,对于类别不平衡问题class imbalance problem 不敏感。
    • 相反,Logloss 衡量每个样本的预测 score 和真实 label 之间的距离。

    有时我们更多地依赖 Logloss,因为我们需要使用预估点击率来估计排序策略的收益(通常使用 eCPM = pCTR x bid 来排序)。

  4. baseline 方法:我们将 xDeepFMlogistic regression: LRFMDNN(普通深度神经网络)、PNN(从 IPNNOPNN 中选择更好的那个)、Wide & DeepDCNDeepFM 进行比较。如前所述,这些模型与我们的 xDeepFM 高度相关,其中一些是推荐系统的 state-of-the-art 模型。

    注意,本文的重点是自动学习特征交互,因此我们不包括任何手工制作的交叉特征。

  5. 配置:

    • 我们使用 Tensorflow 实现我们的方法。
    • 每个模型的超参数通过在验证集上进行网格搜索来调优,每个模型的最佳 setting 将在相应部分显示。
    • 学习率设置为 0.001,优化器为 Adambatch size = 4096
    • 对于 DNN, DCN, Wide & Deep, DeepFM, xDeepFM,采用 L2 正则化。对于 PNN,采用 dropout rate = 0.5dropout 正则化。
    • 每层神经元数量的默认设置为:DNN 部分每层 400 个神经元;CIN 部分在 Criteo 数据集上每层 200 个神经元、在Dianping 数据集和 Bing News 数据集上每层 100 个神经元。
    • 由于本文关注的是神经网络结构,因此我们将所有模型的 field embedding 维度设为固定值 10

    我们使用 5Tesla K80 GPU 并行进行不同 setting 的实验。源代码可以在 github 上获取。

10.3.1 Q1: 单个神经网络组件的性能比较

  1. 我们想知道单体 CIN 的效果。注意:FM 显式地建模二阶特征交互,DNN 隐式地建模高阶特征交互,CrossNet 尝试使用少量参数建模高阶特征交互(如前所述,这被证明无效),而CIN 显式地建模高阶特征交互。理论上无法保证某个单体individual 模型优于其它单体模型,因为这确实取决于数据集。例如,如果实际数据集不需要高阶特征交互,那么 FM 可能是最好的单体模型。因此,我们对哪个模型在这个实验中表现最好没有任何预期。

    下表显式了所有单体模型在三个实际数据集上的表现,Depth 列表示超参数调优找到的最佳网络深度。这里 CINxDeepFMCIN 网络,不包含 xDeepFMDNN 部分。CrossNetDCNcross network 部分,也不包含 DNN 部分。

    令人惊讶的是,我们的 CIN 始终优于其它模型。

    • 一方面,结果表明:对于实际数据集,稀疏特征上的高阶交互是必要的。这可以通过 DNNCrossNetCIN 在所有三个数据集上显著优于 FM 的事实来验证。
    • 另一方面,CIN 是最好的单体模型,这证明了 CIN 在显式建模高阶特征交互方面的有效性。

    注意,CIN 可以对 阶特征交互进行建模。同样有趣的是,CIN 需要 5 层才能在 Bing News 上产生最佳结果。

10.3.2 Q2: 整体模型的性能比较

  1. xDeepFMCINDNN 集成到端到端模型中。虽然 CINDNN 在学习特征交互方面涵盖了两个不同的属性,但是我们有兴趣知道它们结合在一起进行联合的显式学习和隐式学习是否确实有必要和有效。在这里,我们比较了几个强baseline,其中不限于单体模型individual model 。结果如下表所示,可以看到:

    • LR 远比所有其它模型差,这表明 factorization-based 的模型对预测稀疏特征至关重要。
    • Wide & Deep, DCN, DeepFM, xDeepFM 明显优于 DNN,这直接反映了虽然简单,但是融合了混合组件 hybrid components 对于提高预测系统的准确性很重要。
    • 我们提出的 xDeepFM 在所有数据集上都实现了最佳性能,这表明结合显式高阶特征交互和隐式高阶特征交互是必要的,并且 xDeepFM 在学习此类组合时是有效的。
    • 另一个有趣的观察是,所有基于神经网络的模型都不需要非常深的网络结构以获得最佳性能。depth 超参数的典型设置为 23xDeepFM 的最佳深度为 3,这表明我们学习的交互最多为 4 阶。

    表中的 Depth 列给出整体模型通过超参数调优得到的各个组件的最佳深度,格式为 ” cross 层深度,DNN 层深度“。

10.3.3 Q3: 超参数研究

  1. 这里我们研究超参数对 xDeepFM 的影响,包括:隐层数量、每层神经元数量、激活函数。我们通过保持 DNN 部分的最佳设置的同时改变 CIN 部分的setting 来进行实验。

  2. 隐层深度:下图展示了隐层数量的影响。可以看到:

    • xDeepFM 的性能在开始时随着网络深度的增加而增加。
    • 然而,当网络深度大于 3 时,模型性能会下降。这是由于过拟合引起的,因为我们发现当添加更多隐层时,训练损失仍然在不断下降。

  3. 每层神经元数量:增加每层神经元数量表示增加 CIN 中的 feature map 数量。如下图所示,当我们将每层神经元数量从 20 增加到 200 时,Bing News 数据集上的模型性能稳步提高。而在 Dianping 数据集上,100 是最佳的每层神经元数量。在这个实验中,我们将隐层深度固定为 3

    注:由于 field embedding 固定为 10,因此 CIN 每层神经元数量为 20 意味着

  4. 激活函数:注意,我们在CIN 神经元上用恒等映射作为激活函数。深度学习文献中一种常见做法是在隐层神经元上使用非线性激活函数。因此,我们在 CIN 上比较不同激活函数的结果(对于 DNN 中的神经元,我们保持使用 relu 激活函数)。如下图所示,恒等映射确实是最适合 CIN 中神经元的激活函数。

  5. 未来工作有两个方向:

    • 首先,目前我们仅使用 sum 池化来嵌入多元multivalentfield。我们可以探索使用 DIN 机制根据候选 item 来捕获相关的 activation
    • 其次,如前所述,CIN 模块的时间复杂度很高。我们有兴趣开发一个分布式版本的 xDeepFM,它可以在 GPU 集群上有效地训练。

十一、ESMM[2018]

  1. 转化率conversion rate: CVR 预估是工业 application (如在线广告、推荐等等)中 ranking 系统的一项重要任务。例如,在 optimized cost-per-click: OCPC 广告中使用预估的 CVR 来调整每次点击的出价,从而实现平台和广告主的双赢。在推荐系统中,预估的 CVR 也是平衡用户点击偏好和购买偏好的一个重要因子。

    论文 《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》 聚焦于点击后 post-clickCVR 预估任务。为简化讨论,论文以电商网站推荐系统中的 CVR 建模为例。给定推荐的 item,用户可能会点击感兴趣的 item 并进一步购买其中的某些点击 item 。换句话讲,用户操作遵循 “曝光 --> 点击 --> 转化” 的序列模式 sequential pattern 。这样,CVR 建模指的是估计 post-click CVR 任务,即 pCVR = p(conversion | click, impression)

    通常,传统的 CVR 建模方法采用类似于点击率预click-through rate: CTR估任务中开发的技术,例如最近流行的深度网络。然而,存在几个 task-specific 的问题,使得 CVR 建模具有挑战性。其中,论文报告了实践中遇到的两个关键问题:

    • 样本选择偏差sample selection bias: SSB问题:如下图所示,传统的 CVR 模型在由点击样本组成的数据集上训练,同时在整个曝光空间上执行预测。训练空间由点击样本构成,它只是所有曝光组成的推断空间的一部分。

      SSB 问题会损害模型的泛化性能。

    • 数据稀疏data sparsity: DS问题:在实践中,训练 CVR 模型的数据通常远远少于训练 CTR 模型的数据。训练数据的稀疏性使得 CVR 模型很容易陷入过拟合。

    有几项研究试图应对这些挑战:

    • 《Estimating conversion rate in display advertising from past erformance data》 建立了不同特征的层级估计器hierarchical estimators ,并结合逻辑回归模型融合这些估计器来解决数据稀疏问题。然而,它依赖于先验知识来构建层级结构hierarchical structures ,这很难应用于具有数千万用户和 item 的推荐系统。

    • 过采样oversampling 方法拷贝了罕见类rare class 的样本,这有助于缓解数据的稀疏性,但是对采样率很敏感。

    • All Missing As Negative: AMAN 应用随机采样策略来选择未点击的曝光作为负样本。它可以通过引入未观测到unobserved 的样本在一定程度上消除 SSB 问题,但是会导致始终被低估的预测。

      因为在未点击的曝光样本中,假如所有曝光都被用户点击,则可能存在一定比例的转化行为(正样本),而 AMAN 方法假设所有未点击的曝光都是负样本。

    • 无偏的方法unbiased method 通过 rejection 采样从观测中拟合真实的潜在分布,从而解决了 CVR 建模中的 SSB 问题。但是,通过 rejection 概率对样本进行加权时(需要除以拒绝率 rejection probability ),可能会遇到数值不稳定的情况。

    总之,在 CVR 建模场景中,SSBDS 问题都没有得到很好的解决,而且上述方法都没有利用序列动作sequential actions 的信息。

    在论文 《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》 中,通过充分利用用户动作的序列模式,作者提出了一种叫做 Entire Space Multitask Model: ESMM 的模型,它能够同时消除 SSBDS 问题。

    ESMM 中,作者引入两个辅助任务:曝光后post-view 点击率click-through rate: CTR 预估任务、曝光后 post-view 点击转化率 clickthrough& conversion rate: CTCVR 预估任务。

    • ESMM 不是直接使用点击样本训练 CVR 模型,而是将 pCVR 视为中间变量,乘以 pCTR 等于 pCTCVRpCTCVRpCTR 都是用所有曝光样本在整个曝光空间上估计的,因此派生的 pCVR 也适用于整个曝光空间。这表明 SSB 问题已经消除。
    • 此外,CVR 网络的 feature representation 参数与 CTR 网络共享,而 CTR 用更丰富的样本进行训练。这种 parameter transfer learning 有助于显著地缓解 DS 问题。

    在这项工作中,作者从淘宝的推荐系统中收集流量日志构建数据集。整个数据集由 89 亿个样本组成,其中包含带点击 label 、转化 label 的序列 labels 。作者进行了仔细的实验,结果表明 ESMM 始终优于竞争模型,这证明了 ESMM 的有效性。作者还公布了数据集(采样之后),以便于该领域的未来研究。据作者所知,这是第一个包含用于 CVR 建模的、带点击label 和转化 label 样本的公共数据集。

11.1 模型

  1. 假设观测到的数据集为 ,样本 从定义域为 的一个分布 中采样而来,其中 为特征空间、label 空间, 为曝光总量。

    • 代表观察到的曝光的特征向量,通常是具有 multi-fields (例如用户字段、item 字段等等)的高维稀疏向量。
    • 是二元标签, 表示发生点击事件, 表示发生转化事件。 揭示了点击label 和转化 label 的序列依赖性sequential dependence ,即转化事件发生之前总是发生了点击事件。

    post-clickCVR 建模是估计 的概率。有两个相关的概率与 pCVR 相关:

    • post-view 的点击率click-through rate: CTR 预估:
    • post-view 的点击转化率 click&conversion rate: CTCVR 预估:

    这些概率满足公式:

  2. 最近,人们提出了基于深度学习的方法用于 CVR 建模,从而实现了 state-of-the-art 性能。这些方法中大多数都遵循类似的 Embedding & MLP 网络架构。下图说明了这种架构,为简单起见,我们将其称作 BASE 模型。

    简而言之,传统的 CVR 建模方法直接估计 post-click 的转化率 。这些方法使用点击样本训练模型,即: ,其中 为点击总量。显然, 的子集。

    注意,在 中未转化的点击被视为负样本,而转化的点击视为正样本。

  3. 在实践中,CVR 建模会遇到几个 task-specific 的问题,这使得任务具有挑战性。

    • 样本选择偏差 sample selection bias: SSM:事实上,传统的 CVR 建模通过引入辅助特征空间 来近似 。其中 表示与 关联的一个受限空间limited space

      ,存在一个 pair ,其中 的点击label。通过这种方式, 在空间 上使用 的点击样本进行训练。

      在推断阶段, 在整个空间 上的预估计算为 ,其中我们假设对于 ,任意 pair 都有 。这个假设很可能被违反,因为 仅仅是整个空间 的一小部分。

      • 一方面, 受到点击事件随机性的严重影响,其中点击事件很少发生,并且点击事件发生概率在空间 的各个区域内变化。
      • 另一方面,如果在实践中没有足够的观察,则空间 可能与 有很大差异。这会使得训练样本的分布偏离真正的底层分布,并损害 CVR 建模的泛化性能。
    • 数据稀疏性 data sparsity: DS:传统方法使用点击样本 来训练 CVR 模型,而点击事件很少发生导致 CVR 建模的训练数据极其稀疏。直观上,CVR 任务训练样本量通常比相关的 CTR 任务(在所有曝光样本 上训练)小 1 ~ 3 个量级。下表显示了我们实验数据集的统计数据,其中 CVR 任务的样本数量仅为 CTR 任务的 4%

    值得一提的是,CVR 建模还存在其它挑战,例如延迟反馈 delayed feedback 。这项工作暂且不关注它,原因之一是我们系统中的转化延迟程度是可以接受的,另一个原因是我们的方法可以结合之前的工作(《Modeling delayed feedback in display advertising》)来处理。

  4. 我们提出的 ESMM 如下图所示,它很好地利用了用户动作的序列模式。借鉴多任务学习的思想,ESMM 引入了 CTR 预估和 CTCVR 预估这两个辅助任务,同时消除了上述 CVR 建模的问题。

    总体而言,ESMM 同时输出关于给定曝光的 pCTR、pCVR、pCTCVRESMM 主要由两个子网络组成:下图中左侧的 CVR 网络和右侧的 CTR 网络。CVR 网络和 CTR 网络都采用与 BASE 模型相同的结构。 CVR 网络和 CTR 网络输出的乘积作为 CTCVR

  5. ESMM 有一些亮点对 CVR 建模有显著影响,从而将 ESMM 与传统方法区分开:

    • 在整个空间上建模:根据前面的推导,我们有:

      这里 在所有曝光的数据集 上建模。因此,通过估计 pCTCVRpCTR,可以在整个输入空间 上推导出 pCVR,这直接解决了样本选择偏差问题。

      通过分别使用单独训练的模型估计 pCTRpCTCVR,并通过上述等式获得 pCVR,这似乎很容易。为简单起见,我们将其称作 DIVISION。然而,pCTR 实际上是一个很小的数字,除以它会引起数值不稳定。

      ESMM 使用乘法形式避免了这种情况。在 ESMM 中,PCVR 只是一个中间变量,pCTRpCTCVRESMM 在整个空间中实际估计的主要因子。

      • 乘法形式使得三个相关联associated 的、共同训练co-trained 的估计器estimators 能够利用数据的序列模式并在训练期间相互交流信息。
      • 此外,乘法形式还确保了估计的 pCVR 取值在 [0.0, 1.0] 的范围内,而在 DIVISION 方法中可能会超过 1.0

      ESMM 的损失函数定义为:

      其中 CTR 网络和 CVR 网络的参数, 是交叉熵损失函数。

      这个损失函数由来自 CTR 任务损失和 CTCVR 任务损失这两项组成,并且在所有曝光样本上计算,而没有使用 CVR 任务的损失。在数学上,上式将 分解为两个部分: ,这实际上利用了点击label 和转化 label 的序列依赖性。

    • 特征表示迁移 feature representation transfer:如前所述,embedding layer 将大规模稀疏输入映射到低维 representation 向量。embedding layer 贡献了深度网络的大部分参数,其学习需要大量的训练样本。

      ESMM 中,CVR 网络的 embedding dictionaryCTR 网络共享,这遵循 feature representation transfer learning 的范式。CTR 任务的所有曝光样本相比较于 CVR 任务的点击样本要丰富的多。这种参数共享机制使得 ESMM 中的 CVR 网络能够从未点击的曝光中学习,为缓解数据稀疏问题提供了很大帮助。

    注意,ESMM 中的子网络可以替换为一些最近开发的模型,这可能会获得更好的性能。由于篇幅所限我们将其略去,我们聚焦于解决 CVR 建模在实际实践中遇到的挑战。

11.2 实验

  1. 数据集:在我们的调查中,在 CVR 建模领域没有发现具有点击label 、转化 label 的序列 labels 的公共数据集。为了评估ESMM 方法,我们从淘宝的推荐系统收集流量日志,并发布整个数据集的 1% 随机抽样版本,其大小仍然达到 38GB (未压缩)。在本文的剩余部分,我们将发布的数据集称作公共数据集 Public Dataset,将整个数据集(未采样的)称作产品数据集 Product Dataset 。下表总结了两个数据集的统计数据。

  2. 竞争方法:

    • BASE :即前面介绍的简单 DNN 模型,不采取任何额外的策略。
    • AMAN:应用负采样策略的 BASE 模型,负采样比例从 {10%,20%,50%,100%} 中搜索并报告最佳结果。
    • OVERSAMPLING:执行正样本过采样策略的 BASE 模型,采样率从 {2,3,5,10} 中搜索并报告最佳结果。
    • UNBIAS:执行 rejection 采样策略的 BASE 模型,通过拒绝采样使得训练分布(即点击数据集的数据分布)和真实分布(即曝光数据集的数据分布)保持一致,pCTR 被视作拒绝概率。
    • DIVISION:使用单独训练的CTR 网络和 CTCVR 网络分别估计 pCTRpCTCVR,然后计算 pCVR = pCTCVR/pCTR 。其中 CTR 网络和 CTCVR 网络均采用 BASE 模型。
    • ESMM-NSESMM 模型的一个精简版,它不共享 embedding 参数。

    前四种方法是直接基于 state-of-the-art 深度网络对 CVR 直接建模的不同变体。DIVISION、ESMM-NS、ESMM 共享相同的思想,即在整个空间上对 CVR 进行建模,其中涉及 CVR 网络、CTR 网络、CTCVR 网络等三个网络。ESMM-NSESMM 共同训练这三个网络,并从 CVR 网络中获取输出。

    为公平比较,包括 ESMM 在内的所有竞争方法都采用 BASE 模型相同的网络结构和超参数,其中包括:使用 ReLU 激活函数、 embedding 向量维度为 18MLP 网络的每一层维度为 360 × 200 × 80 × 2、使用 adam 优化器(超参数为 ) 。

  3. 评估指标:我们在两个不同的任务上进行比较:

    • 传统的 CVR 预估任务:在具有点击样本的数据集上估计 pCVR

    • CTCVR 预估任务:在具有曝光样本的数据集上估计 pCTCVR

      CTCVR 任务中,所有模型都通过 pCTR x pCVR 来计算 pCTCVR,其中:pCVR 分别由每个模型估计,pCTR 是使用相同的、独立训练的 CTR 网络估计的(与 BASE 模型相同的网络结构和超参数)。

    第二个任务旨在在整个输入空间上比较不同的 CVR 建模方法,这反映了对应于 SSB 问题的模型性能。

    这两个任务都将时间序列中的前 1/2 数据作为训练集、后 1/2 数据作为测试集。

    评估指标为 AUC,所有实验重复 10 次并报告平均结果。

  4. Public Dataset 结果:下表显式了不同模型在 Public Dataset 上的结果。

    • BASE 模型的所有三个变体中,只有 AMANCVR 任务上表现稍差,这可能是由于随机采样的敏感性。OVERSAMPLINGUNBIASCVRCTCVR 任务上都比 BASE 模型有所改进。

    • DIVISIONESMM-NS 都估计了整个空间的 pCVR,并且在 BASE 模型上取得了显著的提升。由于避免了数值不稳定,ESMM-NS 的性能优于 DIVISION

    • ESMM 进一步改进了 ESMM-NS。通过利用用户动作的序列模式,并从未点击的数据以迁移机制来学习,ESMMCVR 建模提供了一个优雅的解决方案,从而同时消除 SSB 问题和 DS 问题并击败所有竞争对手。

      • BASE 模型相比,ESMMCVR 任务上实现了 2.56% 的绝对 AUC 增益,这表明它即使对有 bias 的样本也具有良好的泛化性能。
      • BASE 模型相比,ESMM 在全样本的 CTCVR 任务上实现了 3.25% 的 绝对AUC 增益。

      这些结果验证了我们建模方法的有效性。

  5. Product Dataset 结果:我们在我们的 Product Dataset 上进一步评估了 ESMM,其中包含 89 亿个样本,比公开的 Public Dataset 大两个数据量级。

    为了验证训练集规模的影响,我们针对不同的采样率对这个大规模数据集进行了仔细的比较,结果如下图所示。

    • 所有方法都随着训练样本量的增加而有所改善。这表明了数据稀疏性的影响。

    • 除了 AMAN1% 采样的 CVR 任务以外,所有其它模型在所有任务的所有训练集规模上都超越了BASE 模型。

    • ESMM-NSESMM 在不同采样率方面始终优于所有竞争对手。特别是,ESMMCVRCTCVR 任务上比所有竞争对手都保持了很大的 AUC 提升幅度。

      BASE 模型是为我们真实系统中的主要流量提供服务的最新版本。使用整个数据集进行训练,ESMMCVR 任务上相对于 BASE 模型实现了 2.18% 的绝对 AUC 增益,在 CTCVR 任务上相对于 BASE 模型实现了 2.32% 的绝对 AUC 增益。对于工业application 而言,这是一项重大改进,其中 0.1%AUC 提升就非常显著。

  6. 未来工作:我们打算在具有 “请求 --> 曝光 --> 点击 --> 转化” 等 multi-stage 动作的 application 中设计全局优化模型 global optimization model

十二、DIN[2017]

  1. cost-per-click: CPC 广告系统中,广告按照 effective cost per mille: eCPM 进行排序。eCPM 是竞价 bid price 和点击率 click-through rate: CTR 的乘积,而 CTR 需要由系统预测,因此 CTR 预估模型的性能直接影响系统最终收入从而在广告系统中起着关键作用。

    CTR 预估模型受到了学术界和工业界的广泛关注。最近,受到深度学习在计算机视觉和自然语言处理中取得成功的启发,人们已经提出了基于深度学习的方法用于 CTR 预估任务。这些方法遵循类似的 Embedding & MLP 范式:首先将大规模稀疏输入特征映射到低维 embedding 向量,然后以 group-wise 方式转换为固定长度的向量,最后拼接在一起并馈入多层感知机 multilayer perceptron: MLP 从而学习特征之间的非线性关系。与常用的逻辑回归模型相比,这些深度学习方法可以减少大量的特征工程工作,大大提升了模型容量 model capability 。为简单起见,在本文中我们将这些方法命名为 Embedding & MLP,它们现在已经在 CTR 预估任务中流行开来。

    然而, Embedding & MLP方法中维度有限的用户 representation 向量将成为表达用户多样化兴趣diverse interests 的瓶颈。以电商网站的展示广告display advertising 为例。用户在访问电商网站时可能同时对不同种类的商品感兴趣,也就是说,用户的兴趣是多样化 diverse 的。当涉及到 CTR 预估任务时,用户兴趣通常是从用户行为数据中捕获的。Embedding & MLP 方法通过将用户行为的 embedding 向量转换为固定长度的向量来学习某个用户所有兴趣的 representation。这个向量位于所有用户的representation 向量所在的欧几里得空间中。换句话讲,用户的多样化兴趣被压缩成一个固定长度的向量,这限制了 Embedding & MLP 方法的表达能力。

    为了使 representation 足以表达用户的多样化兴趣,固定长度向量的维度需要极大地扩展。不幸的是,这会极大地增加模型参数的规模,并加剧有限数据下模型过拟合的风险。此外,这也会增加计算和存储的负担,这种负担对于工业级在线系统而言是不能容忍的。

    另一方面,在预测目标广告时没有必要将某个用户的所有多样化兴趣压缩到单个向量中,因为只有部分用户兴趣才会影响到该用户的行为(点击或不点击)。例如,一位女性游泳爱好者会点击推荐的泳镜,主要是因为她上周购物清单中的泳衣,而不是清单中的鞋子。受此启发,论文 《Deep Interest Network for Click-Through Rate Prediction》提出了一个新模型:深度兴趣网络 Deep Interest Network: DIN

    DIN 通过考虑历史行为与目标广告的相关性来自适应地计算用户兴趣的 representation 向量。通过引入局部激活单元 local activation unitDIN 通过软搜索 soft-searching 历史行为与目标广告的相关部分来关注相关的用户兴趣,并采用加权sum 池化来获得对目标广告的用户兴趣 representation 。与目标广告相关性更高的行为将会获得更高的激活权重 activated weight,并将主导用户兴趣representation。论文在实验部分将这种现象可视化。这样,用户兴趣的 representation 向量随着不同的目标广告而变化,提高了模型在有限维度下的表达能力,使得 DIN 能够更好地捕获用户的多样化兴趣。

    训练具有大规模稀疏特征的工业级深度网络是一项巨大挑战。例如,基于 SGD 的优化方法只更新出现在每个 mibi-batch 中的稀疏特征的参数。然而,如果加上传统的 L2 正则化,则计算变得不可接受,因为这需要为每个 mibi-batch 计算全部参数的 L2 范数。在论文的应用场景中,参数规模高达数十亿。在论文中,作者开发了一种新颖的 mini-batch aware 正则化,其中只有出现在每个 mibi-batch 中的非零特征的参数参与 L2 范数的计算,使得计算可以接受。此外,作者设计了一个数据自适应激活函数,它根据输入分布自适应调整校正点rectified point 来推广常用的 PReLU 激活函数,并被证明有助于训练具有稀疏特征的工业级深度网络。

    论文主要贡献:

    • 指出了使用固定长度向量来表达用户多样化兴趣的局限性,并设计了一种新颖的深度兴趣网络 deep interest network: DIN

      DIN 引入了局部激活单元local activation unit ,从而自适应地根据目标广告从用户历史行为中学习用户兴趣的 representationDIN 可以大大提高模型的表达能力,更好地捕获用户兴趣的多样性特点diversity characteristic

    • 开发了两种新技术来帮助训练工业级深度网络:

      • mini-batch aware 正则化:它可以在具有大量参数的深度网络上节省大量正则化计算,并有助于避免过拟合。
      • 数据自适应激活函数:它通过考虑输入的分布来推广 PReLU 并显示出良好的性能。
    • 对公共数据集和阿里巴巴数据集进行了广泛的实验,实验结果证明了所提出的 DIN 和训练技术的有效性。模型的代码已经公开。所提出的方法已经部署在阿里巴巴的商业展示广告系统commercial display advertising system 中,服务于主流量,为业务带来了显著提升。

    论文聚焦于电商行业展示广告 display advertising 场景下的 CTR 预估建模。这里讨论的方法也可以应用于具有丰富用户行为的类似场景,如电商网站的个性化推荐、社交网络的 feeds 排序。

  2. 相关工作:CTR 预估模型的结构由浅入深,同时 CTR 预估模型中使用的样本数量和特征维度也越来越大。为了更好地提取特征关系从而提高性能,一些工作都关注了模型结构的设计。

    • 作为先驱者,NNLM 为每个单词学习分布式 representation,旨在避免语言模型中的维度诅咒。这种通常被称作 embedding 的方法启发了许多需要处理大规模稀疏输入的 NLP 模型和 CTR 预估模型。
    • LS-PLMFM 模型可以看作是一类具有单个隐层的网络,它们首先在稀疏输入上使用 embedding layer,然后对目标拟合 target fitting 施加专门设计的变换函数 transformation function ,旨在捕获特征之间的组合关系combination relation
    • Deep CrossingWide & DeepYouTube Recommendation CTR model 通过用复杂的 MLP 网络替代了变换函数来扩展 LS-PLMFM,极大地增强了模型容量。
    • PNN 试图通过在 embedding layer 之后引入 product layer 来捕获高阶特征交互。
    • DeepFMWide & Deep 中使用一个 factorization machine: FM 作为 wide 部分,从而无需特征工程。

    总体而言,这些方法遵循相似的模型结构,即结合了 embedding 层(用于学习稀疏特征的稠密representation)和 MLP(用于自动学习特征的组合关系)。这种点击率预估模型大大减少了人工特征工程的工作。

    我们的 base model 遵循这种模型结构。然而,在具有丰富用户行为的 application 中,某些特征通常包含可变长度的 id 列表,例如,YouTube 推荐系统中的历史搜索term 列表、或者历史观看视频列表。已有的模型通常通过 sum 池化或者均值池化将对应的 embedding 向量列表转换为固定长度的向量,这会导致信息丢失。我们提出的 DIN 通过考虑目标广告来自适应地学习 representation 向量,从而解决这个问题,提高了模型的表达能力。

    注意力机制起源于神经机器翻译 Neural Machine Translation: NMT 领域。NMT 对所有 annotations 进行加权求和从而获得预期的 annotation,并且只关注与下一个目标单词相关的信息。最近的一项工作 Deep-Intent 在搜索广告的上下文中应用了注意力。与 NMT 类似,他们使用 RNN 对文本进行建模,然后学习一个全局隐向量来帮助关注每个 query 中的所有关键词。结果表明,注意力的使用有助于捕获 query 或广告的主要意图。

    DIN 设计了一个局部激活单元 local activation unit 来软搜索 soft-search相关的用户行为,并采用加权 sum 池化来获得用户关于目标广告兴趣的自适应representation 。不同广告的用户 representation 向量不同,这与广告和用户之间没有交互的 DeepIntent 不同。

    我们公开了代码,并进一步展示了如何在世界上最大的广告系统之一中成功部署 DIN,并使用新颖的开发技术来训练具有数亿个参数的大规模深度网络。

  3. 背景:在阿里巴巴等电商网站中,广告是天然的商品。在本文的其余部分,如果没有特别声明,我们将广告视为商品。下图简要说明了阿里巴巴展示广告系统的运行过程,它主要包括两个阶段:

    • mathcing 阶段:通过协同过滤等方法生成与访问用户相关的候选广告列表。
    • ranking 阶段:预测每个目标广告的点击率,然后选择排名靠前的广告。

    每天,数以亿计的用户访问电商网站,给我们留下了大量的用户行为数据,这些数据对构建 mathcing 模型和 ranking 模型至关重要。值得一提的是,具有丰富历史行为的用户包含多样化的兴趣。例如,一位年轻的妈妈最近浏览了羊毛大衣、T shirt、耳环、手提包、包包、儿童外套等商品。这些行为数据为我们提供了有关她购物兴趣的提示。当她访问电商网站时,系统会向她展示一个合适的广告,例如一个新的手提包。显然,展示的广告只匹配或激活了这位母亲的部分兴趣。

    总之,对于丰富行为的用户,其兴趣是多样化diverse 的,并且可以在给定某些广告的情况下局部激活locally activated 。我们将在本文后面展示利用这些特点在构建 CTR 预估模型中起着重要作用。

12.1 模型

  1. 与赞助搜索sponsored search 不同,在展示广告系统中用户没有显式地表达意图。在构建点击率预估模型时,需要有效的方法从丰富的历史行为中抽取用户兴趣。描述用户和广告的特征是广告系统点击率建模的基本要素 basic elements 。合理利用这些特征并从中挖掘信息至关重要。

12.1.1 Feature Representation

  1. 工业 CTR 预估任务中的数据大多数采用多组multi-group 离散categorial 的形式,例如 { weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book } 等。数据会通过 one-hot 编码转换为高维稀疏特征。

    • 对于第 组特征(如年龄),假设有 unique 值,则我们将这一组特征编码为 one-hot 向量 。其中第 个元素为 ,当 时表明第 组特征的原始值为
    • 对于某组特征取值为多个离散值的情况,类似地我们进行 multi-hot 编码。其中 ,当 时表示 one-hot 编码、 时表示 multi-hot 编码。

    假设一共有 组特征,则样本可以表示为 ,其中 表示向量拼接, 为样本特征维度。

    这样,上述具有四组特征的样本可以表示为:

  2. 我们系统中使用的所有特征如下表所示。我们将其划分为四类:

    • 用户画像特征User Profile Features:包括用户基础画像如年龄、性别等。
    • 用户行为特征User Behavior Features:包括用户历史访问的商品信息(如商品 id、店铺id、商品类目 id 等)。该特征通常是 multi-hot encoding 向量,包含丰富的用户兴趣信息。
    • 广告特征Ad Features:包括广告的商品id、店铺id、商品类目 id 等。
    • 上下文特征Context Features:包括访问时间等。

    这里不包含任何组合特征combination features ,特征交互由神经网络来捕获。

12.1.2 Base Model

  1. 大多数流行的模型结构采用类似的 Embedding & MLP 范式,我们将其称作 base model,如下图所示。base model 由几个部分组成:

    • Embedding Layer:由于模型输入是高维稀疏的 binary 向量,因此 embedding 层用于将它们转换为低维稠密的 representation

      对于第 feature group ,令 为第 embedding dictionary,其中第 为第 feature group 取值为 对应的 embedding 向量,embedding 维度。embedding 操作遵循 table lookup 机制。

      • 如果 是一个 one-hot 特征向量,且第 个元素 ,则该 feature group 被映射为单个 embedding 向量
      • 如果 是一个 multi-hot 特征向量,且位置 取值为 1,则该 feature group 被映射为多个 embedding 向量 ,其中 multi-hot 非零元素的数量。
    • Pooling layer and Concat layer:注意,不同的用户有不同数量的行为。因此 multi-hot 行为特征向量 的非零值的数量 因人而异,导致相应的 embedding 向量列表的长度是可变的。由于全连接网络只能处理固定长度的输入,因此通常的做法是通过池化层将 embedding 向量列表转换为固定长度的向量:

      两个最常用的池化层是 sum 池化和均值池化,它们对 embedding 向量列表执行 element-wise 的求和、求均值。

      embedding 层和池化层都以 group-wise 的方式执行,从而将原始稀疏特征映射到多个固定长度的 representation 向量中。然后将所有 group-wise representation 向量拼接在一起从而获得样本的整体 representation 向量。

    • MLP:给定拼接好的、稠密的整体representation 向量,全连接层用于自动学习特征组合。最近开发的方法Wide & DeepPNNDeepFM 等聚焦于设计 MLP 的结构以便更好地提取信息。

  2. 损失函数:base model 中使用的目标函数是负的对数似然:

    其中:

    • 为训练集, 为训练样本数量。
    • 为样本特征, 为样本标签。
    • sigmoid 输出层的输出概率,表示样本被点击的概率。

12.1.3 DIN

  1. 在所有这些特征中,用户行为特征至关重要,并且在电商应用场景中对用户兴趣建模起到关键作用。base model 通过聚合用户行为 feature group 上的所有 embedding 向量来获得用户兴趣的固定长度 representation 向量。对于给定的用户,无论目标广告是什么,该 representation 向量都保持不变。这样,维度有限的用户 representation 向量将成为表达用户多样化兴趣的瓶颈。

    为了让模型足够强大,一个简单的方法是扩大 embedding 向量的维度。不幸的是,这会大大增加模型参数的规模,从而导致在有限训练数据下模型过拟合,同时增加计算和存储的负担,这对于工业在线系统而言是无法容忍的。

    是否有一种优雅的方案在有限维度下通过单个向量来表达用户的多样化兴趣?用户兴趣的局部激活特点local activation characteristic 给了我们灵感,从而使得我们设计了一个新颖的、叫做深度兴趣网络deep interest network: DIN 模型。

    想象一下前面提到的年轻妈妈访问电商网站时,她发现展示的新款手提包很可爱并点击它。我们来剖析一下点击动作的驱动力。目标广告通过软搜索 soft-searching 她的历史行为,发现她最近浏览了 tote bagleather handbag 等类似商品。换句话讲,与目标广告相关的行为对点击行为有很大贡献。

    DIN 通过关注目标广告相关的局部激活兴趣representation 来模拟该过程。DIN 不是用单个向量来表达用户的所有多样化兴趣,而是通过考虑历史行为与目标广告的相关性来自适应地计算用户兴趣的 representation。因此,同一个用户的兴趣representation 向量因不同的目标广告而异。

  2. 下图说明了 DIN 的架构。和 base model 相比,DIN 引入了一种新颖设计的局部激活单元 local activation unit ,其它结构保持相同。

    具体而言,局部激活单元作用于用户行为特征(作为加权 sum 池化),从而自适应地计算目标广告 的用户 representation

    其中:

    • 为用户 的、长度为 的历史行为 embedding 向量的列表。

    • 为广告 embedding 向量。

    • 是一个前馈神经网络,它的输出为激活权重

      的前馈神经网络中,除了 这两个 embedding 作为输入之外,我们还将它们的外积 out product 作为输入,这是有助于显式建模相关性。

    • 为用户 针对广告 的用户的兴趣representation 向量,它随着不同的广告而变化。

     

  3. 局部激活单元与 NMT 任务中开发的注意力方法具有相似的思想。然而,与传统的注意力方法不同,我们放松了 的约束,这是为了保留用户兴趣的强度。也就是说,我们放弃了对 的输出使用 softmax 归一化。相反, 的值在某种程度上被视为激活用户兴趣强度的近似approximation

    例如,假设一个用户的历史行为包含 90% 的衣服和 10% 的电子产品。给定关于 T shirt 和手机的两个目标广告,T shirt 激活了大部分属于衣服的历史行为,并且可能比手机获得更大的 值(更高的兴趣强度)。传统的注意力方法通过对 的输出进行归一化从而失去了对 数值尺度numerical scale 上的区分度。

  4. 我们尝试过 LSTM 以序列方式对用户历史行为数据进行建模,但是没有显示出任何改善。与 NLP 任务中受语法约束的文本不同,用户历史行为序列可能包含多个并发concurrent 的兴趣。对这些兴趣的快速跃迁和突然结束导致用户行为序列数据看起来充满噪音。

    一个可能的方向是设计特殊的结构从而以序列方式对此类数据进行建模。我们将其留待未来研究。

12.1.4 训练技巧

  1. 在阿里巴巴的广告系统中,商品和用户的数量达到了数亿。实际上,训练具有大规模稀疏输入特征的工业级深度网络具有很大挑战。这里我们将介绍两种在实践中被证明有用的重要技术。
a. Mini-batch Aware 正则化
  1. 过拟合是训练工业级深度网络的关键挑战。当添加细粒度特征时,例如维度为 6 亿的 goods_id 特征(包括用户 visited_goods_ids 特征、广告 goods_id 特征),如果没有正则化,则在训练的第一个 epoch 之后,模型性能迅速下降,如下图所示的深绿色线所示。

    将传统的正则化方法,如 L2 正则化和 L1 正则化,直接应用于具有稀疏输入和数亿参数的网络是不切实际的。以 L2 正则化为例,在没有正则化的、基于 SGD 优化方法的场景中,只需要更新每个 mini-batch 中出现的非零稀疏特征的参数。然而,当添加 L2 正则化时,它需要在每个 mini-batch 对所有参数计算 L2 范数,这导致计算量非常大,并且在参数扩展到数亿时是不可接受的。

    在本文中,我们引入了一种高效的 mini-batch aware 的正则化器regularizer,它只计算每个 mini-batch 中出现的稀疏特征的参数的 L2 范数,使得正则化计算可行。

  2. 事实上,embedding dictionaryCTR 模型贡献了大部分参数,并产生了繁重 heavy 的计算。

    表示整个 embedding dictionary 的参数,embedding 向量的维度、 为特征空间的维度。在所有样本上对 进行 L2 正则化:

    其中:

    • 为第 embedding 向量。
    • 为示性函数,当样本的第 个特征 是该函数取值为 1,否则取值为零。
    • 表示在所有样本中第 个特征 的样本数量。

    这里之所以使用 ,是因为忽略了样本集中从未出现过的特征对应的 embedding 向量的正则化。事实上,如果某个特征 在训练集中始终为 0(表示该特征从未出现过,即 ),则对应的 embedding 向量 始终不会被更新,对它的正则化就没有意义。在模型中对应的神经元始终取值为零,对模型整体没有影响。这样一来 的取值完全依赖于随机初始化。

  3. 上式可以转换为 mini-batch aware 的方式:

    其中: 表示第 mini-batch 为总的 mini-batch 数量。

    表示 中是否至少出现1 次,则上式可以近似为:

    注意: 取值为01 。理论上应该将 取值为 中特征 出现的次数。但是由于 mini-batch 通常很小,绝大多数特征最多仅出现一次。

    这样我们得到了 L2 正则化的 mini-batch aware 版本,其中 embedding 向量的更新方程为:

    其中:

    • 表示第 mini-batch
    • 为样本标签, 为模型输出, 为损失函数。
    • 为学习率, 为正则化系数。
    • 表示 中是否至少出现1 次, 表示在所有样本中 的样本数量。

    现在 mini-batch 中仅对该 mini-batch 出现过的特征对应的 embedding 向量进行正则化。

b. 数据自适应激活函数
  1. PReLU 激活函数是一种广泛应用的激活函数,其定义为:

    其中:

    • 是示性函数,它控制 这两个通道 channel 之间切换。

      这里我们将 称作控制函数control function

    • 是待学习的参数。

  2. PReLU 采用值为 0hard rectified point ,当每层的输入遵循不同的分布时,这可能不合适。有鉴于此,我们设计了一个名为 Dice 的新的数据自适应激活函数:

    • 在训练阶段, 是每个 mini-batch 中输入的均值和方差。
    • 在测试阶段, 是通过数据集上的移动平均 计算的。
    • 是一个小的常数,在我们的实践中设置为

    新的控制函数如下图右侧所示(左侧为 PReLU 的控制函数)。

    不同配置下的 Dice 激活函数如下图所示。

  3. Dice 可以看做是 PReLU 的泛化,其重要思想是根据输入数据的分布自适应调整 rectified point (为输入的均值)。

    另外,Dice 平滑地控制在两个 channel 之间切换。

    最后,当 时,Dice 退化为 PReLU

12.1.5 在线部署

  1. 值得一提的是,每天都有成千上万的用户来访问我们的系统,对工业深度网络进行在线serving 并非易事。更糟糕的是,在流量高峰期间,我们的系统每秒为超过 100 万用户提供serving。这要求以高吞吐量、低延迟进行实时 CTR 预估。例如,在我们的真实系统中,我们需要在不到 10ms 的时间内为每个用户预估数百个广告的 ctr

    在我们的工程实践中,我们部署了几种重要技术来加速 CPU-GPU 架构下的工业深度网络的在线 serving

    • request batching:合并来自 CPU 的相邻请求从而利用 GPU 的性能。
    • GPU 内存优化:改进 GPU 内存访问方式,从而减少 GPU 内存中的无效的事务transaction
    • 并发的 kernel 计算:允许使用多个 CUDA kernel 同时处理矩阵计算。

    总之,这些技术的优化实际上使得单台机器的 Query Per Second: QPS 翻了一倍。

12.2 实验

  1. 这里我们详细介绍了我们的实验,包括数据集、评估指标、实验设置、模型比较、以及相应的分析。在包含用户行为的两个公共数据集以及从阿里巴巴展示广告系统收集的数据集上进行的实验证明了所提出方法的有效性,该方法在 CTR 预测任务上优于 state-of-the-art 的方法。

  2. 数据集:

    • Amazon 数据集:包含来自亚马逊的商品评论和商品元数据。该数据集通常用作 benchmark 数据集。我们在 Electronics (电子产品)的数据子集上进行实验,该子集包含 192403 个用户、63001 个商品、801 个类目,总计 1689188 个样本。

      数据集中用户行为丰富,每个用户有给出超过 5 条评论,每个商品也收到至少5 条评论。特征包括 goods_id,cate_id,以及用户查看的 goods_id_list, cate_id_list

      任务的目标是根据用户的前 个评论的商品来预测第 个评论的商品。对于每个用户,我们使用 来生成训练集,使用 来生成测试集。

      对于所有模型,我们使用指数衰减的 SGD 优化器,初始学习率为 1.0decay rate = 0.1mini-batch size = 32

    • MovieLens 数据集:包含 138493 个用户、27278 部电影、21 个类目,总计 20000263 个样本。原始的电影评分是 0~5 的连续值,为了使其适合 CTR 预估任务,我们将其转换为二类分类数据:电影评分为45 分的标记为正样本、其它评分的标记为负样本。

      我们根据用户ID 来拆分训练集和测试集。我们随机选择 100000 个用户作为训练集(约 14470000 万个样本),剩余的 38493 个用户作为测试集(约 553 万个样本)。

      任务的目标是根据用户历史行为来预测用户是否将给定的电影评分高于 3 分(正标记)。

      特征包括:movie id, movie_cate_id,以及用户评级过的 moive_id_list, movie_cate_id_list

      我们使用和 Amazon 数据集相同的优化器、学习率、以及 mini batch size

    • Alibaba 数据集:从阿里巴巴在线展示广告系统online display advertising system 收集的流量日志,其中连续两周的样本用于训练、接下来一天的样本用于测试。训练集规模为 20 亿、测试集规模为 1.4 亿。

      对所有的深度模型,每一组特征的 embedding 向量维度为 16MLP 的层数为 192 x 200 x 80 x2。由于数据量巨大,我们将 mini-batch size=5000,并使用 Adam 优化器。我们使用指数衰减,其中学习率从 0.001 开始、衰减率为 0.9

    所有数据集的统计信息如下表所示。上标的 a 表示:对于MovieLens 数据集goods 代表电影。

  3. baseline方法:

    • LR:逻辑回归模型。它是一种广泛用于 CTR 预估任务的浅层模型,我们将其作为 weak baseline 方法。

    • Base Model:如前所述的遵循 Embedding & MLP 架构的模型。它是后续大多数建模 CTR 的深度网络的基础。它充当我们模型比较的 strong baseline

    • Wide & DeepWide & Deep 模型。它由wide 部分和 deep 部分组成,其中 :wide 部分处理手动设计的交叉特征;deep 部分自动抽取特征之间的非线性关系,等同于 Base Model

      由于 wide 部分需要专业的特征工程来作为输入,这里我们将用户行为和候选item 的叉积 cross-product 作为 wide input 。例如,在 MovieLens 数据集中,我们用的是用户历史评分电影和候选电影之间的叉积 。

    • PNN:它在 embedding 层之后引入 product layer 从而捕获高阶特征交互。可以将 PNN 视为 BaseModel 的改进版。

    • DeepFM:通过将 Wide&Deep 中的 wide 部分替换为 FM,它可以视为 Wide&Deep 的改进版。

  4. 评估指标:

    • CTR 预估领域,AUC 是一个广泛使用的指标。它利用预估的 CTR 对所有样本进行排序来衡量排序的优劣。GAUCAUC 的推广,它是用户加权 AUC 的变体,通过对用户的 AUC 求加权均值来衡量用户侧排序的优劣。一些工作表明,GAUC 与展示广告系统中的在线性能更相关。

      GAUC 的计算如下:

      其中: 表示用户 i 的所有样本对应的 auc 是用户 i 的所有样本数; 为用户总数。

      为了简单起见,后面我们仍然将 GAUC 称作 AUC

      事实证明:GAUC 在展示广告中更具有指导意义。 AUC 考虑所有样本的排名,而事实上在线上预测时,对于给定用户我们只需要考虑针对该用户的一组候选广告的排名。

      GAUC 对每个用户单独进行处理,先考虑每个用户的预测结果,再对所有用户进行加权。这可以消除用户 bias 的影响。如:模型倾向于对女性用户打高分(预测为正的概率较高),对男性用户打低分(预测为正的概率较低)。

      • 如果采用AUC 则指标效果一般,因为男性正样本打分可能低于女性负样本。
      • 如果采用 GAUC 则指标效果较好,因为男性用户、女性用户各自的 AUC 都较高,加权之后的 GAUC 也较高。这和线上投放的方式一致。
    • RelaImpr 指标衡量模型的相对提升。对于完全随机的模型,AUC 的值为 0.5。因此 RelaImpr 的定义为:

    注意:所有指标都是在测试集上进行。

  5. 下表给出了 Amazon 数据集和 MovieLens 数据集的实验结果。所有实验重复 5 次并报告平均结果。其中 RelaImpr 表示相对 BaseModel 的提升。

    可以看到:

    • 所有深度模型都大幅超越了 LR 模型,这证明了深度学习的力量。
    • 具有特殊设计结构的 PNNDeepFM 超越了 Wide & Deep
    • DIN 在所有方法中表现最好。这归因于 DIN 中的局部激活单元结构的设计。通过这种设计,DIN 获得了用户兴趣的自适应的、不同的 representation ,这极大地提高了模型的表达能力。
    • DiceDINDIN 进一步地提升,从而证明了数据自适应激活函数 Dice 的有效性 (其它模型使用 PReLU 激活函数)。

  6. 由于 Amazon 数据集和 MovieLens 数据集的特征维度不太高(约 10 万维),因此所有的深度模型(包括我们提出的 DIN)都未遇到严重的过拟合问题。但是,在 Alibaba 数据集中涉及到非常高维度的特征,过拟合将成为一个严重的挑战。例如,当训练细粒度特征(如 goods_ids 特征具有 6 亿维)的深度学习模型时,如果没有正则化,那么训练的第一个 epoch 就会发生严重的过拟合,这会导致模型性能迅速下降,如下图的深绿色曲线所示。

    因此我们进行详细的实验来检查几种常用正则化的性能:

    • dropout:在每个样本中,随机丢弃 50%feature id

    • 人工频率过滤:在每个样本中,人工去掉历史行为中的低频商品ID,保留高频商品ID 。在我们的实验中,我们保留 top 2000 万 的商品 id

    • DiFacto 正则化:正则化系数

      其中低频特征的正则化幅度更小。

    • MBA:我们提出的 mini-batch aware 正则化,正则化系数

      其中低频特征的正则化幅度更大。

    Base ModelAlibaba 数据集上不同正则化的效果如下表所示。其中 RelaImpr 是相对于没有正则化(第一行)的提升。训练loss 曲线、测试 loss 曲线、测试 auc 曲线参考下图所示。可以看到:

    • 和没有 good_ids 特征的模型相比,带有 goods_ids 特征的模型在测试 AUC 上都有所提升。这是因为用户历史行为包含丰富的信息。
    • 对于带 good_ids 特征的模型,如果没有正则化则过拟合会迅速发生(深绿色曲线)。
    • dropout 可以防止过拟合,但是会导致收敛速度变慢。
    • 人工频率过滤某种程度上可以缓解过拟合。但是它直接丢弃了大多数低频 good id,使得模型失去机会来更好地利用细粒度特征(即历史行为中的低频商品)。
    • DiFacto 会对高频的 good_id 设置更高的惩罚,其效果要比人工频率过滤更差。
    • 我们提出的 mini-batch aware 正则化效果最好,它可以有效防止过拟合。

  7. 下表给出了 Alibaba 数据集的实验结果。RelaImpr 表示相对于 BaseModel 的提升。 a 表示使用 PReLU 作为激活函数,b 表示使用 dropout 正则化。可以看到:

    • LR 比所有深度模型要弱得多。

    • 使用相同的激活函数和正则化的条件下,DIN 比其它所有深度模型都要好。

      BaseModel 相比,DIN 实现了 0.0059 的绝对 AUC 增益和 6.08%RelaImpr。这再次验证了局部激活单元结构的有用设计。

    • 基于 DIN 的消融研究证明了 mini-batch aware: MBA 正则化和 Dice 激活函数的有效性。

      • 使用 mini-batch aware 正则化器的 DINdropout 带来额外的 0.0031 的绝对 AUC 增益。
      • DIN with DicePReLU 带来了额外的 0.0015 的绝对 AUC 增益。

    总而言之,相比较于 BaseModel,带有 MBA 正则化和 DiceDIN 实现了总的 11.65%RelaImpr0.0113 的绝对 AUC 增益。即使与表现最佳的 baseline DeepFM 相比,DIN 仍然实现了 0.009 的绝对 AUC 增益。值得注意的是,在具有亿级流量的商业广告系统中,0.001 的绝对 AUC 提升就非常重要,值得模型的部署。DIN 显示出极大的优势来更好地理解和利用用户行为数据的特征。

    此外,我们提出的 MBA 正则化和 Dice 激活函数进一步提高了模型的性能,为训练大规模工业深度网络提供了有力的帮助。

  8. 我们在阿里巴巴的展示广告系统 从 20175 月到 20176 月进行了在线 A/B test 实验。在近一个月的测试中,和我们最新版的 BaseModel 模型(online-serving 模型)相比,我们带 MBA 正则化和 Dice 激活函数的 DIN 提升了 10.0%CTR3.8%RPM(千次收入 Revenue Per Mille: RPM) 。这是一项重大的提升,并证明了我们提出的方法的有效性。目前 DIN 已经部署并服务于主要流量。

  9. 可视化:我们在 Alibaba 数据集上进行案例研究来揭示 DIN 的内部结构。

    • 首先,我们研究了局部激活单元的有效性。下图给出了用户行为关于候选广告的激活强度。正如预期的那样,和候选广告相关的行为的权重较高。

    • 然后,我们将学到的 embedding 向量可视化。我们选择一位年轻的母亲,然后随机选择9 个类目(服装、运动鞋、箱包等)、每个类目 100 种商品作为她的候选广告。下图给出了 DIN 学到的商品 embedding 进行 t-SNE 可视化的结果,其中相同形状的点对应同一个类别。

      可以看到:具有相同类目的商品几乎都在同一个簇cluster,这清楚地展示了 DIN 的聚类属性clustering property

      此外,我们根据模型预估的 ctr 来对候选广告的点进行染色。因此下图也是用户在 embedding 空间中对潜在候选广告的兴趣密度分布。这表明:DIN 可以在候选广告的 embedding 空间中形成多峰兴趣分布,从而捕获用户的多样化兴趣。

十三、DIEN[2019]

  1. 点击付费cost per click: CPC 是广告系统中最常见的计费形式之一,广告主需要为广告的每次点击付费。在 CPC 广告系统中,点击率 click-through rate: CTR 预估的表现不仅会影响到整个平台的最终收入,还会影响到用户体验 user experience 和满意度 satisfaction 。点击率预估建模越来越受到学术界和工业界的关注。

    在大多数 non-searching 的电商场景中,用户不会主动表达当前的意图。设计模型以捕获用户的兴趣及其兴趣的动态dynamics是提高点击率预估性能的关键。最近,很多 CTR 模型从传统方法转变到深度 CTR 模型。大多数深度 CTR 模型聚焦于捕获来自不同 fields 的特征之间的交互,而不太关注用户兴趣 representationDIN 强调用户兴趣是多样的,并使用 attention based 的模型来捕获与目标 item 相关的兴趣,从而获得自适应的兴趣 representation。然而,包括 DIN 在内的大多数兴趣模型都将行为直接视为兴趣,而显式的行为很难充分反映潜在的兴趣。因此这些方法都忽略了挖掘用户行为背后真正的用户兴趣。此外,用户兴趣不断演变evolve,捕获兴趣的动态对于兴趣 representation 很重要。

    基于所有这些观察,论文《Deep Interest Evolution Network for Click-Through Rate Prediction》提出了深度兴趣演变网络 Deep Interest Evolution Network: DIEN 来提高 CTR 预估的性能。DIEN 中有两个关键模块:一个是从显式的用户行为中提取潜在的时序兴趣temporal interest ,另一个是对兴趣演变过程interest evolving process 进行建模。恰当的兴趣 representationDIEN 模型的基石。

    • 在兴趣提取层 interest extractor layerDIEN 选择 GRU 来建模行为之间的依赖关系。遵循兴趣直接导致连续行为的原则,论文提出了辅助损失,它使用下一个行为 next behavior 来监督当前隐状态hidden state 的学习。论文将这些具有额外监督信息的隐状态称作兴趣状态 interest state 。这些额外的监督信息有助于为兴趣 representation 捕获更多的语义信息,并推动 GRU 的隐状态有效地表达兴趣。

    • 更进一步,用户的兴趣是多样化的,这导致了兴趣漂移 interest drifting 现象:用户在相邻访问中的意图可能非常不同,并且用户的一种行为可能依赖于很久以前的行为。每个兴趣都有自己的演变轨迹 evolution track 。同时,一个用户对不同目标 item 的点击行为受到不同兴趣部分的影响。

      在兴趣演变层 interest evolving layer ,论文对于目标 item 相关的兴趣演变轨迹进行建模。基于从兴趣提取层获得的兴趣序列,论文设计了具有注意力更新门的 GRU ,即 GRU with attentional update gate: AUGRUAUGRU 利用兴趣状态和目标 item 计算相关性,增强了相关兴趣 relative interests 对于兴趣演变的影响,同时削弱了因为兴趣漂移导致的非相关兴趣的影响。通过在更新门中引入注意力机制,AUGRU 可以导致针对不同目标 item 的、特定的兴趣演变过程。

    DIEN 的主要贡献如下:

    • 论文聚焦电商系统中的兴趣演变现象,并提出了一种新的网络结构来建模兴趣演变过程。建模兴趣演变导致更具表达性的兴趣 representation 和更精确的点击率预估。
  1. 相关工作:凭借深度学习在特征 representation 和特征组合方面强大的能力,最近的 CTR 模型从传统的线性模型或非线性模型转变到深度模型。大多数深度模型遵循 Embedding & MLP 的结构。基于这种范式,越来越多的模型关注特征之间的交互interaction

    • Wide & DeepDeepFM 都结合了低阶特征交互和高阶特征交互来提高表达能力。
    • PNN 提出了一个 product layer 来捕获跨 field 特征之间的交互模式。

    然而,这些方法并不能清晰地反映数据背后的用户兴趣。DIN 引入了注意力机制来激活局部的、与目标 item 相关的历史行为,并成功地捕获到用户兴趣的多样性特点 diversity characteristic 。然而,DIN 在捕获序列行为 sequential behaviors 之间的依赖关系方面很弱。

    在很多 application 领域中,可以随时间记录 user-item 交互。最近的一些研究表明,这些交互信息可用于构建更丰富的单个用户模型 individual user model 并挖掘 discover 额外的行为模式 behavioral pattern 。在推荐系统中:

    • TDSSM 联合优化长期用户兴趣和短期用户兴趣,提高推荐质量。
    • DREAM 使用 RNN 结构来研究每个用户的动态 representation 以及 item 购买历史的全局序列行为 global sequential behavior
    • 《Ups and downs: Modeling the visual evolution of fashion trends with one-class collaborative filtering》 构建了视觉感知推荐系统,该系统展示了更符合用户和社区community不断演变兴趣的产品。
    • 《Sequential click prediction for sponsored search with recurrent neural networks》 根据用户的兴趣序列衡量用户的相似性,从而提高协同过滤推荐的性能。
    • 《Improving native ads ctr prediction by large scale event embedding and recurrent networks》 通过使用大规模 event embeddingRNN 网络的 attentional output 来改进原始的 CTR 预估性能。
    • ATRank 使用基于注意力的序列框架 attention based sequential framework 来建模异质行为 heterogeneous behavior

    和序列无关的方法相比,这些方法可以显著提高预测准确性。然而,这些传统的基于 RNN 的模型存在一些问题。

    • 一方面,它们大多将序列结构的隐状态直接视为潜在兴趣,而这些隐状态缺乏对兴趣 representation 的、专门的监督。
    • 另一方面,大多数现有的基于 RNN 的模型依次地、平等地处理相邻行为之间的所有依赖关系。众所周知,并非所有的用户行为都严格依赖于相邻的行为。每个用户都有多样化的兴趣,每个兴趣都有自己的演变轨迹,因此这些模型可能会受到兴趣漂移的干扰。

    为了推动序列结构的隐状态有效地代表潜在兴趣,应该引入对隐状态的额外监督。DARNN 使用 click-level 的序列预测,它在每次向用户展示每个广告时,对点击动作进行建模。除了点击动作,还可以进一步引入 ranking 信息。在推荐系统中,ranking loss 已经被广泛用于排序任务。与这些 ranking loss 类似,我们提出了兴趣学习的辅助损失。在每个step ,辅助损失使用 next clicked itemnon-clicked item 来监督兴趣 representation 的学习。

    为了捕获与目标 item 相关的兴趣演变过程,我们需要更灵活的序列学习结构sequential learning structure 。在问答 question answering: QA 领域,DMN+ 使用基于注意力的 GRU ,即 attention based GRU: AGRU 来推动注意力机制对输入事实 fact 的位置和顺序都保持敏感。在 AGRU 中,更新门向量被简单地替换为标量的attention score 。这种替换忽略了更新门所有维度之间的差异,这种差异包含了从先前序列传输的丰富信息。受到 QA 中使用的新型序列结构的启发,我们提出了带注意力门的 GRU ,即 GRU with attentional gate: AUGRU ,从而在兴趣演变过程中激活相关的兴趣。和 AGRU 不同,AUGRU 中的 attention score 作用于从更新门计算出的信息。更新门和 attention score 的结合推动了更专有 specifically 、更敏感 sensitively 的演变过程。

13.1 模型

  1. 这里我们详细介绍 DIEN。首先我们简单回顾一下名为 BaseModel 的、基础的 Deep CTR 模型。然后我们展示了 DIEN 的整体结构,并介绍了用于捕获兴趣和建模兴趣演变过程的技术。

13.1.1 BaseModel

  1. Feature Representation:在线展示广告系统中,有四类特征:

    • 用户画像特征 user profile :包括性别、年龄等。
    • 用户行为特征 user behavior:包括用户访问的商品ID 列表。
    • 广告特征 AD :广告本身也是商品,因此称作目标商品。它包含商品ID、店铺ID 等特征。
    • 上下文特征 Context :包含当前访问时间等特征。

    每类特征中每个field 的特征都编码为 one-hot 向量。例如用户画像中的 female 特征编码为 [0,1] 。假设用户画像、用户行为、广告、上下文这四类特征中不同 fieldone-hot 向量拼接之后分别为

    在序列的 CTR 模型中,值得注意的是,用户行为特征包含一个行为列表,每个行为对应一个 one-hot 向量,可以表示为:

    其中 为用户行为序列的长度, 为所有商品的数量, 是第 个行为的 one-hot 向量。

  2. BaseModel 的结构:大多数 deep CTR 模型基于 Embedding & MLP 结构,因此 BaseModel 主要由以下部分组成:

    • Embedding 部分:embedding 是将大规模稀疏特征转换为低维稠密特征的常用操作。在 embedding layer,每个特征 field 对应一个 embedding 矩阵。例如,visited goodsembedding 矩阵可以表示为:

    其中: 代表第 个商品的 embedding 向量,embedding 向量维度, 为商品数量。

    对于行为特征的one-hot 向量 ,如果 ,则对应于 embedding 向量 ,那么用户行为特征的有序 embedding 向量列表可以表示为: ,其中 表示第 个行为作用的商品。

    • MLP 部分:将来自同一类特征的所有 embedding 向量馈入一个池化层,得到一个固定长度的向量。然后将来自不同类特征的固定长度向量拼接在一起,馈入 MLP 网络中得到最终预测结果。
  3. 损失函数:深度 CTR 模型中广泛使用的损失函数为负的对数似然,它使用目标 itemlabel 来监督整体预测结果。即:

    其中:

    • 为训练集, 为训练集大小。
    • 表示用户是否点击目标 item
    • 为模型预测用户点击目标 item 的概率。

13.1.2 DIEN

  1. 与赞助搜索 sponsored search 不同,在很多电商平台中,用户并没有清晰地表达他们的意图,因此捕获用户兴趣及其动态 dynamics 对于 CTR 预估很重要。DIEN 致力于捕获用户兴趣并建模兴趣演变过程。

    如下图所示,DIEN 由几个部分组成。

    • 首先,所有离散特征都通过 embedding layer 进行转换。

    • 接下来,DIEN 采取两个步骤来捕获兴趣演变:

      • 兴趣提取层 interest extractor layer 根据行为序列提取兴趣序列。
      • 兴趣演变层 interest evolving layer 建模与目标 item 相关的兴趣演变过程。
    • 然后,将最终兴趣的 representation、广告 embedding 向量、用户画像 embedding 向量、上下文 embedding 向量拼接起来。拼接的向量馈入 MLP 以进行最终的预测。

a. Interest Extractor Layer
  1. 在电商系统中,用户行为是用户潜在兴趣的载体,用户执行一次行为之后兴趣可能就会发生变化。在兴趣提取器层,我们从连续的用户行为中提取一系列的兴趣状态。

    电商系统中用户的点击行为非常丰富,即使在很短时间内(如两周),用户历史行为序列的长度也很长。为了在效率和性能之间平衡,我们采用 GRU 建模行为之间的依赖关系,其中 GRU 的输入是按发生时间排序的行为。GRU 克服了 RNN 的梯度消失问题,比 LSTM 更快,适用于电商系统。GRU 形式化为:

    其中:

    • sigmoid 激活函数, 为逐元素积。
    • 为参数矩阵, 为偏置向量。其中 为隐向量维度, 为输入维度。
    • 为用户行为序列中的第 个行为的 embedding,它作为 GRU 的输入。 为第 个隐状态。
  2. 然而,仅捕获行为之间依赖关系的隐状态 无法有效的表达用户兴趣。由于目标 item 的点击行为是由最终兴趣触发的,因此损失函数 中使用的 label 仅仅监督了最后一个兴趣状态 ,历史兴趣状态 没有得到合适的监督。

    众所周知,用户每一步的兴趣状态都将导致连续的行为,因此我们提出辅助损失,从而利用第 步的输入(即行为 )来监督第 步的兴趣状态 的学习。除了采用真实的 next behavior作为正样本之外,我们还从正样本之外采样了一些 item 作为负样本。因此得到 对行为embedding 序列:

    其中:

    • 为训练样本编号, 为训练样本总数。

    • 表示用户的历史行为序列embedding 为用户历史行为序列长度, 为行为 embedding 维度。

      表示用户 历史行为序列的第 itemembedding 向量, 表示全部 itemembedding 集合。

    • 表示负样本采样序列。 表示从用户 历史行为序列第 item 以外的所有item 中采样得到的item embedding

    辅助损失函数为:

    其中:

    • sigmoid 激活函数。
    • 表示用户 的第 个隐状态。
    • 为第 个点击 itemembedding 向量,它作为第 步的、postive 的监督信息; 为第 个负采样 itemembedding 向量,它作为第 步的 negative 的监督信息。

    考虑辅助损失之后,DIEN 模型的整体目标函数为:

    其中: 为模型的主损失函数, 为超参数用于平衡兴趣表达和CTR 预测。

  3. 通过引入辅助函数,每个隐状态 就具有足够的表达能力来表达行为 背后的兴趣。所有 个兴趣状态 一起构成了兴趣序列,从而作为兴趣演化层的输入。

    总体而言,引入辅助函数具有多个优点:

    • 从兴趣学习的角度看,辅助损失函数的引入有助于GRU 的每个隐状态学到正确的兴趣representation
    • GRU 优化的角度看,辅助函数的引入有助于缓解 GRU 的长距离依赖问题,降低反向传播的难度。
    • 还有不怎么重要的一点:辅助损失函数为 embedding 层的学习提供了更多的语义信息,从而产生更好的 embedding 矩阵。
b. Interest Evolving Layer
  1. 随着外部环境和用户自身认知的共同作用,用户的各种兴趣随着时间的推移也在不断演变。以用户对衣服的兴趣为例,随着人口趋势和用户品味的变化,用户对衣服的偏好也在改变。这种兴趣演变过程直接决定了候选衣服商品的点击率预测。对这种兴趣演变过程进行建模有以下优点:

    • 兴趣演变模块interest evolving module 可以提供具有更多相关历史信息的最终兴趣的 representation
    • 可以更好地跟随兴趣演变趋势来预测目标item 的点击率。

    值得注意的是,在演变过程中兴趣表现出两个特点:

    • 由于兴趣的多样性,兴趣可能会发生漂移drift 。兴趣漂移对用户行为产生的影响是:用户可能在某个时间段对各种书籍感兴趣,但是另一个时间段可能对各种衣服感兴趣。
    • 尽管兴趣之间会相互影响,但是每种兴趣都有自己的演变过程。如:书籍和衣服的兴趣演变过程几乎是独立的。我们只关注和目标 item 相关的兴趣演变过程。
  2. 在第一阶段辅助损失的帮助下,我们获得了兴趣序列的 representation。通过分析兴趣演变的特点,我们结合注意力机制的局部激活能力以及GRU 的序列学习能力来建模兴趣演变过程。在 GRU 的每个 step ,局部激活都可以强化相关兴趣的影响,并减弱无关兴趣(兴趣漂移)的干扰,有助于建模目标item 相关的兴趣演变过程。

    为兴趣演变模块的输入向量和隐向量。其中:兴趣演变模块的输入就是兴趣抽取模块的隐向量 ,兴趣演变模块最后一个隐向量 就是最终的兴趣状态。

    我们在兴趣演变模块中使用的attention score函数定义为:

    其中:

    • 是广告 afieldembedding 向量的拼接向量, 为拼接向量维度。
    • 为参数矩阵, 为隐向量维度。

    attention score反映了广告 a 和输入的潜在兴趣 之间的关系,关系越紧密则得分越高。

  3. 接下来,我们将介绍几种结合注意力机制和 GRU 对兴趣演变过程进行建模的方法。

    • GRU with attentional input: AIGRU :为了在兴趣演变过程中激活相关的兴趣,我们提出了一种简单的方法,称作带注意力输入的 GRU GRU with attentional input: AIGRUAIGRU 使用attention score来影响兴趣演变层的输入:

      其中: 是兴趣提取层的第 个隐状态; 是第二个 GRU 的输入,用于兴趣演变。

      AIGRU 中,和目标 item 相关性较低的兴趣的 scale 可以通过attention score来减少。理想情况下,和目标item 相关性较低的输入可以被降低到零。但是 AIGRU 效果不是很好,因为即使是零输入也可以改变 GRU 的隐状态。所以,即使相对于目标item 的兴趣较低,也会影响后面兴趣演变过程的学习。

    • Attention based GRU: AGRU:在问答question answering: QA领域,DMN+ 首先提出了基于注意力的 GRU attention based GRU: AGRU 。通过使用来自注意力机制的 embedding 信息修改 GRU 架构之后,AGRU 可以有效地提取复杂 query 中的关键信息。

      受问答系统的启发之后,我们将 AGRU 的使用从提取 query 中的关键信息,迁移到在兴趣演变过程中捕获相关的兴趣。具体而言,AGRU 使用 attention score 代替 GRU 的更新门,并直接修改隐状态:

      其中: AGRU 的隐状态。

      在兴趣演变的场景中,AGRU 利用attention score 直接控制隐状态的更新。AGRU 在兴趣演变过程中削弱了目标 item 相关性较低兴趣的影响。将注意力嵌入到 GRU 中提高了注意力机制的影响,帮助 AGRU 克服了 AIGRU 的缺陷。

    • GRU with attentional update gate: AUGRU:虽然 AGRU 可以直接使用attention score来控制隐状态的更新,但是它使用了标量(attention score )代替向量(更新门 ) ,忽略了不同维度之间重要性的差异。我们提出了带注意力更新门的 GRU GRU with attentional update gate: AUGRU 来无缝结合注意力机制和 GRU

      其中: 为原始更新门, 是我们为 AUGRU 设计的注意力更新门; AUGRU 的隐状态。

      AUGRU 中,我们保留更新门的原始维度信息,它决定了每个维度的重要性。我们使用attention score 来缩放更新门的所有维度,这导致目标 item 更少相关性的兴趣对隐状态的影响越小。AUGRU 更有效地避免了兴趣漂移带来的影响,并推动目标item 相关的兴趣平稳演变。

13.2 实验

  1. 这里我们在公共数据集、工业数据集上将 DIENstate of the art 技术进行比较。此外,我们设计了实验来分别验证辅助损失和 AUGRU 的影响。为了观察兴趣演变的过程,我们展示了兴趣隐状态的可视化结果。最后,我们分享了在线 serving 的技术和结果。

  2. 数据集:

    • 公共数据集 public DatasetAmazon 数据集。该数据集由商品评论和商品元数据组成。我们使用该数据集的两个子集:Books, Electronics

      在这些数据集中我们将评论视为行为,并按照时间对用户的评论排序。假设用户 个行为,我们的目标是使用前 个行为来预测用户 是否会点评第 个评论中的商品。

    • 工业数据集 Industrial Dataset:由淘宝在线展示广告系统中的曝光日志和点击日志组成。

      我们将连续 50 天点击的广告作为样本,用户点击目标商品之前 14 天的点击行为作为历史行为序列。其中前 49 天的样本作为训练集,第 50 天的样本作为测试集。

    这些数据集的统计信息如下表所示。

  3. baseline 方法:我们将 DIEN 和一些主流的 CTR 预估模型进行比较。

    • BaseModelBaseModel 采用与 DIEN 相同的 embedding settingMLP setting,但是BaseModel 使用 sum pooling 来聚合用户的所有行为embedding
    • Wide & DeepWide & Deep由两部分组成,其 deep partBaseModel 相同、wide part 为线性模型。
    • PNNPNN 使用 product layer 来捕获跨 field 之间的特征交互模式 interactive pattern
    • DINDIN 使用注意力机制来激活目标 item 相关的用户行为。
    • Two layer GRU Attention :通过双层 GRU 来建模用户行为序列,并采用注意力机制来关注目标item 相关的行为。
  4. 公共数据集的结果:在公共数据集中每个实验重复 5 次,取离线 AUC 的均值和标准差,实验结果如下表所示。可以看到:

    • 人工设计特征的 Wide & Deep 性能不佳,而自动特征交叉的 PNN 效果相对较好。

    • 旨在捕获兴趣的模型可以明显改善 AUC

      • DIN 激活了相对于目标广告的用户兴趣,Two Layer GRU Attention 进一步有效的捕获了兴趣序列中目标广告的相关兴趣。所有这些探索都获得了积极的效果。
      • DIEN 不仅可以有效捕获兴趣序列,还可以对与目标item 相关的兴趣演变过程建模。兴趣演变模型可以帮助 DIEN 获取更好的兴趣representation ,并准确捕获兴趣动态,从而大幅提升性能。

  5. 工业数据集的结果:我们进一步对真实展示广告的数据集进行实验。在工业数据集中,我们在 MLP 使用 6FCN layer,维度分别为 600, 400, 300, 200, 80, 2,历史行为序列的最大长度为 50。实验结果如下表所示。可以看到:

    • Wide & Deep,PNNBaseModel 效果更好。
    • Amazon 数据集只有一类商品不同,阿里在线广告数据集同时包含多种类型的商品,因此基于注意力的方法(如 DIN)可以大幅提升性能。
    • DIEN 捕获了目标 item 相关的兴趣演变过程,并获得最佳效果。

  6. 消融研究:这里我们展示 AUGRU 和辅助损失的效果。

    • AUGRU 的效果:下表给出了不同兴趣演变方法的结果。

      • BaseModel 相比,Two layer GRU Attention获得了改进,但是它缺乏对兴趣演变进行建模从而限制了能力。
      • AIGRU 直接对兴趣演变建模。尽管它效果得到提升,但是在兴趣演变过程中,注意力和演变之间的分裂使得建模过程中丢失了信息。
      • AGRU 进一步试图融合注意力和演变过程,但是它没有充分利用更新门针对多个维度更新的优势。
      • AUGRU 取得了明显的进步(倒数第二行),它理想地融合了注意力机制和序列学习,有效捕捉了目标item 相关兴趣的演变过程。

    • 辅助损失的效果:使用 AUGRU 的基础上我们进一步评估辅助损失的效果。公共数据集中,用于辅助损失的负样本都是从当前评论商品之外的item 集合中随机抽样的。工业数据集中,用于辅助损失的负样本是所有已曝光但是未点击的广告。

      如下图所示,整体损失函数 和辅助损失 都保持相似的下降趋势,这意味着兴趣 representation 生效,其中

      如下表所示,辅助损失为两个公共数据集都带来了很大的改进(最后一行 vs 倒数第二行),它反应了监督信息对于学习兴趣序列和 embedding 表示的重要性。

      如下表所示,辅助损失为工业数据集也带来了性能提高(最后一行 vs 倒数第二行),但是我们可以看到改进并不像公共数据集那样明显。这种差异来源于几个方面:

      • 首先,工业数据集具有大量的样本来学习 embedding 层,这使得它从辅助损失中获得的收益更少。
      • 其次,不同于公共数据集的item 全部属于同一个类目,工业数据集包含阿里所有场景的所有类目 item 。我们的目标是在一个场景中预测广告的点击率。辅助损失的监督信息可能与目标 item 是异质的heterogeneous ,所以辅助损失对工业数据集的影响可能相比公共数据集要小,而 AUGRU 的影响则被放大了。

  7. 兴趣演变可视化:AUGRU 中隐状态的动态变化可以反映出兴趣演变过程,我们可以将这些隐状态可视化从而探索不同目标item 对于兴趣演变的影响。

    我们通过 PCAAUGRU 的隐状态投影到二维空间中,投影对应的隐状态按照行为发生的顺序连接。其中历史行为来自于以下类目:电脑音箱、耳机、汽车 GPSSD 卡、micro SD 卡、外置硬盘、手机套。

    • a 给出了不同目标item 的隐状态移动路径。

      • None target 的黄色曲线表示原始兴趣序列(所有注意力得分都相等),它表示不受目标item 影响的兴趣演变。
      • 蓝色曲线表示目标item 为屏幕保护类目的 item 激活的隐状态,目标item 与所有历史行为相关性较小,因此表现出类似黄色曲线的路径。
      • 红色曲线表示目标item 为手机套类目的 item 激活的隐状态,目标item 和历史行为密切相关,因此导致较长的路径。
    • b 中,和目标item 相关的历史行为获得了更大的注意力得分。

  8. 在线 A/B test:我们在淘宝的展示广告系统进行在线 A/B testing ,测试时间从 2018-06-07 ~ 2018-07-02 ,测试结果如下。与 BaseModel 相比,DIENCTR 提升 20.7%eCPM 提升 17.1%pay per click: PPC 降低 3%

    目前 DIEN 已经在线部署并服务于主要流量,业务收入显著增长。

  9. 在线 servingDIEN 的在线服务 online serving 是一个巨大挑战。在线系统流量非常高,峰值可超过 100 万用户/秒。为保证低延迟和高吞吐量,我们采用了几种重要技术来提高 serving 性能:

    • element parallel GRU 以及 kernel fusion:融合尽可能多的独立 kernel 计算,同时 GRU 隐状态的每个元素并行计算(元素级并行)。
    • Batching:不同用户的相邻请求合并为一个 batch,从而充分利用 GPU 的并行计算能力。
    • 模型压缩:通过 Rocket Launching 方法来压缩模型从而训练一个更轻量级的网络,该网络尺寸更小但是性能接近原始大模型。例如,在 Rocket Launching 的帮助下,GRU 隐状态的维度可以从 108 压缩到 32

    通过这些技术,DIEN serving 的延迟可以从 38.2ms 降低到 6.6ms ,每个 workerquery per second: QPS 可以达到 360

十四、DSIN[2019]

  1. 推荐系统在帮助用户在亚马逊和淘宝等 web-scale 应用中找到他们喜欢的商品方面变得越来越不可或缺。通常,工业级推荐系统由两个阶段组成:候选生成 candidate generation 、候选排序candidate ranking

    • 候选生成阶段采用一些简单但是省时的推荐算法(例如 item-based 协同过滤)从庞大的、完整的 item 集合中召回相对较小的 item 集合,从而用于后续的ranking

图中所示的现象是普遍存在的。它反映了这样一个事实,即用户在单次会话中通常具有明确的、独一unique 的意图。而当用户开始新会话时,用户的兴趣可能会急剧变化。受上述观察的启发,论文提出了深度会话兴趣网络 Deep Session Interest Network: DSIN ,在 CTR 预估任务中,通过利用用户的多个历史会话来建模用户的序列行为。

DSIN 中包含三个关键组件:

  1. 相关工作:这里我们主要介绍现有的 CTR 预估和 session-based 推荐的研究。

    • 点击率预估:最近的 CTR 模型主要关注特征之间的交互。

      • Wide & Deep 结合了特征的线性 representation
      • DeepFM 学习特征的二阶交叉。
      • DCN 应用多层残差结构来学习特征的高阶 representation
      • AFM 认为并非所有特征交互都具有同等的预测性,并使用注意力机制自动学习交叉特征的权重。

      综上所述,特征的高阶 representation 和交互显著提高了特征的表达能力和模型的泛化能力。

      用户的序列行为意味着用户的动态dynamic 的、演变evolving 的兴趣,并且在 CTR 预估任务中已被广泛证明是有效的。

      • Youtube Net 通过均值池化将用户历史观看列表的 embedding 转换为固定长度的向量。
      • DIN 使用注意力机制来学习关于目标 item 的用户历史行为 representation
      • ATRANK 提出了一个 attention-based 框架,对用户异质 heterogeneous 行为之间的影响进行建模。
      • DIEN 使用辅助损失将当前行为的表达调整到下一个行为,然后使用 AUGRU 对不同目标 item 的特定兴趣演化过程进行建模。

      对用户的序列行为进行建模丰富了用户的 representation 并显著提高了预测准确性。

    • session-based 推荐:session 的概念在序列推荐中经常提到,但是在 CTR 预估任务中很少见。session-based 推荐受益于用户在会话中兴趣的动态演变 dynamic evolving

      • General Factorization Framework: GFF 使用 itemsum 池化来表示会话。每个 item 有两种 representation,一种表示它自己、另一种表示会话上下文。

      • 最近, RNN based 的方法被应用于 session-based 推荐以捕获会话中的顺序关系order relationship 。基于此,一个新颖的 attentive neural networks frameworkNARM) 被提出,用于建模用户的序列行为并捕获用户在当前会话中的主要目的。

        Hierarchical RNN 被提出,用于跨用户历史会话转发 RNN 的最终演化潜在隐状态end evolves latent hidden state

      • 除了 RNN《Stamp: short-term attention/memory priority model for session-based recommendation》仅应用 self-attention based 模型来有效捕获会话的长期兴趣和短期兴趣。

        《Personalized top-n sequential recommendation via convolutional sequence embedding》 使用卷积神经网络增强序列模型的表达能力。

        《Sequential recommendation with user memory networks》 采用 user memory network 来增强序列模型的表达能力。

14.1 模型

  1. 在这里,我们将详细介绍深度会话兴趣网络 Deep Session Interest Network: DSIN 。我们首先介绍名为 BaseModel 的基础的深度 CTR 模型,然后介绍建模提取 extraction 和交互 interaction 用户会话兴趣 users’ session interestDSIN 的技术设计。

14.1.1 BaseModel

  1. 这里我们介绍 BaseModel 的特征表示、embeddingMLP、以及损失函数。

  2. Feature Representation:有信息量的特征在 CTR 预估任务中非常重要。总而言之,我们在 BaseModel 使用了三组特征:用户画像User Profile 特征、Item 画像Item Profile 特征、用户行为 User Behavior 特征。每组特征都由一些稀疏特征组成,其中:用户画像包括性别、城市等等,Item 画像包括商家 ID、品牌 ID 等等,用户行为包括用户最近点击itemitem ID 。注意,item 的辅助信息可以拼接起来从而表达 item

  3. Embeddingembedding 是一种将大规模稀疏特征转换为低维稠密向量的常用技术。在数学上,稀疏特征可以通过 来表达,其中 为稀疏特征的sizeembedding size。通过 embedding

    • 用户画可以用 来表示,其中 表示用户画像的稀疏特征数量。

    • item 画像可以用 来表示,其中 表示商品画像的稀疏特征数量。

    • 用户历史行为可以表示为:

      其中 为用户历史行为数量, 为第 个行为的 embedding 向量。

  4. MLP:首先,我们将用户画像embeddingitem 画像embedding、用户历史行为embedding 拼接、展平,然后馈入MLP 网络中。在 MLP 中,我们采用非线性激活函数(如 ReLU 激活函数)并使用 softmax 输出单元来预测用户点击目标 item 的概率。

  5. 损失函数:负的对数似然作为损失函数广泛应用于 CTR 模型中,定义为:

    其中:

    • 为训练集, 为样本数量。
    • 为样本经过 embedding 的特征, 标记用户是否点击目标 item
    • 表示网络预测用户点击目标 item 的概率。

    注:在 BaseModel 中, 可能需要经过 sum 池化或者均值池化,从而将可变历史行为 embedding 序列转换为固定长度的 embedding 向量。

14.1.2 DSIN

  1. 在推荐系统中,用户的行为序列由多个历史会话组成,用户在不同的会话中表现出不同的兴趣。此外,用户的会话兴趣相互之间是序列相关sequentially related 的。

    DSIN 用于提取用户在每个会话中的会话兴趣,并捕获会话兴趣的序列关系sequential relationship 。如下图所示,DSINMLP 之前由两部分组成。

    • 一部分是从用户画像、Item 画像转换而来的 embedding 向量。

    • 另一部分是建模用户行为 User Behavior ,并且自底向上有四层:

      • 会话划分层 session division layer :将用户的行为序列划分为会话。
      • 会话兴趣提取层 session interest extractor layer :提取用户的会话兴趣。
      • 会话兴趣交互层session interest interacting layer:捕获会话兴趣之间的序列关系。
      • 会话兴趣激活层 session interest activating layer:将局部激活单元应用于用户关于目标 item 的会话兴趣。

      最后,会话兴趣激活层的输出以及用户画像embeddingItem 画像 embedding 一起被馈入 MLP 以进行最终预测。接下来我们详细介绍上述四层。

     

  2. Session Division Layer:为了更精确的抽取用户的会话兴趣,我们将用户行为序列 划分为会话序列 ,其中第 个会话( )为:

    其中: 为会话中用户行为数量, 为会话中第 个用户行为。

    通常拆分依据是:如果两个相邻的用户行为时间间隔超过,比如说 30 分钟,则将它们划分到两个会话中;否则它们同属于同一个会话。这个时间间隔根据不同的应用场景而选择不同的值。

  3. Session Interest Extractor Layer:同一会话的行为彼此密切相关,但是也有一些偶然行为偏离了会话兴趣的原始表达。为了捕获同一会话行为之间的内在关系,并且减少无关行为的影响,我们在每个会话中采用 multi-head self-attention 机制。另外,我们还对self-attention 机制做了一些改进,从而更好地实现会话兴趣提取这一目标。

    • Bias Encoding:为了利用序列的顺序关系order relationself-attention 机制将位置编码positional encoding 应用于 input embedding 。此外,会话的顺序关系以及 bias 存在于不同的 representation 子空间中,也需要被捕获。

      因此,我们在位置编码的基础上提出了 bias encoding ,其中 中的每个元素定义为:

      其中:

      • 是会话的 bias 向量, 为会话总数。 为第 个分量,代表第 个会话的 bias
      • 为会话中位置的 bias 向量, 为会话中位置总数。 为第 个分量,代表会话中第 个位置的 bias
      • 为用户行为embeddingunit positionbias 向量, 等于 为第 个分量,代表embedding 向量第 unitbias

      添加 bias encoding 之后,用户的行为会话 更新为:

    • Multi-head Self-attention:在推荐系统中,用户点击行为会受到多种因素(如颜色、款式、价格)的影响。multi-head self-attention 可以捕获不同 representation 子空间中的关系。

      在数学上,将第 个会话沿着 embedding 维度方向拆分为head

      其中 : 的第 headhead 数量,

      则第 head 的输出为:

      其中 为对应的映射矩阵。

      • 拼接不同 head 的输出然后馈送到一个前馈神经网络:

        其中 : 为前馈神经网络, 为一个映射矩阵。

        在前馈神经网络中,我们也采用了残差连接和 layer normalization

      • 对输出的一组向量进行池化操作,则得到第 个会话兴趣为:

        其中 为均值池化操作。

      注意:不同会话的self-attention 机制中的权重是共享的。

  4. Session Interest Interacting Layer:用户的会话兴趣与上下文兴趣保持序列关系sequential relation 。建模兴趣的动态变化可以丰富会话兴趣的 representationBi-LSTM 在捕获序列关系方面非常出色,我们很自然地用它来建模 DSIN 中会话兴趣的交互:

    其中:

    • sigmoid 函数。
    • 为输入门、遗忘门、输出门、cell 状态,其维度和 维度相同。

    上述只是前向状态,Bi-LSTM 考虑了前向、反向两个方向,最终隐向量计算为:

    其中: Bi-LSTM 前向隐向量,Bi-LSTM 反向隐向量, 为向量拼接。

  5. Session Interest Activating Layer:和目标item 相关的用户会话兴趣对用户的点击意愿的影响更大。需要针对目标 item 重新分配用户会话兴趣的权重。注意力机制在 sourcetarget 之间进行软对齐 soft alignment ,并已被证明是一种有效的权重分配机制。与目标 item 相关的自适应会话兴趣为:

    其中: 为目标 itemembedding 向量, 为对应权重, 为第 个会话的会话兴趣对目标item 的注意力得分。(架构图中的黄色 Activation Unit

    类似地,与目标 item 相关的、自适应的上下文会话兴趣 representation 为:

    其中: 为目标 itemembedding 向量, 为对应权重, 为第 个上下文会话兴趣对目标item 的注意力得分。(架构图中的蓝色 Activation Unit

    最后我们将用户画像 embeddingitem 画像 embedding 一起拼接作为 MLP 层的输入。

14.2 实验

  1. 这里我们首先介绍实验数据集、baseline 方法、评估指标。然后我们将 DSINbaseline 方法进行比较并分析结果。最后我们讨论了 DSIN 中关键技术设计的有效性。

  2. 数据集:

    • Advertising Dataset:由阿里妈妈发布的公共数据集。数据集包含连续 8 天的用户曝光、点击日志,共覆盖100万用户、80万广告,包含2600万条记录。数据集中记录了用户最近的 200 个历史行为。

      我们采用前 7 天(从 2017-05-06 ~ 2017-05-12 )的数据为训练集,第八天(2017-05-13)数据为测试集。

    • Recommender Dataset:为了验证 DSIN 在实际工业应用中的有效性,我们在阿里巴巴线上推荐系统的数据集上进行实验。该数据集包含连续 8 天的 60 亿个曝光、点击日志,分别有 1 亿用户和 7000 万商品。数据集中也记录了用户最近的 200 个历史用户行为。

      我们采用前 7 天(2018-12-13 ~ 2018-12-19)的数据为训练集,第八天(2018-12-20)数据为测试集。

  3. baseline 方法:

    • YoutubetNetYoutubeNet 利用用户历史观看的视频序列在 Youtube 中进行视频推荐。它平等地对待用户的历史行为,并利用均值池化操作。我们还对没有 User BehaviorYoutubeNet 进行了实验,以验证历史行为的有效性。
    • Wide & DeepWide & Deep 是一种同时具备 memorizationgeneralizationCTR 模型。它包含两个部分:wide 部分用于记忆、deep 部分用于泛化。
    • DINDIN 充分利用了用户历史行为与目标 item 之间的关系。它使用注意力机制来学习和目标 item 相关的用户历史行为 representation
    • DIN-RNNDIN-RNNDIN 具有相似的结构,但是在 DIN-RNN 中我们使用 Bi-LSTM 的隐状态。Bi-LSTM 建模用户历史行为,并学习上下文关系。
    • DIENDIEN 从用户历史行为中提取潜在的时序兴趣 temporal interest,并建模兴趣演变过程。辅助损失使得隐状态更具表达性从而表示潜在兴趣,AUGRU 针对不同目标 item 建模特定的兴趣演变过程。
  4. 评估指标:AUC 反映了模型的排序能力,定义为:

    其中:

    • 为正样本集合, 为负样本集合, 为正样本数量, 为负样本数量。
    • 为模型预估结果, 为正样本, 为负样本, 为示性函数。
  5. 模型评估结果如下表。其中:

    • YoutubeNet-NO-UB 表示不带 User Behavior 信息的 YoutubeNet
    • DSIN-PE表示带 positional encodingDSIN
    • DSIN-BE-No-SIIL 表示带 bias encoding但是没有session interest interacting layer及对应的激活单元的 DSIN
    • DSIN-BE 表示带bias encoding 以及其它完整结构的 DSIN

    结论:

    • 由于 User Behavior 的原因,YoutubeNet 的表现要优于 YoutubeNet-No-User-Behavior ,而 Wide & Deep 由于结合了 wide 部分的 memorization 从而获得更好的结果。

    • DIN 通过激活与目标 item 相关的 User Behavior ,显著提高了 AUC。特别地,由于用户行为序列的不连续性,DIN-RNN 在两个数据集中的结果都比 DIN 的结果要差。

    • DIEN 获得更好的结果,但是辅助损失和经过特殊设计的 AUGRU 产生了对行为原始表达的偏离 deviating

    • DSIN 在两个数据集上获得最佳结果。DSIN 将用户的历史行为提取到会话兴趣中,并对会话兴趣的动态演变过程进行建模,丰富了用户的 representation

      另外,DSIN 的局部激活单元 local activation unit 有助于获得针对目标item 的、会话兴趣的自适应 representation

  6. 进一步讨论:

    • 多个会话的作用:如上表所示,DIN-RNNDIN 基础上增加了序列建模,但是效果比 DIN 差;而 DSIN-BE 也在DSIN-BE-NO-SIIL 基础上增加了序列建模,但是效果比 DSIN-BE-NO-SIIL 好。为什么同样增加了序列进行建模,而前者效果差、后者效果好?

      • DIN-RNN 中,行为的快速跳变和突然结束导致用户的行为序列噪声大。这将导致 RNN 中信息传输过程中有效信息丢失,从而进一步扰乱了用户行为序列的正确 representation
      • DSIN 中,我们将用户行为序列划分为多个会话,有两个原因:用户行为在每个会话中通常都是同质homogeneous 的;用户的会话兴趣遵循序列模式,因此更适合序列建模。由于这两个因素,DSIN 提高了性能。
    • 会话兴趣交互层的作用:如上表所示,DSIN-BEDSIN-BE-NO-SIIL 仅仅多了会话兴趣交互层及对应的激活单元。结果表明 DSIN-BE 效果更好。

      通过会话兴趣交互层,用户的会话兴趣和上下文信息(历史兴趣上下文,如上一个兴趣、上上一个兴趣等等)融合在一起从而更具有表达能力,从而提高了 DSIN 的性能。

    • Bias Encoding 的效果:如上表所示,DSIN-BEDSIN-PE 相比,前者采用Bias Encoding后者采用 Position Encoding 。结果表明 DSIN-BE 效果更好。

      与二维的位置编码不同,Bias Encoding 除了捕获位置编码还能够捕获会话bias 。经验上讲,Bias Encoding 可以成功捕获会话的顺序信息order information从而提高 DSIN 性能。

  7. 如下图所示,我们给出了局部激活单元和self-attention 机制中的注意力权重。图的下半部分给出了self-attention 机制的权重、上半部分给出了激活单元的权重,颜色越深权重越大。

    注意:self-attention 机制的注意力权重是每个head 的注意力权重之和。

    为了说明 self-attention 的效果,我们以第一个会话为例。用户主要浏览与裤子有关的 item ,偶尔浏览外套有关的 item。可以看到:和裤子有关 item 的权重通常都较高。经过 self-attention 之后,大部分和裤子有关的行为 representation 都被保留并提取到会话兴趣中。

    此外,局部激活单元的工作原理是,使得与目标 item 有关的用户会话兴趣更突出。在这个 case 中,目标 item 是一条黑色裤子,因此与裤子相关的用户会话兴趣(即第一个会话)被分配了更大的权重,从而使得这部分会话兴趣对结果预测的影响更大。

    第三个会话与外套有关,但是用户对黑色的颜色偏好也有助于对目标黑色裤子的排序 rank

十五、DICM[2017]

  1. 淘宝是中国最大的电商平台,通过移动 appPC 网站为数亿用户提供数十亿 item 。用户通过搜索或个性化推荐从而来到淘宝浏览这些 item 。每个 item 通常由 item 图像以及一些描述文本来展示。当用户对某个 item 感兴趣时,可以单击该图像从而查看详细信息。下图显示了淘宝移动 app 中推荐 item 的示例。

    淘宝还建立了全球领先的展示广告系统display advertising system 之一,帮助数百万广告主连接到用户。实际上,展示广告display advertising 是一种必不可少的在线广告形式。通过识别用户兴趣,它可以在诸如 “猜你喜欢” 之类的各个地方展示,并有效地向合适的顾客传递营销信息 marketing message 。淘宝展示广告采用 cost-per-click: CPC 计费方式,并且足够有效。在 CPC 模式下,媒体平台通过 effective cost per mille: eCPM 对候选广告进行排序。eCPM 可以通过竞价 bid price 乘以预估点击率click through rate: CTR 来计算。这种策略使得点击率预估成为广告系统中的核心任务。

    CTR 预估对用户对于 item 的偏好进行打分,并且很大程度上依赖于从历史行为中理解的用户兴趣。用户每天在淘宝上浏览和点击 item 数十亿次,这些访问带来了海量的日志数据,微弱 weakly 地反映了用户兴趣。传统的 CTR 预估研究侧重于精心设计的反馈特征feedback feature 和浅层模型 shallow model ,如逻辑回归。近年来,基于深度学习的 CTR 预估系统大量涌现。这些方法主要涉及稀疏 ID 特征,如广告 ID、用户交互 item ID 等。然而,当一个 ID 在数据中出现的频率较低时,它的参数可能没有得到很好的训练。图像可以提供内在的视觉描述,从而为模型带来更好的泛化能力。考虑到 item 图像是用户直接与之交互的内容,这些图像可以提供更多关于用户兴趣的视觉信息。论文 《Image Matters: Visually modeling user behaviors using Advanced Model Server》建议通过这些图像自然地描述每个行为,并在 CTR 预估中联合建模图像和 ID 特征。

    用图像数据训练 CTR 模型需要大量的计算和存储消耗。一些开创性的工作致力于在 CTR 预估中表达具有图像特征的广告(仅在一个样本中引入单张图像)。这些研究没有探索用户行为图像。对用户行为图像进行建模有助于了解用户的视觉偏好,并提高 CTR 预估的准确性。此外,结合用户视觉偏好和广告视觉信息可以进一步有利于 CTR 预测。然而,用户交互图像建模用户偏好更具有挑战性。因为一个典型用户的行为数量从几十到几百不等,因此对于广告图像的消费次数也是在几十到几百。考虑到淘宝正在为数亿用户提供数十亿 item,这是一个不可忽视的问题,而设计一个良好的高效的训练系统是处理这个大规模问题,从而进行真正生产的必要条件。

    论文 《Image Matters: Visually modeling user behaviors using Advanced Model Server》提出了 Advanced Model Server: AMS 框架,它超越了众所周知的 Parameter Server: PS 框架来处理这个大规模的训练问题。

    • 在传统的 PS 框架中,图像要么被视为训练数据的一部分并存储在样本中,要么存储在 server 中分发给 worker 。然而,每个样本包含许多行为图像,原始图像特征尺寸 feature size 远大于 ID 特征。因此,由于无法接受的大存储或者无法接受的高通信负载,PS 处理如此大量的样本和图像有些不切实际。

    • AMS 中,server 被设计为能够前向传播和反向传播具有某些独立特征independent features 的子模型sub-model 。那么整个模型又可以分为 worker 模型部分和 server 模型部分。原始图像特征数据作为全局共享特征无重复地(即只需要存储一份)放置在 server 端。

      在论文的 application 中,与图像存储在样本中相比,论文的方法大大减少了存储量大约 40 倍。并且只需要传输 server 模型部分输出的、图像的低维高级语义 representation,而不是原始图像特征数据。另外,通信负载显著减少了大约 340 倍。

      此外,梯度反向传播从 worker 模型部分到由 server 模型部分完全处理,这保证了从原始图像特征到最终 CTR score 的端到端训练。

    基于 AMS ,论文成功地构建了一个高效的训练系统,并部署了一个轻量级的在线服务,解决了图像特征带来的存储、计算和通信的沉重负载。具体而言,论文的数十亿样本的训练过程在 18 小时内完成,可以实现在线模型的天级更新,这是工业级生产所必须的特性。

    受益于精心优化的基础设施,论文提出了一个统一的网络架构,称作深度图像 CTR 模型 Deep Image CTR Model: DICM,可以有效地为用户建模相关的行为图像。DICM 通过一个 selected attentive pooling 机制实现图像感知image aware 的用户建模,该机制在生成注意力权重时同时使用图像和 ID 特征。DICM 还利用用户偏好和广告之间的视觉联系,显著提高了性能。

    总而言之,论文的贡献有三个方面:

    • 首先,论文提出了新颖的 AMS 框架。它以子模型分布式方式sub-models distributing style 超越了众所周知的参数分布式方式parameters distributing style ,便于整个模型以分布式方式联合学习。这是朝着使深度学习模型能够利用负担得起的计算资源开发大规模和结构化数据迈出的重要一步。

      例如,在论文中,我们有大规模的 CTR 样本数据(其中每个样本涉及一个用户、一个广告)、有大规模的图像数据、还有大规模的连接样本的用户行为数据和用户行为图像。

    • 其次,论文提出了 DICM。它不仅利用了图像对广告进行建模,还利用了用户的海量行为图像来更好地建模用户偏好,这比仅利用广告图像更具有挑战性。

      论文表明,广告图像或用户行为图像都可以使 CTR 预估受益,并且将它们与精心设计的模型相结合将带来更大的提升。

    • 此外,论文通过广泛的离线实验和在线实验验证了所提出方法的效率efficiency 和效果 efficacy 。目前论文的模型已经部署在淘宝展示广告系统中,服务于 5 亿用户和数百万广告主的主流量。

  2. 相关工作:早期的 CTR 预估侧重于精心设计的低维统计特征,通常由用户点击统计量来定义。LS-PLMFTRLFM 是浅层模型的经典探索。

    最近,随着样本数量和特征维度越来越大,CTR 模型从浅到深演进。特别地,受到自然语言处理领域的启发,学习分布式 representationembedding 技术用于处理大规模稀疏数据。

    • NCFWide & Deep 利用 MLP 网络极大地增强模型能力。
    • DeepFM 通过在 Wide & Deep 中的 wide 部分使用分解机 factorization machine: FM 来进一步建模特征交互。
    • 最新的工作 DIN 提出采用注意力机制来根据给定的目标 item 自适应地建模用户行为。

    这些工作提升了稀疏特征的使用。然而,稀疏的 ID 特征只能告诉我们:对象是不同的,并且透露的语义信息很少。特别是当一个 ID 在训练集中出现频率较低时,它的 embedding 参数将不会得到很好的训练。并且在训练期间未见 unseenID 不会在预测中生效。

    具有视觉语义信息的图像会带来更好的模型泛化能力。此外,训练数据中未见 unseen 的图像仍然可以帮助训练良好的图像模型进行 CTR 预估。图像 representation 任务近年来有了显著的改进。深度模型学习的高级语义特征已经被证明对大范围的任务有效。之前的一些工作尝试在 CTR 模型中引入图像信息来描述广告。

    • 《Multimedia features for click prediction of new ads in display advertising》《Image Feature Learning for Cold Start Problem in Display Advertising》 通过使用手动设计的特征或预训练的 CNN 模型对广告图像进行建模来解决冷启动问题。
    • 《Images don’t lie: Transferring deep visual semantic features to large-scale multimodal learning to rank》 引入了 item 的视觉信息,从而克服 Esty 的搜索引擎中对纯文本 representation 的误解 misunderstanding
    • 《Deep ctr prediction in display advertising》 提出以端到端的方式训练 CNN

    所有这些工作都专注于用图像来表示广告,这与我们的动机不同。广告图像描述了广告的视觉特征,用户行为图像会揭示用户的视觉偏好 visual preference 。将这些视觉信息组合在一起,将比单独使用它们中的任何一个产生更好的性能。在本文中,我们提出用图像来增强 user representation ,并设计一种新颖、高效的分布式机器学习范式来对应它带来的挑战。

15.1 AMS

  1. 展示广告系统display advertising system :淘宝展示广告系统每天响应数十亿次 pv 请求。每个请求,在特定场景(曝光时间、广告位等上下文中)都需要系统向用户展示最合适的广告。广告系统仅在几毫秒内从数千万个广告中选择 eCPM 排名最高的广告。

    在线系统以类似漏斗的方式完成此任务,大致主要由三个顺序的模块组成,如下图所示:

    • Match 模块:该模块根据用户行为预测出用户的偏好,并从全量候选广告集中检索大约 4000 个广告。该模块也被称作检索模块或者召回模块。
  1. 任务描述:通过输入用户特征、广告特征、场景特征等等,CTR 模型输出用户在该场景中点击广告的概率。遵从前人的工作,这个问题被认为是一个二分类问题,其标签是弱反馈 weak feedback:是否点击。训练过程中采用交叉熵损失作为目标函数。

    与图像分类任务不同,其中图像由像素很好地表达,点击率预估问题需要根据具体application 进行仔细的特征设计 feature design 。通常的做法是通过 ID 来描述用户、item、场景的各个方面,构成了很多稀疏的特征 field 。用户历史行为 field 由用户之前点击过的 item id 来组成,是描述用户的最重要的一个 field 。这种方法导致大量的、但是极为稀疏的数据。

    Embedding & MLP 方式的网络现在被广泛应用于拟合 fit 如此大的稀疏输入。在淘宝广告系统中,部署了遵循这种模式的、高度优化的 CTR 模型。为清晰起见,下图的 Embedding & MLP 部分展示了生产模型的简化版本。最近在生产中引入了 DIN,以更好地建模稀疏行为特征。使用这些复杂的模型,在接下来的部分中,我们将展示使用图像对用户行为进行建模,仍然可以带来显著的改进。

  2. 带图像的建模:我们用视觉信息扩展了 Embedding & MLP 模型,特别是用图像增强了用户行为 representation 。我们将这种结构称作深度图像 CTR 模型 Deep Image CTR Model: DICM ,并将 Embedding & MLP 成为基础网络 basic net

    如下图所示,用户的行为图像和广告图像被合并为两个特殊的特征 field。这些图像首先馈入可训练的子模型 submodel ,从而获得低维的 high level representation 。与 embedding 类似,子模型也是一种将图像嵌入到向量中的 embedding 操作。所以我们称之为 embedding modelembedding model 可以看作是传统 key-value embedding 操作的泛化扩展,因为它可以嵌入在训练期间未见 unseen 的新图像。由于用户行为的长度是可变的,因此需要将多个嵌入的图像聚合在一起,形成一个固定长度的用户 representation,然后输入到 MLP 中。

    值得注意的是,该模型中的图像 embedding 实际上是独立的,即不依赖于其它特征。因此 embedding model 可以独立地前向传播、反向传播。这一观察提示了我们设计 Advanced Model Server 。此外,还有更多针对各种类型数据的 embedding model,如可以使用 AMS 来设计文本特征、视频特征等等。

  3. Parameter Server 及其限制:参数服务器 Parameter Server: PS 是一种广泛采用的分布式架构,用于大规模参数化parametric 的机器学习问题。PS 由两个 node group 组成:worker groupserver group

    • worker group 包含一组 worker,它们对各自分配到的部分训练样本进行训练。
    • 同时,server group 作为分布式数据库,存储了模型的参数并且可以通过 key-value 结构访问。

    通过这种方式,PS 可以高效地聚合和同步参数。

    Embedding & MLP 模型可以在 GPU 集群上使用 PS-like 架构高效地实现。embedding layer 的参数被放置在 server group 中,因为它们的规模远远超过每个 worker 的内存容量,并且可以通过 key-value 结构访问(前向传播)和更新(反向传播)。

    然而,当使用图像特征,尤其是与大量用户行为相关的图像时,完成训练过程并非易事。图像数量很大,图像数据需要分布式存储在 worker group 或者 server group 中。采用 PS 时,无论是存储在 worker group 还是 server group,在实践中效率都很低。

    • 如果图像与训练样本一起存储在 worker group 中,那么图像特征将大大增加训练数据的大小(在我们的场景中,每个 mini-batch 大小从 134MB 增加到 5.1 GB ,大约增加 40 倍),这带来无法承受的 IO 或存储。
    • 如果图像存储在 server group 中并在训练期间被 worker 访问,那么这将带来沉重的通信压力,因为图像特征是高维的(在我们的实验中通常为 4096 维),远远超过 ID 特征(通常为 12 维)。

    这种困境促使我们探索了接下来要重点描述的新架构。

  4. AMS 架构:这里我们将详细介绍 AMS 架构。与 PS 类似,AMS 也包含 serverworker。但是除了处理 key-value 参数之外,AMS 中的 server 还端到端地训练 embedding model。因此命名为 Advanced Model Server: AMS

    AMS 中,样本由稀疏特征组成,其中行为图像被标记为索引,也是一种 ID 。所有的图像都在 server 中存储和计算,并通过 embedding model 嵌入到语义向量中。这种范式为各种类型的数据提供了各种建模方法。例如,我们可以有效地为用户交互的 item 引入由 RNN 建模的客户评论 customer comment ,这面临着与图像建模相同的问题。

    不带图像的训练样本在所有 worker 之间进行划分。图像以 key-value 格式分布式存储在 server 之间。key 为图像索引,value 为图像数据。

    • 在每次迭代中,worker 独立地读取 mini-batch 样本,并从 server 请求 mini-batch 中的 ID embedding 和图像 embedding 结果。注意, 来自某个 worker 的请求被发送到存储相应 ID 或图像的 server 节点。

    • server 收到请求时,以与 PS 相同的方式返回 ID 特征参数中的 embedding 向量。

      对于图像,server 首先从本地内存中获取图像数据,然后馈入 embedding model 从而获得 embedding 向量

    • workerserver 拉取所有的 embedding 向量 (包括ID embedding 和图像 embedding ),其中 server 数量 。然后完成 worker model 的计算,获得关于模型参数的梯度 和关于 embedding 的梯度

    • 然后被推送到相应的 server,以便 embedding model 能够进行反向传播从而计算梯度

    • 最后,workerserver 同步它们的模型梯度 ,并完成模型更新。

      注意:embedding 参数存储在 server 端,而权重矩阵参数存储在 worker 端。换句话讲,模型 位于 server 端、模型 位于 worker 端。

    AMS 带来了几个好处:

    • 首先,通过仅在 server 中存储一次,图像存储显著减少。
    • 此外,由于最终 embedding 向量规模远小于图像的原始数据(通常从 4096 维降低到 12 维,压缩比超过 340 倍),因此通信显著降低。
    • 另外,在单次训练迭代中多次发生的、特定图像的计算可以由 server 自然地合并,从而减少计算负载。

    值得注意的是,serverworker 实际上部署在同一台 GPU 机器上,因此交替的 worker 计算和 server 计算最大化了 GPU 的利用率。

  5. AMS 算法:AMS 包括 serverworker 、以及 task schedulerAMS 同时训练两个模型 worker model embedding model 。其中各组件的执行过程为:

    • Task Scheduler

      • 初始化模型
      • 执行 mini-batch 训练。在所有 worker 上,对于每个 mini-batch t 执行过程 WORKERITERATIOIN(t)
    • Worker

      rworker () 的 WORKERITERATIOIN(t) 过程:

      • 加载第 tmini-batch 的特征 、标签

      • 通过SERVEREMBED 过程从 Server 请求 中的 ID embedding 和图像的 embedding 。其中图像通过图像的索引来向 server 发生请求。

      • Server 获取所有的 embedding 向量

      • 基于 进行前向传播和反向传播,并得到梯度:

        • worker 参数的梯度:
        • embedding 参数的梯度:
      • Server 推送梯度 ,并且执行 serverSERVERUPDATE 过程。

      • 向所有 worker 同步梯度 并更新模型

    • Server:对所有的 Server 执行过程 SERVEREMBED(t)SERVERUPDATE(t)

      sServer () 的 SERVEREMBED(t) 过程:

      • Server 本地获取图像数据 I
      • 计算图像的 embedding

      Server ()的SERVERUPDATE(t) 过程:

      • 计算梯度:
      • 向所有 server 同步梯度 并更新模型
  6. 通过 AMS 实现的 DICM:可以使用 AMS 有效地训练 DICM。稀疏 ID 特征的 embeddingembedding modelembeddingserver 中运行。MLPAggregator(接下来我们会详细说明)在 worker 中运行。

    采用 AMS 的分布式 GPU 训练架构,使得每天更新数十天日志数据的模型成为可能,这对于真实的广告系统而言至关重要。下表描述了我们最佳配置模型的训练时间(包含 18 天日志的训练数据)和 GPU 数量的关系。值得注意的是,我们的系统对 GPU 具有理想的近线性可扩展性。我们使用 20GPU,从而在效率和经济性之间进行合理的权衡。

15.2 Image Based 用户建模

  1. Image Embedding Modelembedding model 旨在将像素级别的视觉信息提取为语义 embedding 向量。计算机视觉的最新进展表明,学到的用于分类任务的语义特征具有良好的泛化能力。我们的实验研究表明,在我们的 application 中,VGG16 的性能优于从头开始的端到端训练。但是由于 VGG16 的复杂性太高,所以我们采用了混合训练:整个网络被划分为一个固定部分和一个可训练部分,其中可训练部分和 CTR 模型一起进行端到端的训练。

    • 对于固定部分,我们采用预训练的 VGG16 网络的前 14 层,具体而言是从 Conv1FC6,生成一个 4096 维的向量。

      对于实际 application,这是效率和效果之间的谨慎权衡。例如,在我们的实验中,用 1000 维输出的 VGG16 FC8 代替 4096 维输出的 FC6 作为固定部分,将导致 3% 的相对性能损失(因为冻结的部分太多,导致可训练部分太少)。这表明需要控制固定部分的信息缩减 information reduction,输入size 和整个网络共同学习的可训练部分至关重要。

      然而,当我们使用 VGG16 中更低的层作为固定部分时,训练中的计算负载变高,并且我们发现效果提升并不显著。最后我们选择 4096 维输出的 VGG16 FC6 作为固定部分。

    • 对于可训练部分,我们使用 3 层全连接网络(4096-256-64-12) ,并输出 12 维向量。

  2. 用户行为图像聚合器 User Behavior Image Aggregator:对于使用 Embedding & MLP 模型的 CTR 预估,用户的紧凑 representation 至关重要。我们需要将各种用户数据,尤其是可变数量的历史行为,聚合为一个固定长度的向量。为此目的,我们设计了 aggregator block 来聚合大量行为图像 embedding

    事实上,许多经典问题都涉及类似的任务。对于传统的图像检索/分类,局部特征,例如 SIFT,在图像中聚合。包括 VLAD 和稀疏编码在内的经典方法通过 sum 或者 max 操作来实现这一点。对于神经机器翻译 neural machine translation: NMT,不同长度句子的上下文向量是采用最近提出的注意力方法来提取出来的。我们遵循这些思想并探索各种设计,尤其是注意力方法。为了进一步考虑 ID 特征信息,我们提出了 Multiple Query Attentive Pooling

    • 最直接的方法是将所有行为图像 embedding 拼接在一起,并填充或者截断到指定的长度。但是当行为数量太大或者行为顺序发生改变时,这会遭受损失。

    • 最大池化和 sum 池化是另外两种直接的方法,它们都无法针对多样化的用户行为适当地关注focus

    • 最近 DIN 将注意力机制引入用户建模,它根据目标广告自适应地捕获最相关的行为。我们也采用了这种方法,并考虑到视觉相关性,我们使用广告图像作为注意力的 query。我们称这种方法为 Attentive-Pooling 。这些方法如下图所示。下图为一些典型的聚合器设计,我们将在实验部分比较它们的性能差异。

    • 不同类型特征之间的交互很重要。例如,广告的类目ID T shirt 和用户行为中的 T shirt 图像可以连接,因此它可以更好地捕获用户对于此类 item 的偏好。因此,我们提出了 MultiQueryAttentivePooling(下图 (d) ),它结合了图像特征和 ID 特征来生成注意力权重。

      具体而言,我们设计了两个注意力通道,分别涉及广告图像特征和 ID 特征。两个注意力通道分别生成自己的权重和加权sum 向量,然后将它们拼接起来。注意,与 multi-head 技术不同,MultiQueryAttentivePooling 对每个注意力通道使用不同的 query,从而探索具有互补性的不同相关性。

15.3 推断

  1. 在大型工业广告系统中,推断效率对于CTR 模型的在线部署至关重要。对于常规 DNN 模型,通常 embedding 参数存放在全局 key-value 共享存储中,MLP 参数存储在本地 ranking server 中。对于每个inferrence 请求,ranking server 会从 key-value 共享存储提取 ID embeding,并向MLP 馈入该 embedding 从而执行 CTR 预测。实践证明该方案在生产中具有高吞吐、低延迟。

    当涉及图像尤其是大量的用户行为图像时,提取图像的 embedding 向量可能带来大量的计算开销和通信开销。受益于图像的独立性,图像embedding 向量可以离线计算并作为常规 ID 特征进行全局存储。因此ranking server 无需任何修改即可适配图像的引入。

    注意:对于已有的图像可以通过其图像ID 查找离线计算好的图像 embedding 向量。对于新的图像,系统可以直接计算其 embedding 来使用并缓存起来。这可以有效缓解 ID 特征的冷启动问题。

    对于每个pv 请求,DICM 的响应时间仅仅从 21ms(传统 的、不带图像的DNN 模型)增加到 24ms ,符合在线推断的需求。

15.4 DICM 用于 Pre-Rank

  1. DICM 框架可以顺利应用于 Pre-Rank 阶段。为了加速在线服务,我们设计了类似于 DSSM 结构的架构,该架构广泛应用于效率敏感的跨域 cross domain 搜索/推荐任务。 如下图所示,维度相等的 ad representationuser representation 首先用它们各自的特征分别独立建模。和 Rank 一样, ID 特征和图像都被使用,并且通过 embedding 模型来嵌入。为了避免广告特征和用户特征的早期融合,sum 池化(而不是 MultiQueryAttentivePooling )作为行为图像的聚合器。最终的点击率由ad representationuser representation 的内积来预测。

    注意,在最终内积之前,用户相关特征和广告相关特征之间没有交互。因此,可以离线预先计算 ad representationuser representation ,以便在线服务仅关注内积操作,从而显著降低总的计算负载。

15.5 实验

  1. 数据集:所有数据来自于淘宝的展示广告系统收集自 2017-07 月连续 19 天的日志数据,其中前 18 天为训练集、最后一天为测试集。数据集包含 39 亿训练样本、2.19 亿测试样本。样本有 27ID 特征,包括用户画像特征、用户行为特征、广告描述信息、场景描述信息。

  2. 评估方式:对于离线评估指标,我们采用 AUCGAUCGAUC 是所有用户的 AUC 加权平均。GAUC 是所有用户 AUC 的加权平均,定义为:

    其中 为用户 AUC

    在实际广告系统中,GAUCAUC 和交叉熵损失更有效。因为 GAUC 是个性化的,专注于每个用户的预测。

  3. 训练细节:

    • 为了加快训练速度并降低存储成本,我们遵循了公共特征技术common feature technique 。具体而言,我们将对应于相同用户的样本放在一起,形成样本组 sample group,这些样本组共享相同的用户侧特征。
    • 为了描述用户行为,我们选取了每个用户在过去 14 天内的点击行为。由于来自真实系统的原始数据是噪音noisy 的,我们选择具有合理的、较长的浏览时间的典型点击行为。我们实验发现这种过滤策略可以获得更好的性能。平均的用户行为从 200 多个过滤到 32.6 个。
    • 我们使用 PReLU 作为激活函数,因为我们实验中发现它的优越性。我们采用 Adam 作为优化器,初始学习率为0.001,每 24000batch 之后以 0.9 的系数进行衰减。模型在 2epoch 后收敛(在我们的场景中为 128K 次迭代)。
    • 部分 warm-up:参数初始化被广泛使用。受益于我们系统的天级更新方案,我们可以使用前一天训练好的模型作为初始化,而无需任何额外成本。我们观察到 DICM 的每个部分以不同的速度收敛。由于 ID 特征的稀疏性和较大的参数规模,ID embedding 容易出现过拟合。而图像 embedding model 需要足够的训练来捕获视觉信息和用户意图之间的高度非线性关系。因此我们提出了 partial warm-up 技术。具体而言,我们使用预训练模型(它使用不同日期的训练数据)作为除 ID embedding 之外的所有部分(即图像 embedding model、提取器、MLP 部分)的初始化,并随机初始化 ID embedding 部分。

15.5.1 AMS 效率

  1. 我们首先在我们的 application 中研究了 AMS 相对于 PS 架构的效率优势。我们对比了以下两种可能的保存图像的方式:

    • PS-worker:将图像和其它训练数据一起存储在 worker 节点中。
    • PS-server:将图像存储在 server 节点中作为全局数据。

    为了给出定量结果,我们总结了我们的典型场景。我们总共有 39 亿训练样本,由一个 20 节点的 GPU 集群来处理。对于每次训练迭代,每个节点的 mini-batch 设置为 3000,因此有效的 mini-batch size = 60000 。在每个样本中,用户平均与 32.6 张行为图像相关。得益于公共特征技术,据统计,每个有效的 mini-batch 涉及大约 32 万张图像以及 140 万个 ID(不包括图像 ID)。总共有 1.2 亿张 unique 图像参与训练,每一张图像都被预处理为 4096 维浮点特征作为训练输入。

    我们将 AMS 与下表中的两个替代方案进行了比较。实验结果如下表所示,表中的结果是 mini-batch 的平均数据规模,单位为Bytes 。其中:

    • storage 指标:存储 mini-batch 图像和 ID 数据需要的存储规模,单位为 Bytes
    • communication 指标:在 workerserver 之间传输 mini-batch 数据的传输规模,单位为 BytesALL 指的是传输所有数据(图像 + ID 数据),Image 指的是仅传输图像数据。

    可以看到:AMS 实现了很好的系统效率,而 PS-workerPS-server 策略在存储负载或通信负载方面存在重大缺陷。具体而言,PS-worker 需要比 AMS31 倍的存储空间(5.1G vs 164M),而 PS-server 的通信成本是 AMS32 倍(5.1G vs 158M) 。

15.5.2 消融研究

  1. 这里我们首先通过离线实验专门研究我们方法的各种设计细节。为了公平比较,除非另有说明,否则所有消融研究都禁用 partial warm-up 策略。

  2. baseline:我们将所有离线实验的 baseline 设为仅具有稀疏 ID 特征的 Embedding & MLP 模型,这是淘宝展示广告系统中生产模型的简化版本。

    注意,baseline 中也使用了两个特殊 ID 字段作为稀疏特征:广告图像的 ID、用户行为图像的 ID。这两个 ID 字段对于公平比较至关重要,因为图像特征实际上可以起到 ID 的部分作用,我们应该为两个模型保持一个公共的基础,从而显示图像语义信息的净增益 clean improvement 。此外,我们采用自适应正则化(参考 DIN 模型)来解决 ID 特征的过拟合问题。

  3. 图像信息研究:DICM 集成了用户行为图像和广告图像。这里我们对它们的有效性进行消融研究。为此,我们从 baseline 开始,分别使用广告图像、行为图像、以及同时使用这两种。下表展示了离线数据集的结果。可以看到:

    • 行为图像或广告图像都可以提升 baseline,这表明在用户和广告建模中引入视觉特征可以带来积极的效果。
    • 此外,行为图像和广告图像的联合建模将显著提高性能。值得注意的是,联合建模的增益远远大于对它们单独建模的增益之和,即 GAUC0.0055 vs 0.0044AUC0.0037 vs 0.0024 。这一结果有力地证明了通过视觉信息对用户和广告进行建模的协同效应,这是我们的 DICM 带来的理想效果。

  4. 行为图像聚合器的研究:我们详细比较了前面描述的不同聚合器的影响,这些聚合器在模型中聚合了行为图像 embedding。结果如下表所示,可以看到:

    • concatenation 不适合行为聚合,性能较差;sum/max 池化给出了合理的改进。
    • AttentivePooling 展示出将广告图像作为注意力 query 的显著收益。
    • MultiQueryAttentivePooling 带来最好的结果,这受益于稀疏 ID 和图像语义信息之间的交互。

  5. 不同基础结构的研究:我们的工作重点是通过联合用户行为视觉信息和广告视觉信息来增强 CTR 预测模型。传统稀疏特征的基础basic 网络结构设计不是本文的中心话题。我们假设 DICM 可以应用于不同的基础网络,并带来图像特征的一致的改进。为了验证这一假设,我们使用经典的逻辑回归 LR 、最近提出的 DIN 模型、以及 baseline Embedding & MLP 作为基础模型来测试 DICM 。下图给出了这些模型的离线 GAUC 指标。可以看到:

    • 具有图像特征的模型始终优于仅具有 ID 特征的模型。

    • 具有图像特征的 DIN 表现最好,并且大大超越了经典的 DIN

    • LR 在使用图像特征增强时的提升不如其它模型,这是因为 LR 无法充分利用图像的高层语义信息。

  6. partial warm-up 研究:我们通过比较 non warm-uppartial warm-upfull warm-up 来研究 warm-up 策略。如下表所示:

    • partial warm-up 效果最佳。
    • 由于 ID embedding 参数的严重过拟合,full warm-up 会导致更糟糕的结果。

15.5.3 DICM 结果

  1. 这里我们将使用 partial warm-up 策略和 MultiQueryAttentivePooling 的最佳配置的 DICMbaseline 进行离线效果的比较。我们还进行了在线 A/B test,结果表明与 state-of-the-art 的生产模型相比有了显著提升。

  2. 离线评估:我们首先使用离线数据集评估我们的 DICM 模型,我们采用 partial warm-up 策略和 MultiQueryAttentivePooling。下表和下图显示了 baseline 和最佳配置 DICM 之间的 AUC/GAUC 比较。可以看到:

    • DICM 的性能比 baselineGAUC 上提升 0.0078、在 AUC 上提升 0.0055。这在实际系统中是显著的改进。
    • 此外,从下图可以看出,baselineDICM 中的gap 在训练过程中是一致的。这表明我们的方法是鲁棒 robustness 的。

  3. 在线 A/B test:在在线 A/B test 中,为了与生产环境保持一致,我们将 DICM 的基础网络替换为生产中 state-of-the-art 的网络(具有更复杂设计特征的 Embedding & MLP 模型的高级版本)。我们将 DICM 和生产模型进行比较,评估指标为广告系统中的三个关键指标:CTReCPMgross merchandise value: GPM

    如下表所示,DICM 在连续 7 天的统计周期内在在线 A/B test 中取得了一致的收益。考虑到淘宝的庞大规模和高度发达的广告系统,这种持续的在线改进意义重大。DICM 现已部署在淘宝的展示广告系统中,服务于 5 亿用户和数百万广告主的主流量main traffic

15.5.4 Pre-rank

  1. 最后,我们评估了在 Pre-Rank 阶段应用 DICM 的性能。我们在离线数据集上进行训练,结果如下表所示:我们的 DICMGAUCAUC 指标上再次显著优于 baseline。这样的结果再次证明了将我们的框架推广到广告/推荐系统的其它 CTR 预估任务的前景。