基于Bi-LSTM和分布式表示的网页主题相关度计算

2018-07-25 11:21蔡东风王铁铮
计算机应用与软件 2018年7期
关键词:双向网页文档

王 锋 白 宇 蔡东风 王铁铮

(沈阳航空航天大学计算机学院 辽宁 沈阳 110136) (辽宁省知识工程与人机交互工程技术研究中心 辽宁 沈阳 110136)

0 引 言

计算网页主题和特定主题的相关度能辅助技术人员在海量的互联网数据中发现与特定主题相关的网页。目前最普遍的相关度计算的模型是向量空间模型[1](VSM),而最典型的向量空间模型是Bag-of-Words,因为它具备简单性、有效性和经常令人惊奇的准确性。该方法以文本中的词作为特征项形成向量表示,并且特征权重以词的TF-IDF值的形式表示。尽管Bag-of-Words经常被使用,但它有两个主要缺点:一是失去了词的顺序,二是忽略了词的语义。当词的顺序丢失时,不同的句子可以具有完全相同的表示,只要使用相同的词即可。即使n-grams在短时间内考虑了单词顺序,它也受到数据稀疏和高维度的影响。Bag-of-Words和Bag-of-n-Gram对于这些词的语义或单词之间的距离几乎没有意义。这意味着“高铁”、“动车”和“沈阳”同样遥远,尽管语义上“高铁”应该比“沈阳”更接近“动车”。

本文综合现有方法的优缺点,提出一种基于双向LSTM[2]和分布式表示的网页主题相关度计算方法。首先将查询关键词通过分布式表示和双向LSTM表示成向量形式,然后在词向量空间中找出与其语义上相近的词,并将其添加到查询关键词中,再将搜索到的网页通过基于文档的分布式表示方法形成网页向量与主题关键词进行相关度计算。本文将上述方法实现并在搜狗实验室公开的测试数据集上进行了测试。

1 相关研究

1.1 词的向量表示

自然语言处理中,将词的向量表示的最简单方法是One-hot 表示方法。其主要思想是将词形成一个与词表长度一致的稀疏向量,除词所在维度为1,其余维度都为0。比如:“动车”和“高铁”,“动车”表示为[0,0,1,0,0,…,0,…],“高铁”表示为[0,0,0,0,1,0,…,0,…]。如果采用稀疏方式存储,会非常简单。但“动车”和“高铁”是语义上近似的词,而这种方法表示出的向量却无法反映这点[3]。这种方法存在两个缺点,一方面是向量的维度会随着文本中词汇数目的增加而增加;另一方面是任意两个词语都是独立存在,没有语义层面的表示[4]。

1.2 相关度计算

早在20世纪70年代,Salton等就提出来VSM算法来计算文档间的相似度。VSM是一种简单有效的计算文档相似度的方法,VSM常采用TF-IDF算法计算文档特征词的权重,然后将文档表示成向量形式就可以用余弦公式[5]来计算文档相似度了。但是这种方法丢失了词序且没有考虑词语背后的语义信息,忽视了词与词之间的相似度。人们为了更精准地计算文本相似度,提出了一些基于语义的相似度计算方法,如文献[6]利用WordNet语义词典研究局部相关性信息以此来确定文本之间的相似性。上述方法采用领域知识库来构建词语间的语义关系,与基于统计学的方法相比准确率有提高,但是知识库的建立是一项复杂而繁琐的工程,需要耗费大量人力。

网页主题相关度计算的研究是为了提高特定主题相关网页的发现,随着研究的深入,研究者们提出来许多网页主题相关度计算方法。文献[7]提出了基于VSM的计算方法,根据向量空间模型思想,结合网页结构和概念层次关系,优化网页特征和权重,以提高网页主题相关度计算的准确性。综合上述的网页主题相关度计算方法的优缺点,本文提出一种基于双向LSTM和分布式表示的网页主题相关度计算方法,通过将词的分布式表示应用到查询关键词扩展中,同时将文档的分布式表示应用到网页主题相关度计算上,提升了相关网页识别的精度。

2 基于双向LSTM和分布式表示的网页主题相关度计算

本文在传统的VSM的基础上,在进行主题关键扩展时采用了基于双向LSTM和词的分布式向量表示的查询扩展方法,在进行网页主题相关度计算时采用了基于文档的分布式向量表示的网页相关度计算方法。

