《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》
现代搜索引擎主要通过将 document
中的关键词(keywords
)和搜索 query
中的关键词进行匹配(matching
)来检索 web document
。然而,词汇匹配(lexical matching
)可能不准确,因为同一个概念通常在 document
和 query
中使用不同的词汇( vocabulary
)和语言风格(language styles
)来表达。
潜在语义分析(latent semantic analysis: LSA
)等潜在语义模型(latent semantic models
)能够在词汇匹配经常失败的语义级别(semantic level
)将 query
映射到 query
相关的document
。这些潜在语义模型通过将出现在相似上下文中的不同 term
分组到相同的语义簇 (semantic cluster
),从而解决 web document
和搜索 query
之间的语义差异。因此,query
和 document
在低维语义空间中表示为两个向量,即使它们不共享任何 term
,它们仍然可以具有很高的相似度得分(similarity score
)。
根据 LSA
扩展,人们还提出了诸如 probabilistic LSA: PLSA
、 Latent Dirichlet Allocation: LDA
之类的概率主题模型(probabilistic topic models
)用于语义匹配(semantic matching
)。
然而,这些模型通常以无监督的方式使用目标函数进行训练,该目标函数与检索任务的评估指标联系不紧密。因此,这些模型在 web
搜索任务上的表现并不如最初预期的那么好。最近,已经进行了两个研究方向来扩展上述的潜在语义模型,下面对其进行简要的回顾:
首先,由 query
及其点击document
组成的点击数据集被用于语义建模(semantic modeling
),从而弥合搜索 query
和 web 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
范式。将 query
和 document
的 term vectors
投影到低维语义空间的概念向量(concept vectors
)之后,query
及其点击 document
的概念向量比 query
及其未点击 document
的概念向量距离更近。
Gao
等人报告说,在document ranking
任务中,BLTM
和 DPM
的表现都显著优于无监督的潜在语义模型,包括 LSA
和 PLSA
。
然而,BLTM
的训练虽然使用点击数据,但最大化对数似然函数,这对于 document ranking
任务的评估指标而言是次优的。
另一方面,DPM
的训练涉及大规模矩阵乘法,这些矩阵的大小通常随着词表规模(vocabulary size
)的增加而迅速增长。而在 web
搜索任务中,词表规模可能达到数百万的量级。为了使训练时间可以接受,词表被激进地裁剪。尽管更小规模的词表使得模型使得训练可以进行,但是会导致性能欠佳。
其次,Salakhutdinov
和 Hinton
使用深度自编码器(deep auto-encoder
)扩展了语义建模(semantic modeling
)。他们证明了嵌入在 query
和 document
中的层次语义结构(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
进行排序,如下所示:
首先,执行非线性投影从而将 query
和 document
映射到公共语义空间。
然后,每个 document
和给定 query
的相关性计算为它们在这个公共语义空间中的向量之间的余弦相似度。
神经网络模型使用点击数据进行有区别地 (discriminatively
)训练,从而最大化给定query
条件下点击 document
的条件概率。和之前以无监督方式学习的潜在语义模型不同,DSSM
模型直接针对 web document ranking
进行了优化,因此具有卓越的性能。
此外为了处理大型词表,作者提出了所谓的哈希方法(hashing method
),通过该方法将 query
或 document
的高维 term vectors
投影到低维的 letter based n-gram vectors
,信息损失很小。在论文的实验中,实验表明:通过在语义模型中添加这一个额外的layer
,word hashing
使得我们能够有区别地学习大词表的语义模型,这对于 web
搜索至关重要。
论文使用真实世界的数据集在 web document ranking
任务上评估了 DSSM
,结果表明:DSSM
的最佳模型在 NDCG@1
中以 2.5%-4.3%
的显著优势优于所有竞争方法(包括之前被认为是 SOTA
的方法)。
论文的主要贡献在于论文在三个关键方面对先前的潜在语义模型(如 LSA
)进行了重大扩展。
首先,论文直接针对 document ranking
的目标,利用点击数据来优化模型参数。
其次,论文使用多个 hidden-representation layer
将线性语义模型扩展到非线性语义模型。
采用深层架构可以进一步增强建模能力,从而捕获和表达 query
和 document
中更复杂的语义结构。
第三,论文使用 letter n-gram based word hashing
技术,该技术证明有助于扩展深度模型的训练,以便可以在现实的 web
搜索中使用非常大的词表。
论文的实验表明上述三个方面的每一个新技术都可以显著提高 document
排序任务的性能。三种新技术的组合产生了一个新的 SOTA
的语义模型,该模型以显著的优势击败了所有之前的baseline
模型。
相关工作:论文的工作是基于对信息检索( IR
)的潜在语义模型的两个最新扩展。第一个是探索用于以监督方式学习潜在语义模型的点击数据,第二个引入深度学习方法进行语义建模。
潜在语义模型以及使用点击数据:使用潜在语义模型进行 query-document mathcing
是 IR
社区中一个长期存在的研究课题。流行的模型可以分为两类:线性投影模型(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
中的 term
和 query
中的 term
之间的翻译关系。最近的研究表明,给定大量用于训练的点击数据,这种方法非常有效。论文还将通过实验将 DSSM
和翻译模型进行比较,细节参考后面的内容。
深度学习:最近,深度学习方法已经成功地应用于各种语言和信息检索 application
。通过利用深度架构,深度学习技术能够从训练数据中发现对任务有用的不同抽象级别(abstractions level
)的隐藏结构和特征。
在 《Semantic hashing》
中,Salakhutdinov
和 Hinton
通过使用深度网络(自编码器 auto-encoder
)来扩展 LSA
模型,从而发现嵌入在 query
和 document
中的层次语义结构(hierarchical semantic structure
)。他们提出了一种语义哈希(semantic hashing: SH
)方法,该方法使用从深度自编码器中学到的 bottleneck
特征进行信息检索。这些深度模型分为两个阶段学习。
首先,学习一系列生成模型(即受限玻尔兹曼机restricted Boltzmann machine
)将document
的 term vector representation
逐层映射到低维的语义概念向量(semantic concept vector
)。
其次,对模型参数进行微调,从而最小化 document
的原始 term vector
和重构的 term vector
之间的交叉熵误差。
中间层 activation
用作 document
排序的特征(即 bottleneck
)。他们的评估表明,SH
方法取得了优于 LSA
的文档检索性能。
然而,SH
存在两个问题,并且无法超越基于标准的lexical matching based
的检索模型(例如,使用 TF-IDF term weighting
的余弦相似度)。
第一个问题是模型参数针对 document
的 term vector
重建进行了优化,而不是针对给定query
从而将相关的document
和不相关的 document
区分开来。
第二个问题是为了降低计算成本,document
的 term vector
仅包含最常用的 2000
个单词。
接下来论文将展示对这两个问题的解决方案。
我们开发的 DNN
架构可以将原始的高维稀疏文本特征映射到语义空间中的低维稠密特征,如下图所示。
DNN
的输入(原始文本特征)是一个高维稀疏的 term vector
,如 query
或 document
中 term
未归一化的原始计数。输入层 500k
表示采用 500k
个单词的大型词表。
DNN
的第一个隐层有 30k
个单元,从而完成 word hashing
。
然后通过多层非线性投影来映射经过 word hashed
的特征。
DNN
的输出是低维语义特征空间中的概念向量( concept vector
)。
这个 DNN
模型用于 web document ranking
如下:
将 term vectors
映射到它们对应的语义概念向量(semantic concept vectors
)。
计算 document
和 query
对应的语义概念向量的余弦相似度(cosine similarity
)作为它们之间的相关性得分(relevance score
)。
形式化地,假设输入向量为
其中:
tanh
激活函数。
word hashing layer
固定的权重矩阵,不需要学习,详细内容参考后文所述。
对于 query
document
query
document
一般而言,term vector
(可以视为IR
中的原始 bag-of-words
特征)的维度与用于索引 web document
集合的词表大小相同。在现实世界的 web
搜索任务中,词表大小通常非常大。因此,当使用 term vector
作为输入时,神经网络输入层的尺寸将无法用于模型推断和模型训练。
为了解决这个问题,我们为 DNN
的第一层开发了一种称作 word hashing
的方法,如上图的下半部分所示。word hashing layer
仅由线性隐单元组成,其中包含一个不需要学习的、规模很大的权重矩阵。接下来我们将详细描述 word hashing
方法。
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
允许我们使用维度低得多的向量来表示 query
或 document
。
以 40K-word
词表为例,每个单词都可以使用 letter trigrams
由一个 10306
维的向量来表示,从而在几乎没有冲突的情况下将维度降低了 4
倍。
当该技术应用于更大规模的词表时,维度的降低更为显著。如下表所示,500K-word
词表中每个单词都可以使用 letter trigrams
由一个 30621
维的向量来表示,维度降低了 16
倍,而且冲突率 0.0044%
(22/500000
)几乎可以忽略不计。
虽然英语单词的数量可以是无限的,但是英语(或者其他类似语言)中 letter n-gram
的数量通常是有限的。此外,word hashing
能够将同一个单词的形态变化映射到 letter n-gram
空间中彼此靠近的点。更重要的是,letter n-gram based representation
可以解决在训练集中看不到的单词(即 out-of-vocabulary: OOV
)的问题。
唯一的风险是 representation
冲突,虽然冲突比例较小。因此,基于 letter n-gram
的 word hashing
对 OOV
问题具有鲁棒性,使得我们能够将 DNN
解决方案扩展到词表非常大的 web
搜索任务中。我们将在实验部分演示该技术的好处。
在我们的实现中,基于 letter n-gram
的 word hashing
可以被视为一种固定的(不需要学习的)线性变换。通过该变换,输入层中的 term vector
将被投影到下一层的 letter n-gram vector
。由于 letter n-gram vector
的维度要低得多,因此可以有效地进行 DNN
学习。
点击日志由 query
及其点击的 document
组成。我们假设每个 query
与对应的点击 document
至少部分相关。
受语音和语言处理中判别式训练(discriminative training
)方法的启发,我们提出了一种监督训练方法来学习我们的模型参数(即模型中的权重矩阵 query
的条件下点击 document
的条件概率。
给定 query
document
softmax
函数从 query-document
之间的语义相关性得分得到后验概率:
其中:
document
集合。理论上应该考虑所有的候选文档,但是实际应用中给定一对点击样本
我们选择
我们的目标函数是在给定 query
的情况下最大化点击 document
的可能性,即:
其中
该模型很容易使用基于梯度的数值优化算法进行训练,限于篇幅我们省略了梯度的推导过程。
注意:这里并没有计算负样本的概率
DSSM
模型配置:
为了训练模型并避免过拟合,我们将点击数据分为训练集和验证集。模型在训练集上训练,超参数在验证集上优化。
在实验中,我们的 DSSM
使用了具有三层隐层的架构。第一层隐层是 word hashing layer
,包含大约 30k
个节点(letter-trigramms
);接下来的两层隐层各有 300
个隐节点。
此外,输出层包含 128
个节点。
word hashing
基于固定的投影矩阵,相似性度量基于维度为 128
的输出层。
我们初始化网络权重为
实验结果表明:在采用逐层预训练时我们没有观察到更好的性能。
在训练阶段我们使用基于 mini-batch
的随机梯度下降 SGD
优化模型,每个 mini-batch
包含 1024
个训练样本。我们观察到模型训练通常会在 20
个 epoch
内收敛。
数据集:我们在大规模真实世界数据集(称作评估数据集)的 web document
排序任务中评估了 DSSM
。
评估数据集包含 16510
个英语 query
,这些 query
来自商业搜索引擎的一年的 query
日志文件。平均而言,每个 query
都和 15
个 web document
(URL
)相关联。我们仅使用 web document
的标题字段进行排序。我们使用了大约 1
亿对的随机采样子集,这些 document
很受欢迎并且具有丰富的点击信息。
每个 query-title pair
都有一个人工生成的相关性标签,标签等级从 0 ~ 4
一共五级相关性:4
级表示 document
和 query
最相关,0
级表示 document
和 query
最不相关。
所有 query
和 document
都经过预处理:单词被空格分开,字母小写,数字被保留,并且不执行词干化。
评估方式:评估指标是 Normalized Discounted Cumulative Gain: NDCG
。我们在这里报告 NDCG@1, NDCG@3, NDCG@10
。
我们还使用 paired t-test
来进行显著性检验,当
本文中使用的所有排序模型(即 DSSM
模型、主题模型、线性投影模型)都包含很多需要凭经验设置的超参数,我们使用 2-fold
交叉验证来调优超参数。
baseline
方法:我们将 DSSM
和三组 baseline
模型进行比较。
第一组 baseline
方法包括一些广泛使用的 lexical matching
方法,如 TF-IDF
和 BM25
。TF-IDF
和 BM25
都是基于 lexical matching
的 SOTA
的 document ranking
模型。
在TF-IDF
方法中,query
和 document
都表示为具有 TF-IDF
权重的 term-vector
。给定 query
,document
按照 query vector
和 document vector
之间的余弦相似度排序。
在 BM25
方法中,query
和 document
相关性表示为:query
中每个 term
和 document/query
相关性的加权和,权重为 term
的重要性,即:
其中:query
term
;document
的相关性;query
的相关性。
第二组 baseline
是单词翻译模型,如 WTM
,它旨在通过学习 query
单词和 document
单词之间的 lexical mapping
来直接解决 query-document
语言差异问题。
第三组 baseline
是 SOTA
的潜在语义模型,这些模型包括无监督方法(如 LSA, PLSA, DAE
)以及有监督方法(BLTM-PR, DPM
)。
对于 LSA
,我们使用 PCA
而不是 SVD
来计算线性投影矩阵。 query
和 title
被视为单独的文档,因此模型中并未使用来自点击数据的 pair
信息。
PLSA
仅针对 document
(即 title
)进行训练,另外我们的 PSLA
版本是使用 MAP
估计学习的。
DAE
是基于深度自编码器的语义哈希模型的实现。由于模型训练的复杂性,输入的 term vector
基于 40k
的词表。
DAE
架构包含四个隐层,每个隐层包含 300
个节点。中间有个 bottleneck layer
,它包含 128
个节点。该模型仅以无监督的方式对 document
进行训练。在微调阶段,我们使用交叉熵误差作为目标函数。bottleneck
激活用作计算 query
和 document
之间余弦相似度的特征。
BLTM
是 PLSA
的扩展。DPM
也可以视为 LSA
的扩展,其中线性投影矩阵是使用点击数据以监督方式训练的。
为了使得结果具有可比性,我们按照 《Clickthrough-based latent semantic models for web search》
中的描述重新实现了这些模型。例如,由于模型复杂性的限制,LSA
和 DPM
的模型使用 40k-word
的词表进行训练,其它模型采用 500k-word
的词表进行训练。
实验结果如下表所示。第 9
行到第 12
行显式了 DSSM
不同设置的结果。
DNN
(第 9
行)是一个不使用 word hashing
的 DSSM
。它使用与 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-gram
的 word hashing
方法可以应用于任意大的词表,但是为了和其它方法进行公平地比较,该模型使用了 500-k word
的词表。
它和 L-WH no-linear
的不同之处在于: L-WH no-linear
是单隐层,但是 L-WH DNN
是三层隐层。
可以看到:
WTM
显著优于 TF-IDF
和 BM25
,这证明了 《Clickthrough-based translation models for web search: from word models to phrase models”》
中得到的结论。
DAE
的结果与之前在 《Semantic hashing》
中报告的结果一致。基于 DNN
的潜在语义模型(如 DAE
)优于线性投影模型(如 LSA
)。然而, LSA
和 DAE
都是以无监督方式训练,因此无法超越 SOTA
的 lexical matching
排序模型。
引入点击数据进行监督训练会带来一些显著的提升,BLTM-PR
和 DPM
都优于 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
的权重矩阵是固定的)。
深层架构比浅层架构在对嵌入在query
和 document
中的语义信息建模方面效果更好。
例如在无监督模型中, DAE
(第3
行) 深层模型优于 LSA
(第2
行) 浅层模型。在监督模型中我们也观察到类似的结果:
比较第 11
行和 12
行,我们观察到将非线性层从1
增加到3
会使得 NDCG
得分提高 0.004 ~ 0.005
,这在统计上是显著的。
比较第 10
行和 11
行(它们都是一层隐层的浅层模型),我们观察到线性模型和非线性模型之间没有显著差异。