DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
Last updated
Last updated
论文:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data 作者:Po-Sen Huang, Xiaodong He, Jianfeng Gao, Li Deng 来源:CIKM2013
PDF: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
做了两件事:
1、用深度结构将query和doc映射到同一个低维空间,从而可以计算出它俩之间的相似度。
2、应对大规模网络检索,采用word hash技巧。
传统的网络检索通常用关键词匹配,但是一个概念通常用的词汇和语法都不一样,这样就导致不准确了。
已有的LSA隐语义模型虽然能将相似上下文的不同单词放到同一个语义类簇中,但是它的训练方式是无监督的,损失函数和检索的评估指标联系不太相关,所以性能也不能达到预期。
目前对于上述传统的隐语义模型,有两条路进行了拓展:
将训练目标和检索排序任务联系起来。但其训练目标是最大化似然值,而不是排序这一评估指标,这依然是次优的。而且,不能应对大规模检索任务,必须要见效减小单词数量,但这会导致性能下降。
Hinton等人通过深度自编码这一深度学习技术,可得到单词的embedding,比传统的LSA更优。但是其依然使用了无监督学习,模型的参数被用来重建doc而和排序无关,所以比base line方法也好不了太多。而且,当检索规模一大,也不能胜任。
针对上述缺点,于是提出了DSSM,给定query,使用深度神经网络对doc进行排序。
主要改进之处有两点:
将query和doc同时非线性映射到同一个语义空间,然后计算给定的query和每一个doc之间的cos相似度。目标函数是直接最大化实际发生的query-doc点击pair对的条件似然。
对于大规模单词,提出了word hash技巧。以很小的信息损失,将高维的vector映射到n-gram大小维度。
经过这两点改进,DSSM比其他所有的方法的指标都要高出2.5~4.3%。
DNN架构如下图所示。输入的原始文本特征是高维向量,输出是低维语义特征空间的向量。
DNN模型的作用如下:
将原始的文本特征非线性映射到低维语义空间。
在低维语义空间中计算doc和query的相似度。
具体表述如下:
为输入向量,为输出向量,
为中间隐层,为第层的权重矩阵,是第层的偏移项。
我们有:
使用tanh作为输出层和隐藏层的激活函数:
则queryQ和docD的语义相关度为:
所以,给定query,按照其语义相关度对doc进行排序。
输入的向量的维度等于单词表的大小,但是单词表在现实中是非常大的,所以将其直接作为神经网络的输入,对神经网络的前向传播和模型训练都不可接受。所以这里对DNN的第一层使用了“word hash”,这一层的权重被设置为不可学习(固定权重的线性变换)。
word hash用于减小输入x(词袋向量)的维度,它基于n-gram,最终被表征为n-gram字符的向量。例如good这个单词,先加上起始结束标志#,即#good#
,基于3-gram可被拆分为:#go, goo, ood, od#
。
相比维度巨大的one-hot编码的向量,Word hash技术让我们能够用维度小得多的向量去表征query或者doc。500K大小的单词可表征成30621维的3-gram向量,从而让我们能将DNN模型用到大国膜信息检索任务上。
唯一的问题是可能不同的单词会有相同的word hash值,但是这个概率很小,500K的单词中仅有22个单词发生了重叠,重叠概率仅为0.0044%。
可将word hash视为固定的不可变的线性变换。
我们的目标是给定query下最大化点击过的doc的条件概率。
其中,是平滑因子,需要经验性设置。为待排序的候选doc集。
理论上,应该包含所有可能的doc,但实际上,对于每一个实际发生的(query, clicked-doc)pair对,用
表示,即是query,是点击过的doc。
负采样:
我们将理论上包含了所有doc的集合D近似为包含了和四个随机选择的未点击的doc(负样本)。
而且这里作者说,并没有观察到不同的选择未点击doc的负采样策略会导致显著差异。
所以损失函数是
略。具体直接看paper。
无
===