2.1 分布式表示

2.1.1 词的分布式表示

词的分布式表示[8]是指将词表中的词映射为一个稠密的、低维的实值向量,深度学习中一般用到的词向量就是用分布式表示的一种低维实数向量。词的分布式向量表示可以通过上下文中给出的其他单词来预测下一个词。在分布式表示中,每个词被映射到由矩阵W中的列表示的唯一向量,该列通过词在词汇表中的位置进行索引。然后将向量的连接或平均值作为特征来预测句子中的下一个词。如图1所示,使用三个词(“小明”,“提交”和“一篇”)的上下文来预测第四个单词(“论文”)。将输入词映射到矩阵W的列以预测输出词。

图1 词的分布式向量表示的学习框架

训练时,词向量模型的目的是使平均对数概率L如式(1)最大化(分类器是Softmax),其中p(wt|wt-k,…,wt+k)如式(2),y如式(3)所示:

(1)

(2)

y=b+Uh(wt-k,…,wt+k;W)

(3)

词分布式表示的训练方法有很多,Bengio等[9]提出FFNNLM模型(Feed-Forward Neural Net Language Model)可以训练出词的向量表示形式,不过FFNNLM并非是专门用来训练词向量的。相比较FFNNLM模型,Word2Vec运行速度更快。Word2vec作为一种高效地将词表示为低维实数向量的词向量工具,使用神经网络的学习分布式向量表示,每个单词由在上下文中与其他单词向量连接或平均的向量表示,并且所得到的向量用于预测上下文中的其他单词[10]。例如“动车”的分布式向量表示为[0.452,-2.194,1.095,2.094,…],“高铁”的分布式向量表示为[2.831,-1.369,-0.350,-1.202,…]。

2.1.2 文档的分布式表示

文档的分布式向量表示可以从可变长度的文本片段(如句子、段落和文档)中学习固定长度的特征表示,通过密集的向量表示每个文档,该向量被训练来预测文档中的单词[11]。文档的分布式向量表示无监督为文本片段学习连续的分布式向量表示。文本可以是可变长度,从句子到文档。即该方法可以应用于可变长度的文本段,从短语或句子到大型文档的任何内容。

每个段落被映射到由矩阵D中的列表示的唯一向量,并且每个单词也被映射到由矩阵W中的列表示的唯一向量。段落向量记住当前上下文中丢失的内容或段落的主题,即PV-DM模型如图2所示。该模型的唯一变化是在式(1)中,其中h由W和D构成。算法本身有两个关键的阶段:第一是训练以获得已经看到的段落的单词向量W,Softmax权重U、b和段落向量D。第二是通过在D中添加更多的列和在D上梯度下降来获得新段落的段落向量D,同时保持W、U、b固定。

图2 文档的分布式向量表示的学习框架(PV-DM)

文档的分布式向量表示的一个重要优点是它们是从没有标签的数据中学习的,且包含语义信息和词序。上述方法考虑了段落向量与词向量的连接以预测文本窗口中的下一个词。另一种方法是PV-DBOW模型如图3所示,在给定段落向量的情况下形成一个分类任务,而不是前面PV-DM模型,在PV-DBOW模型中段落向量被训练以预测小窗口中的词。在本文中,每个段落向量是两个向量的组合:一个向量是分布式记忆的标准段向量模型(PV- DM模型),一个向量是没有词序信息的分布式词袋模型(PV-DBOW模型)。

图3 文档的分布式向量表示学习框架(PV-DBOW)

在进行网页主题相关度计算时采用文档的分布式表示即用Doc2Vec[12]生成网页的分布式向量表示和主题关键词计算网页主题相关度,确定其相关度阈值φ,由φ来判断网页是否相关,相似度计算小于φ的网页则认为不相关。

2.2 双向LSTM

词嵌入(词的分布式表示)可以在紧凑低维的词向量表示中捕获单个词的语义和句法信息,但是预训练的词嵌入所包含的关于词与句子语境作为一个整体的信息是有限的,多数都是对词窗口内的词有所倾向性的。而双向RNN尤其是LSTM,适用于在更大范围的句子语境中学习内在表示,可以有效学习长句的语境向量。将整个句子语境和目标词嵌入到同一低维空间,进一步优化以反映目标词和其整个句子语境作为整体的内部依赖关系。

