一、DSSM
在搜索广告的场景中,
query
和document
使用不同的单词、同一个单词的不同形态(如:缩写、时态、单复数)来表达同一个概念。如果简单的通过文本的单词匹配来计算query
和document
的相似性,则效果不好。一种解决方式是:利用潜在语义模型
latent semantic model
(如:LSA
),将query
和document
都降维到低维语义空间,然后根据二者在低维空间的距离来计算二者相似度。论文
"Learning Deep Structured Semantic Models for Web Search using Clickthrough Data"
提出Deep Structured Semantic Model:DSSM
模型,该模型也是将query
和document
降维到公共的低维空间。在该低维空间中,
query
和document
的相似性也是通过二者的距离来衡量。它和
LSA
的区别:LSA
的低维空间是通过无监督学习,利用单词的共现规律来训练。DSSM
的低维空间是通过有监督学习,利用(query,document)
pair
对的点击规律来训练。
最终实验表明:
DSSM
模型要优于LSA
模型。
为解决搜索广告中词汇量大的问题(即:词汇表过于庞大),模型采用了
word hash
技术。
1.1 模型
DSSM
模型将原始的文本特征映射到低维的语义空间。首先将
query
和document
表示为词频向量,该向量由每个单词出现的词频组成。如:
query = 苹果手机 价格
,document = Iphone Xs 最低 售价 11399 元 Iphone X 价格 6999 元
。构建词汇表:
苹果手机 Iphone x Xs 价格 最低 售价 6999 11399 元
则得到
query
向量和document
向量为:
然后将 和 映射到低维语义空间,得到
query
语义向量 和document
语义向量 。计算 和 的相似度:
给定
query i
,计算所有document
与它的相似度,并截取top K
个document
即可得到排序结果:其中 是
query i
的排序结果(根据相似度降序排列), 是所有与query i
有关的文档。
假设输入向量为 ,输出向量为 ,网络一共有 层。
对于
query
,输入就是 ,输出就是 ;对于document
,输入就是 ,输出就是第 层的隐向量为:
其中:
- 为激活函数。论文(2013年)采用
tanh
激活函数,但是现在推荐relu
激活函数。 - 为待学习的网络参数。
- 为激活函数。论文(2013年)采用
给定
query
和document
,用户点击该文档的概率为:其中 为平滑因子,它是一个超参数,需要根据验证集来执行超参数搜索; 是候选的文档集合。
实际应用中,给定一对点击样本 ,我们从曝光但是未点击的文档中随机选择 篇文档作为负样本 ,则 。
论文中选择 ,并且论文表示: 不同的负采样策略对结果没有显著影响。
模型训练的目标是:最大化点击样本的对数似然:
然后基于随机梯度下降优化算法来求解该最优化问题。
注意:这里并没有计算负样本的概率 ,负样本的信息在计算概率 时被使用。
1.2 word hash
在将
query/document
的文本转化为输入向量的过程中,输入向量的维度等于词表的大小。由于实际web search
任务中的词汇表非常庞大,这导致DSSM
网络的输入层的参数太多,模型难以训练。假设词汇表有50万,经过
embedding
之后的维度为300维,则输入层权重为 ,一共 1.5亿参数。为解决该问题,
DSSM
模型在第一层引入word hash
技术。该层是一个线性映射,虽然参数非常多,但是这些参数不需要更新和学习。word hash
技术用于降低输入向量的维度。给定一个单词,如:good
,word hash
的步骤为:- 首先添加开始标记、结束标记:
#good#
- 然后将其分解为字符级的
n-gram
格式:#go,goo,ood,od#
(n=3
时) - 最后将文本中的单词
good
用一组char-level n-gram
替代。
- 首先添加开始标记、结束标记:
虽然英语词汇的数量可以是无限的(可以出现大量的、新的合成词),但是英语(或其它类似语言)的字符
n-gram
数量通常是有限的。因此word hash
能够大幅降低词汇表的大小。50万规模的词汇表经过
word hash
之后降低到3万规模,这使得输入层的参数降低到 900万(假设embedding
维度为 300 维)。相比较于原始的1.5亿,参数降低到原始数量的 1/16 。除此之外,
word-hash
技术还有以下优点:- 它能够将同一个单词的不同形态变化映射到
char-level n-gram
空间中彼此接近的点。 - 它能够有效缓解
out-of-vocabulary:OOV
问题。在推断期间,虽然有些词汇未出现在训练集中(未登陆词),但是当拆解未char-level n-gram
之后,每个n-gram
都在训练集中出现过。 - 从单词到
char-level n-gram
的映射关系是固定的线性映射,不需要学习。
char-level n-gram
可以视作word
的一个简单的representation
,而word-hash
技术就是得到这个representation
。- 它能够将同一个单词的不同形态变化映射到
word-hash
一个潜在的问题是冲突collision
:两个不同的单词可能具有相同的char-level n-gram
表示。下表中统计了两个词汇表中的冲突统计信息。可以看到,当采用
3-gram
表示时,冲突的占比小于千分之一。
1.3 实验
论文实现的
DSSM
模型:模型结构:包含四层:
- 第一层为
word hash
层,它将word
映射为char-level 3-gram
。其映射规则是固定的,不需要学习参数。 - 第二层、第三层为中间层,每层输出为 300维。
- 最后一层为输出层,输出 128维向量。
- 第一层为
权重初始化:权重通过在 之间均匀分布的随机变量来初始化。其中 表示输入单元数量和输出单元数量。
模型通过
mini-batch
随机梯度下降法优化,每个batch
包含 1024个样本,一共训练 20 个epoch
。模型原始词汇表为 50万(即:保留常见的50万词汇),经过
word hash
之后降低到 3万。
实验数据集:数据集是从商业搜索引擎的 1年
query
日志文件中采样的 16510 个query
,平均每个query
有15
个相关的document
。每对
(query,document)
都有人工标注的标签。标签一共5个等级0-4
,0
表示无关,4
表示最相关。DSSM
模型和其它模型的比较结果如图所示,其中模型的评估指标为NDCG
。9~12
行给出了不同的DSSM
变化:DNN
:没有采用word-hash
的DSSM
。它和第六行的DAE
结构相同,但是DAE
采用无监督学习训练,而DNN
采用有监督学习训练。为了能够训练
DNN
模型,我们采用4万规模的词汇表(即:保留常见的4万词汇)。L-WH linear
:线性的word hash
模型。在经过word hash
之后,直接连接到输出层,且输出层不采用任何非线性函数。因此整个模型都是线性的。L-WH non-linear
:非线性的word hash
模型。在经过word hash
之后,直接连接到输出层,但是输出层采用非线性函数。L-WH DNN
:标准的DSSM
模型。
结论:
从
DNN
和DAE
的比较结果发现:监督学习普遍比无监督学习效果好word hash
允许我们使用更大规模的词汇表。如L-WH-DNN
采用 50万规模的词汇表,而DNN
采用 4万规模的词汇表,但是L-WH-DNN
的模型参数反而更少。词汇表越小,则未登陆词越多,这导致文本被丢弃的信息越多。模型的效果越差。
因此
word hash
技术既可以减少模型参数,又能提升模型效果。深层网络强于浅层网络。
- 无监督学习:
LSA
可以看作浅层网络。深层网络的DAE
效果强于浅层网络LSA
。 - 监督学习:
L-WH non-linear
可以视为L-WH DNN
的浅层版本,实验结果表明后者效果更好。
- 无监督学习: