- 1 -
基于神经网络语言模型的 DSSM 模型优化
刘杨,李静林**
(北京邮电大学网络与交换技术国家重点实验室,北京 100876)
5 摘要:DSSM 模型是一个通过把搜索关键词和文档注入到低维空间并计算两者相似度的具有
多层神经网络结构的隐含语义模型,通过最大化给出训练数据中搜索关键词点击过的文档的
条件概率来训练学习,该模型克服了关键词匹配方法中忽视语义。在训练学习模型的过程
中,为了降低英文语料的维度,防止深度神经网络遇到“维度灾难”问题,DSSM 第一层隐
藏层通过 word hashing 方法对输入层输入的英文语料进行降维。但对于中文来说,这种方10
法不仅不能降维,反而使维度大大增加。而且用 word hashing 方法或其他词袋模型对文本
进行向量化表示时,忽视了词与词之间的顺寻以及词语之间的语义关系;同时有别于英文
是以“词”为最基本自然单位的,中文是以“字”为最自然基本单位的。针对 DSSM 模型
固有的缺陷以及无法很好地使中文数据工作,本文提出了“基于字词联合训练”的神经网络
语言模型,并把学习语言模型的同时得到的中文词向量,作为优化的 DSSM 模型的输入层15
数据,降低 DSSM 神经网络模型的结构复杂度和计算复杂度。
关键词:深度学习;DSSM;语义模型;词向量;神经网络
中图分类号:TP181
DSSM optimization model based on neural network 20
language model
LIU Yang, LI Jinglin
(State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and
Telecommunications, BeiJing 100876)
Abstract: DSSM model is a new latent semantic models with a deep structure that project queries 25
and documents into a common low-dimensional space where the relevance of a document given a
query is readily computed as the distance between them. The proposed deep structured semantic
models are discriminatively trained by maximizing the conditional likelihood of the clicked
documents given a query using the click through data. The model overcomes the keyword
matching methods which ignores the semantic. In the process of training and learning the DSSM 30
model, in order to reduce the dimensions of the English corpus’ representation vector and neural
networks’ curse of dimensionality, the first hidden layer of the DSSM model use a technique
called word hashing, which is shown to effectively scale up the semantic models to handle large
vocabularies which are common in such tasks. Unfortunately, this method doesn’t work for
Chinese, in fact, it increases the word representation vector greatly, and the word representation 35
vector ignore the words order and the words’ semantic by using word hashing. What’s more, the
“word” is as the basic unit of language in English, and the “character” is as the basic unit of
language in Chinese. In order to make the DSSM model work on Chinese, this paper propose a
new neural network language model called “the join of word and character training”, and the new
model’s word vector as the DSSM model’s input data, reducing the DSSM model’s complexity of 40
structure and computation.
Key words: deep learning; DSSM; semantic model; word embedding; neural network
0 引言
DSSM 是一个多层神经网络深度学习模型[1],该算法在处理英文数据时,为了防止深度45
学习网络中经常遇到的“维度灾难”的问题,第一层隐藏层采用了 word hashing 方法将输入
- 2 -
层输入的英文训练数据进行降维。英文语料中常用的英文单词有 1300 万个,如果用传统的
词袋模型对文本进行向量化表示,则需要生成一个几千万维的稀疏向量,在数据存储和深度
神经网络的计算上会产生很多开销,而通过 word hashing 方法,即使加上首尾的特殊字符,
仅仅用一个 104 级别维度的稀疏向量就可以表示;而且互联网网页中会有大量不常用或者错50
误的英文单词,如果训练数据中没有这个单词,那么学习得到的模型也无法向量化表示该单
词,而 word hashing 方法则完美的解决了这个问题。
word hashing 方法虽然解决了英文语料数据降维问题,但也存在一个很重要的缺陷,即
该方法忽视了词语之间的顺序以及语义关系。而且对于中文来说,常见的汉字大约是 2000
个,如果步长为 3,word hashing 的方法处理后的数据空间维度是 20003=8×109,这不但没55
有降维,反而使向量维度大大增加。通常中文的表示方法是通过词袋模型对文本进行向量化
操作,但词袋模型跟 word hashing 存在同一个问题,即忽略了词与词之间的顺序和语义关系,
同时对于词袋模型对短文本效果很差。为了解决如何有效的对中文短文本进行建模,本文参
考词向量模型[2],根据中文和英文的差别和联系,充分利用中文是以“字”作为中文最自然
基本语言单位和“词”提供语义信息的特性,提出了“基于字词联合训练”的神经网络语言60
模型,在本模型中同时优化迭代字向量和词向量,使词向量在训练的过程中,兼顾构成这个
词的字的意义,最终在得到语言模型的同时,可以得到字向量和词向量,而词向量作为 DSSM
模型的输入层数据,既解决了中文表示的维度问题,又充分利用了中文的词语之间、组成词
语的字之间的顺序关系和语义关系,优化了 DSSM 神经网络的层数和计算复杂度,而且明
显提升了 DSSM 模型的准确率。 65
1 相关工作
我们的主要工作基于两个在语义分析模型方面的探索,针对中文的语言特点对这些模型
进行优化,使其能更好的训练中文。第一是近年来比较流行的基于浅层神经网络的语言模型
[3],例如 word2vec 等基于神经网络语言模型的词向量模型;另一个是基于深层神经网络的
文本建模应用。 70
神经网络语言模型(NNLM)
Xu 等人在 2000 年首次尝试使用神经网络求解二元语言模型。 2001 年,Bengio 等人
正式提出神经网络语言模型看(Neural Network Language Model ,NNLM)[4]。该模型在学习
语言模型的同时,也得到了词向量。NNLM 同样也是对 n 元语言模型进行建模,估算
),...,|( 1)1( inii wwwP 的值。但与传统方法不同的是,NNLM 不通过计数的方法对 n 元75
条件概率进行估计,而是直接通过一个神经网络结构,对其进行建模求解。
但是神经网络语言模型是以“词”为单位进行训练的,所以通常的做法是首先对中文文
本进行分词,然后训练得到词向量。但是中文最自然的语言单位是“字”,我们通过把这个
最自然语言单位嵌入到词空间中,针对中文文本训练得到更有效的语言模型[5]。
Deep Structured Semantics Model(DSSM) 80
DSSM 模型是一个深层神经网络模型,可以计算搜索引擎的检索关键词和网页的相似
度,从而针对关键词进行网页相似度排名,提供最优的检索结果。在搜索过程中,对输入搜
索引擎的检索关键词,需要匹配相似的网页,通常的方法是只对网页的关键词进行解析并与
检索关键词匹配,然后根据关键词相似度对网页进行排名,这种方法忽略了词语之间的顺序
- 3 -
和语义关系,而且对于英文而言,可用的单词大约 1300 万个,如果是词袋模型,那么输入85
数据的维度则至少是千万级别的。DSSM 模型是通过将检索关键词和网页中的文档内容通过
深度学习框架映射到一个低维的语义模型空间中,输入层输入的数据是一个三元数据组(检
索关键词,输入 query 后点击过的链接,随机分配一个未点击的链接)数据对进行训练。
DSSM 通过 word hashing 方法对输入数据进行降维处理,并且可以表示拼写错误的单词
或特殊符号,但是对中文来说,这种方法非但不能降维,反而是维度大大增加,所以该模型90
不能直接应用到中文文本处理。同时,在短文本领域,如果使用传统的词袋模型进行建模,
效果会非常差。
在接下来的一章,我们将首先解决如何得到更好的中文语言模型,尤其是如何对短文本
建模,然后根据通过该语言模型得到词向量,作为 DSSM 的输入,解决 DSSM 的 word hashing
层无法处理中文以及词袋模型无法有效的对短文本建模的问题。 95
2 基于神经网络语言模型的 DSSM 模型
模型的整体结构图如图 所示,由两部分构成,第一部分是“基于字词联合训练”的
神经网络语言模型部分,该部分训练的得到词向量,构成一个句子的词的词向量加和归一化
后得到一条句子的向量,该句向量作为第二部分 DSSM 模型的输入,整个模型的损失函数
由两部分组成,第一部分是训练神经网络语言模型的损失函数,第二部分是深层神经网络模100
型的损失函数。
- 4 -
中国科技论文在线
256 256 256 256
128 128 128 128
128 128 128 128
64 64 64 64
词向量 x
隐藏层L1
隐藏层L2
低维特征空间 y
P(D1|Q) P(D2|Q) P(Dn|Q)
Q D1 D2 Dn
R(Q,D1) R(Q,D2) R(Q,Dn)
sum
输入层
隐藏层
输出层
i-th output=P(wt=i|context)
fostmax
tanh
Wt-1
...
Wt-2 Wt-n-1
图 基于神经网络语言模型的 DSSM模型
Fig. DSSM based on Neural Network Language Model
“基于字词联合训练”神经网络语言模型 105
在将文本向量化的方法中,常见的是词袋模型,但是词袋模型忽视了词语之间的顺序和
词语之间的语义关系;同时词袋模型无法有效的向量化短文本。现有工作在学习中文文本的
向量表示时往往直接沿用了英文的处理方式,而忽略了中文的特殊性。但是在中文里,最自
然的语言单位是“字”。 不同于富含语义信息的词,字仅为记录汉语用的符号系统,本身不
具备语义。为了让字的表示具有更丰富的语义信息,本文借鉴了 NNLM 和 word2vec 的思想,110
提出利用某个词上下文中各个词的分布以及构成这个词的字的分布,作为这个词的表示。虽
然字本身仍然不具备语义信息,但是利用这种表示,把字放入词的语义空间中,通过字词联
合训练,可以更有效地对中文语言进行建模。
- 5 -
中国科技论文在线
C(cht-n-1)
Wt-n-1
C(Wt-n+1)
Wt-2
C(Wt-2)
...
C(cht-1)
Wt-1
C(Wt-1)
tanh
fostmax
i-th output=P(wt=i|context)
e(Wt-n+1)
C(cht-2)
e(Wt-2) e(Wt-1)
输入层
隐藏层
输出层
图 “字词联合训练”神经网络语言模型 115
Fig. NNLM based on both words and characters
神经网络语言模型采用普通的三层前馈神经网络结构,其中第一层为输入层。其中输入
层首先把构成第 i 个词语的字向量加和归一化后得到的 )( ichC ,然后把 )( ichC 和第 i 个词的
词向量 )( iwC 拼接,组成输入层向量 )( iche 。因此输入层为词 1)1( ,..., ini ww 的字词联合
向量的顺序拼接: 120
)]();();...;([ 12)1( iini wewewex (1)
当输入层完成对上文的表示 x 之后,模型将其送入剩下两层神经网络,依次得到隐藏
层 h 和输出层 y:
)tanh( )1( Hxbh (2)
UhWxby )2( (3) 125
其中 H ∈ R|h|×(n−1)|e| 为输入层到隐藏层的权重矩阵,U ∈ R|V|×|h| 为隐藏层到输出层
的权重矩阵,|V| 表示词表的大小,|e| 表示词向量的维度,|h| 为隐藏层的维度。 )1(b 、 )2(b
均为模型中的偏置项。矩阵 W∈ R|V|×(n−1)|e| 表示从输入层到输出层的直连边权重矩阵。输
出层一共有 |V| 个元素,依次对应下一个词为词表中某个词的可能性。这里将其中对应词 w
的元素记作 y(w)。由于神经网络的输出层并不直接保证各元素之和为 1,输出层的 y 并不130
是概率值。因此,在输出层 y 之后,需要加入 softmax 函数,将 y 转成对应的概率值:
||
1
1)1(
))(exp(
))(exp(
),...,|(
V
k
k
i
inii
vy
wy
wwwP (4)
对于整个语料而言,语言模型需要最大化:
)1(
),...,|(log 1)1(
niw
inii wwwP (5)
一般神经网络的输入层只是一个输入值,而在这里,输入层 x 也是一个参数(存在向量135
e 中),这也是需要优化的。优化结束后,词向量就有了,语言模型也有了。在字词联合训
- 6 -
中国科技论文在线
练中,不仅每个词具有对应的词向量,每个字也具有对应的字向量。词向量和字向量的维度
相同,字和词的向量表示在同一个语义空间中。
训练时,神经网络语言模型使用随机梯度下降法[6] 来优化上述训练目标。每次迭代,
随机从语料 D 中选取一段文本 1)1( ,..., ini ww 作为训练样本,使用下式进行一次梯度迭140
代:
),...,|(log 1)1( inii wwwP
(6)
式中,α 是学习速率;θ 为模型中的所有参数,包括词向量和网络结构中的权重 U、 H、
)1(b 、 )2(b 。
通过“字词联合训练”得到的词向量,作为输入到 DSSM 模型中进行训练,解决了 DSSM145
模型的 word hashing 无法处理中文问题,以及常见的词袋模型中忽略的词语的顺序和语义问
题,同时还解决了常见的词向量模型中忽视了中文以“字”为单位的问题。
基于词向量的 DSSM 深度神经网络模型
常用的英文单词有 1300 万个,如果用词袋模型对文本进行向量化,则会导致文本向量
的维度很高,而且对于一些不常见的或者偏僻的网络用词,如果词袋模型中没有收录这个词,150
那么就无法进行量化该词。为了降维和使文本描述更健壮,DSSM 模型使用 word hashing 方
法对单词进行量化,word hashing 方法是指假设对单词“good”进行一个滑动窗口为 3 的量
化过程,首先在单词的首尾拼接一个特殊字符“#”,变成“#good#”,然后用一个长度为
3 的滑动窗口进行滑动,将单词依次分为“#go”、“goo”、“ood”、“od#”四个子串,
然后根据这些子串的 hash 值映射到一个固定维度的向量中。实验结果表明,经过此转换,155
可以将大约 500000 个英语单词,映射到 3 万维的向量中,hash 冲突很少,也可以通过此方
法向量化生僻单词。
但是 word hashing 方法忽略了词语之间的顺序和词语之间的语义关系,而且如果按照上
述 word hashing 方法处理中文数据,假如常见的汉字有 2000 个,那么至少为 20003=8×109
维,这将会造成严重的维度灾难。传统方法是使用词袋模型处理中文文本,但词袋模型也存160
在忽视词语之间的顺序以及语义关系的缺陷。
针对上述 DSSM 模型处理中文文本的缺陷,本文提出基于神经网络语言模型的 DSSM
多层神经网络模型,通过上面提出的适用于中文文本表示方法的“基于字词联合”训练的神
经网络语言模型得到词向量,充分利用了词语在语义空间的特征和中文的语言特性,同时可
以减少 DSSM 多层神经网络中 word hashing 算法的隐藏层,降低了神经网络的结构复杂度165
和计算复杂度。
优化后的基于神经网络语言模型的 DSSM 模型的结构如图 :
- 7 -
中国科技论文在线
256 256 256 256
128 128 128 128
128 128 128 128
64 64 64 64
词向量 x
隐藏层L1
隐藏层L2
低维特征空间 y
P(D1|Q) P(D2|Q) P(Dn|Q)
Q D1 D2 Dn
R(Q,D1) R(Q,D2) R(Q,Dn)
图 DSSM模型神经网络结构
Fig. DSSM network structure 170
其中,Q 是输入的搜索关键词, nDD ...1 包括两部分,分别是点击过的网页和随机分配
的未点击过的网页。
该模型主要分为两部分:(1)将表示单词的向量映射到他们对应的语义概念向量;(2)
通过计算 query 和 documents 的向量的余弦值来计算两者的相似度。
其中,D 包括两部分,一部分是输入 query 后点击过的链接, D ,一部分是随机分配175
的一个未点击过的链接, -D ,本实验设置 D 包括 1 个点击过的网页, -D 包括 1 个未点击
过的网页,计算出检索关键词和网页在低维特征空间的向量的余弦值,即 R(Q, iD ),模型的
输出层是一个 softmax 模型,训练过程中就是求解最大似然函数,即:
),(
)|(log)(
DQ
QDPAL (7)
同样使用随机梯度下降法去优化该模型。 180
3 实验结果
DSSM 模型的应用场景可以从关键词搜索延伸到用户画像和新闻推荐等场景,本实验使
用某新闻客户端的用户画像数据和用户点击过的客户端推荐给用户的新闻数据。考虑到实验
的复杂度,本实验的字词联合分布模型采用的是 1 个隐藏层的 BP 神经网络。首先建立生成
词向量的神经网络语言模型时,部分参考 word2vec 的代码,对训练过程中的随机梯度下降185
进行了优化,word2vec 只对词向量进行求导更新,优化后的梯度下降是将词向量和字向量
同时求导更新,神经网络语言模型训练结束后,每个词都被映射到一个低维的语义空间,我
们设置的词向量低维语义空间维度为 256,获得词向量后可以通过一个句子包含的词语的向
量的加权求和得到句向量。
DSSM 模型实现借助了深度学习框架 caffe,采用 3 个隐藏层的深度神经网络,每个隐190
藏层的输出结果维度为 128、128、64,输入层是字词联合向量模型得到的词向量加和之后
的向量,采用输出层是一个 softmax 分类器。
DSSM 模型最后的输出层是一个 softmax 分类器,训练模型时可以将输出转换为对应的
概率。DSSM 输入的是一个(搜索关键词,点击过的网页,未点击过的网页)的三元组,将
“字词联合训练”模型生成的词向量输入到 DSSM 模型中,和使用词袋模型的字词表示方195
法作对比,词袋模型设置的是 32768 维,DSSM 在不同的学习率下的准确率有明显的提升。
- 8 -
中国科技论文在线
输入测试集后,计算点击过的文档和用户的余弦值、未点击过的文档和用户的余弦值,如果
前者的值大于后者的值,那么我们认为是预测正确的结果,最后正确率=预测正确数/输入数
据总数。相关实验的准确率如下表,其中是 DSSM 模型的参数,每一行分别表示在下词袋
模型、word2vec 和字词联合训练三个模型的准确率,如表 : 200
表 实验结果
Experiment Result
文本表示模型
DSSM 多层网络配置
词袋模型 word2vec 字词联合训练模
型
图 是通过词袋模型、word2vec 和字词联合训练模型产生的词向量在 DSSM 模型中
的准确率,由图中可以看出,随着 DSSM 模型的学习率的变化,随着从 增大到 的205
过程中,这三个词向量模型的准确率均为先增大后减小,但是从三条曲线看出,无论的值怎
么变化,准确率均为:accuracy(字词联合训练模型) > accuracy(word2vec) > accuracy(词袋模
型)。实验结果曲线验证了“基于词向量的 DSSM 模型”不但解决了 DSSM 模型无法处理中
文的问题,而且证明“字词联合训练”神经网络语言模型更适合对中文语言模型进行建模。
210
图 DSSM 模型在不同学习率下不同模型的准确率
- 9 -
中国科技论文在线
Fig. 3-1 the Accuracy of DSSM At Different Learning Rate
4 结论
DSSM 模型在搜索关键词和搜索结果匹配中会发挥巨大作用,通过计算相似度搜索关键
词和点击网页的相似度并排序,可以返回最符合搜索关键词的搜索结果。DSSM 模型可以扩215
展到用户画像和推荐新闻点击等场景应用,这也是本论文实验时基于的应用场景。“基于字
词联合训练”的神经网络语言模型则充分利用了中文以“字”为最自然单位和“词”可以表
达语义信息的特性;学习得到的模型中的词向量作为 DSSM 模型的输入数据,解决 word
hashing 方法无法处理中文文本问题,充分保留输入数据中词语的顺序和语义信息,减少
DSSM 神经网络中 word hashing 方法的隐藏层,降低 DSSM 多层神经网络的结构复杂度和220
计算复杂度,DSSM 模型的准确率也有明显提升。
[参考文献] (References)
[1] Bengio Y. Learning deep architectures for AI[J]. Foundations and trends® in Machine Learning, 2009, 2(1):
1-127.
[2] Mikolov T, Sutskever I, Chen K, et al. Distributed Representations of Words and Phrases and their 225
Compositionality[J]. Advances in Neural Information Processing Systems, 2013, 26:3111-3119.
[3] Tomas Mikolov, CHEN K, Greg Corrado. Efficient Estimation of Word Representations in Vector
Space[J].Journal of Ma-chine Learning Research, 2013, 3(5): 1301-3781.
[4] , , . A neural probabilistic language model[J]. Journal of Ma-chine Learning
Research, 2003, 3(1): 1137-1155. 230
[5] 李雷. 基于人工智能机器学习的文字识别方法研究[D]. 成都:电子科技大学, 2013.
[6] , , . Learning internal representations by back-propagating
errors[J].Nature, 1986, 323(3): 533-536