为了从词周围可变长度的句子语境学习一个通用的嵌入函数,如图4所示,在Word2Vec的CBOW模型中,将它原来在固定窗口内的词嵌入取平均作为语境模型,替换成一个更有效的神经网络模型——双向LSTM。

图4 Word2vec的CBOW模型

两个模型都同时学习语境和目标词的分布式表示,通过一同嵌入低维向量空间,目的是用上下文语境预测目标词,通过一个对数线性模型。不同的是,双向LSTM更能有效地捕捉句子语境的本质。

图5说明了双向LSTM是如何表示句子语境的,把句子中的词从左到右输入一个LSTM,从右往左输入另一个LSTM,这两个网络的参数是完全分开的,包括两个独立的从左至右和从右至左的语境词向量。

给定一个句子w1:n,我们对目标词wi的双向LSTM语境表示定义为以下向量连接:

biLS(w1:n,i)=lLS(l1:i-1)⊕rLS(rn:i+1)

(4)

式中:l/r表示句子中词的从左到右和从右到左词嵌入,和标准的双向LSTM不同,我们并不将目标词wi本身输入到LSTM中。

图5 双向LSTM

为表示句子中目标词的语境(例如,“小明 [提交] 毕业 论文”) ,首先将LSTM输出的从左到右语境(“小明”)的向量表示和从右到左(“毕业 论文”)的向量表示连接起来,这样做的目的是获得句子语境中的相关信息,即使有时它离目标词很远。

接下来,对左右语境表示的连接使用非线性函数。

MLP(x)=L2(ReLU(L1(x)))

(5)

式中:MLP代表多层感知机,ReLU[13]是激活函数,Li(x)=Wix+bi是全连接线性操作。将连接后的向量输入到多层感知机,就可以表示两侧文本的重要依赖。将此层的输出作为目标词整个连接句子语境的嵌入。双向LSTM和Word2Vec的CBOW模型之间的唯一差别是CBOW模型是对目标词语境表示为周围一定窗口内语境词的简单平均,双向LSTM则使用了语境的全句神经表示。让c=(w1,…,wi-1,-,wi+1,…,wn)代表目标词wi的句子语境。目标词及其语境的向量维度相同,语境向量C:

C=MLP(biLS(w1:n,i))

(6)

式中:求和遍历训练语料中的每一个词t和它所对应的句子语境c、σ表示sigmoid函数[14]。采用word2vec中的负采样目标函数如式(7)来学习语境嵌入网络的参数、目标词向量和语境向量。可以根据词向量的余弦相似度找出与其语义上相近的词,在本文中主要是根据词的分布式表示和双向LSTM来做查询扩展。

(7)

3 实验及结果分析

3.1 查询扩展实验

查询扩展分别是基于词的分布式表示和双向LSTM的,词的分布式表示实验使用Word2Vec工具,搜狗实验室公开的搜狗全网新闻数据作为词向量训练语料,使用Skip-gram模型训练且训练的窗口大小为5,生成200维的词向量,基于双向LSTM的查询扩展实验使用相同的训练语料生成词向量。设计了三个实验,实验1是比较查询扩展词的个数对检索性能的影响,得到扩展词后,逐渐增加扩展次数,比较检索结果;实验2是比较查询扩展词的相关度阈值对检索性能的影响,同时和实验1的结果作比较;实验3是把本文方法和其他查询扩展方法做个比较。

为了精确地判定扩展查询结果的准确度,用平均准确率MAP和n位置的准确率Pn来评测。MAP是所有标准相关网页的所有查询的AP平均值,检索到的相关网页位置越靠前,那么MAP值便会越靠前,如公式所示:

(8)

式中:r为标准相关网页数;wi为第i个相关网页;n(wi)为第i个相关网页的排序。

Pn是指对一个排序结果,返回前n个结果的准确率。有时用户使用搜索引擎时可能只对返回的前n个网页感兴趣,Pn就是从这样的角度对检索性能进行衡量的评价标准,如公式所示:

(9)

式中:n是返回的前n个网页,Wn是前n个网页的相关与否。

从图6中可以看出,扩展词数量在0到6之间时,随着查询扩展词数的增加,检索性能MAP和Pn都有一定幅度的提高,当扩展词数达到6时,检索性能达到最优。当扩展词数达到6之后。增加扩展词个数并没有继续增加检索性能,反而性能有一定的下降。由此可见,查询扩展词数应该选择6的时候检索性能最好,太多的话会引入噪声。

图6 不同扩展词个数的实验结果

为了进一步验证实验1,对查询扩展的相关度阈值设置进行实验,如图7所示,当查询扩展的相关度阈值大于0.6时,MAP和Pn的检索性能达到最优,平均阈值为0.6时,检索性能最优,这时的扩展词数也是接近6,验证了实验1的查询扩展词数。

图7 不同相关度阈值的实验结果

实验3是把本文扩展方法和其他查询扩展方法做了比较,相同实验参数下,查询扩展词数为6个时,基于HowNet[15]语义词典的查询扩展方法为W1,基于本体和局部共现的查询扩展方法[16]为W2,本文基于双向LSTM和词的分布式表示方法为W3,实验3的平均准确率和n位置的准确率如图8所示。

图8 不同扩展方法的实验结果

从图8中可以看出,本文的方法和其他查询扩展方法相比较平均准确率和n位置的准确率都有一定的提高。这主要是因为词的分布式表示和双向LSTM生成的词向量都包含了语义相关的信息,同时也包含了上下文及词序信息,这使得查询扩展方法的效果有所提升。

3.2 网页主题相关度计算实验

查询扩展在基于词分布式表示和双向LSTM的关键词扩展后得到最终的主题关键词集合,再做进一步的实验。本文提出的基于分布式表示的网页主题相关度计算方法在Sogou实验室的评测数据中的国际类、体育类、社会类和娱乐类语料上进行测试。文档的分布式表示实验采用DBOW模型,训练的窗口大小为8,迭代200次生成200维的文档向量。

文档的分布式表示实验使用Doc2Vec生成文档向量计算网页主题相关度,与查询扩展后基于VSM和LDA[17]的网页主题相关度计算形成对比。

根据实验设定网页主题相关度阈值φ=0.28,计算查询关键词和网页的余弦相似度大于φ时,则网页与查询关键词主题相关,否则不相关。

用正确率式(10)、召回率式(11)和F值式(12)来评测分别基于VSM和LDA的网页主题相关度计算和本文方法的实验对比结果。

(10)

(11)

(12)

如表1和表2所示为基于VSM、LDA的网页主题相关度计算在Sogou评测数据上四类语料上述指标下的实验结果,表3为本文方法在Sogou评测数据上四类语料上述指标下的实验结果。从表中可以看出基于双向LSTM和分布式表示的网页主题相关度计算(Bi-LSTM and DP)在准确率、召回率和F值上相较基于VSM和基于LDA的网页主题相关度计算都有了明显的提高,主要是因为考虑了特征词和文档在语义层次上的相关,同时还没有丢失词序的信息。

表1 基于VSM的网页主题相关度计算

表2 基于LDA的网页主题相关度计算

表3 基于Bi-LSTM和分布式表示的网页主题相关度计算

4 结 语

用户通过查询关键词得到相关网页时,VSM仅从查询关键词的词频等统计信息与网页进行余弦相似度计算,从而判断网页相关与否,没有考虑到查询关键词的语义相关以及关键词的上下文语境。本文通过双向LSTM和词的分布式表示来扩展查询关键词,对最终的主题关键词集合与搜索网页进行余弦相关度计算,得到主题相关网页。本文的查询扩展方法根据查询词的上下文语境可以得到其语义相关词,同时还包含了词的语序。进行余弦相似度计算时将文档的分布式表示应用到网页主题相关度计算上,考虑了网页中的段落信息,可以提高主题相关网页计算的准确率。

猜你喜欢
双向网页文档
双向度的成长与自我实现
浅谈Matlab与Word文档的应用接口
降低寄递成本需双向发力
用“双向宫排除法”解四宫数独
有人一声不吭向你扔了个文档
基于HTML5与CSS3的网页设计技术研究
完善刑事证据双向开示制度的思考
基于CSS的网页导航栏的设计
基于HTML5静态网页设计
搜索引擎怎样对网页排序