APP下载

基于Word2vec的语义查询扩展方法

2018-12-10章露露吕晓伟

软件导刊 2018年9期

章露露 吕晓伟

摘要:查询扩展是信息检索领域重要研究内容。为了解决信息检索过程中用户提交查询时描述不准确以及查询词不匹配的问题,提出一种基于Word2vec的语義查询扩展方法。使用分布式神经语言概率模型Word2vec训练低维词向量,选取扩展词候选集,利用面向扩展词的查询向量生成方法过滤候选集,使选取的扩展词能更有效地体现整个查询的语义及语法相关性。实验结果表明基于Word2vec的语义查询扩展方法使查全率及查准率均有提高,因此该方法能很好地应用于查询扩展领域。

关键词:查询扩展;分布式神经语言概率模型;Word2vec;面向扩展词;语义相关性

DOIDOI:10.11907/rjdk.181044

中图分类号:TP301

文献标识码:A文章编号文章编号:16727800(2018)009004804

英文标题Semantic Query Expansion Method Based on Word2vec

--副标题

英文作者ZHANG Lulu,LV Xiaowei

英文作者单位( Faculty of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500,China)

英文摘要Abstract:Query expansion is an important research issue in the field of information retrieval.In order to solve the problem of inaccurate description and mismatch when users submit queries,we propose a new semantic query expansion method based on Word2vec.The distributed neural language probability model word2vec is used to train the low dimensional word vectors to select the expansion term anthology,and a new query vector generation method based on extended words is proposed to filter candidate sets,so that the selected extended words can be reflected more effectively in the semantic and grammatical correlation of the whole query.The experimental results show that the semantic query expansion method based on Word2vec has improved both the recall rate and the precision ratio.Therefore,the semantic query extension method based on Word2vec can be applied to the domain of query extension well.

英文关键词Key Words:query expansion; distributed neural language probability model; Word2vec; expansion oriented words; semantic relevance

0引言

完整的信息检索系统通常包括数据库(数据库中包含若干文档),将每篇文档与词项相关联的索引以及匹配机制,该机制由词语组成的用户查询和相关文档形成映射。建立信息检索系统的主要目的是能在给定的索引数据库中找到包含搜索者所需信息的文档[1]。

传统信息检索系统处理用户给定的查询时,要求用户描述精确并输入查询。但是通常情况下,用户对想要查询的信息并不能精确描述,因此信息检索系统可能会返回大量非预期的结果,导致“词典问题”(Dictionary Problem)[23]。想要解决词典问题,用户需要在提交查询时使用足够多的关键词描述搜索内容,信息检索系统才能返回满意的结果。但是据调查显示,用户更倾向于少量关键词搜索[4]。根据Encarta在线百科全书网站两个月的用户查询日志表明,49%的用户在描述查询时仅使用一个单词,33%的用户查询时使用两个单词,描述查询的平均单词只有1.4个[3,5],因此通过增加查询关键词的数量解决词典问题在实际应用中意义不大。

除了用户对查询描述不精确的影响因素外,查询词不匹配也是影响查询效率的一个不可忽略的因素。由于信息在当前系统中都是以字、词或者词组的形式表示,所以只有当文档包含用户查询的信息时才能被检索出来[6]。但是在自然语言中,一般对同一个概念的表达方式有多种,例如用户查询“automobile”时,包含“FORD”、“car”等也都与查询直接相关,这种情况下即使用户提出了准确的查询描述,可由于还有其它不同表达方式[6],也会导致一些文档不能被检索出来,影响查询结果。

1查询扩展相关研究

由于用户描述不准确和查询词不匹配问题,用户有时不得不使用足够多的词描述查询或是变换查询词才能找到所需信息。为了减轻用户查询负担,信息检索系统可以自动选择一些与用户查询关键词相关的其它词项加入到原查询中,从而组成更长、更全面的查询,这种辅助查询即为查询扩展技术。在信息检索领域,目前的查询扩展方法主要分为基于语义知识词典的方法、全局分析方法以及局部分析方法。

1.1基于语义知识词典的方法

基于语义知识词典的方法根据基于语义的语言学知识构建扩展词表[79],选出与查询词存在一定语义关联的词进行扩展。该方法一般借助大规模的手工词典,如通过WordNet、HowNet等选取查询词的上下义词、同义词,但是过分依赖完备的语义体系,而且独立于待检索的语料集,因此选出来的扩展词难以反映语料集特性。

1.2全局分析方法

全局分析查询扩展方法[10]首先对全部文档中的词或词组进行相关分析,计算每对词的关联程度,然后再将与查询词关联性最高的词加入到初始查询中生成新的查询。该方法可以最大限度探求词之间的关系,特别是在建立词典之后能以较高的效率进行扩展,但是当文档很大时,词典要建立全部的词关系不论在时间还是空间上都不可行,而且改变文档集的更新的代价也很大。

1.3局部分析方法

局部分析方法[1112]主要利用二次检索方法解决扩展问题,利用初次给定的查询直接检索,得到与原查询最相关的 n 篇文档作为扩展词来源,在n篇文档里寻找与原查询最相关的词加入到初始查询中并建立新的查询。目前比较流行的基于局部分析的查询扩展方法是伪相关反馈,它是在相关反馈[1314]的基础上发展而来的。这两种反馈的不同在于相关反馈对初次检索的结果需要由用户判定,将用户认为的相关文档作为扩展词来源,而伪相关反馈不需要与用户交互,直接将返回的前 n 篇文档认为是相关文章。虽然局部分析方法是目前应用最广泛的查询扩展方法,但存在的问题是,对用户的查询进行初次检索后,在返回的文档中,如果排在前面的文档与原查询相关度不大时,容易将大量无关的词加入查询,造成“查询漂移”问题。

近年来Word2vec技术在自然语言处理领域引起了众多研究者的关注。 通过 word2vec提供的训练模型得到的词向量反映了自然语言中语义和语法关系,可以通过计算词向量之间的余弦值判断词项之间相似性,因此可很好地用于查询扩展。

2Word2vec模型介绍

Word2vec是Google在2013年开源的一种将词表征为实数值向量的工具,主要利用两个重要模型:CBOW模型(Continuous Bag-of-Words Model)和Skip-gram模型(Continuous Skip-gram Model),Mikolov[15]在文献中给出了模型示意图,如图1所示。

从图中可以看出,CBOW模型是利用词语的上下文信息预测词语,而Skip-gram模型正好相反,它利用词语预测上下文。本文实验使用CBOW模型,故下文仅介绍该模型。

CBOW模型的网络结构包括3层:输入层、投影层和输出层,如图2所示。①输入层:包括当前词语前后各c个词;②映射层:将输入层的每个词语词向量进行累加;

③输出层:以语料库所有词语为叶节点的一个二叉树。

3基于word2vec的语义查询扩展方法

3.1问题定义

假设用户初始的查询预处理之后表示为Q={q1,q2,....,qn},扩展词表为T,T中所有词即为扩展词集,记为Qexp。待检索的文档集为D,共有N篇文档,D的词汇表为V={v1,v2,....,vV}。对V中的每个词项建立倒排索引,假设文档集的倒排索引集为ID。扩展后新的查询为Qnew,在索引集中匹配包含Qnew的文档,最后利用检索模型计算并返回包含用户查询信息且相关度较高的文档。

3.2扩展词候选集选取

对于处理后的查询Q={q1,q2,....,qn}生成一个初始扩展词集,通过Word2vec训练词向量,计算向量间相似度,找到每个关键词语义或语法相似词,生成扩展词候选集,将扩展词候选集表示为C:

C=∪qi∈QKNN(qi)(1)

其中,KNN(qi)是与qi最相似的K个词項集合。例如对预处理之后的查询 Q={automobile,maintenance}中的两个关键词,选择K(K=5)个最相似的词,如表1所示。表中扩展词后面的数值表示与查询关键词的相似度。

3.3扩展词表建立

C中所有候选词选取的标准是各个查询关键词的相似词,标注的相似度也只是与对应关键词的相似度,不能体现与整个查询的相关性。一般情况下,通过计算扩展词与原查询的平均余弦相似度评估与扩展词和整个查询的相似度,计算公式如下:

sim(t,Q)=∑qi∈Qcos(t,qi)|Q|(2)

根据平均余弦相似度的高低对C中所有词项重新排序、筛选扩展词。但是对查询词qi的某个扩展词而言,其它查询词对该扩展词的影响不应该和qi对该扩展词的影响相当,因此本文提出了一种面向扩展词的查询向量生成方法筛选扩展词、从而建立扩展词表的方法。该方法以扩展词对应的查询关键词为中心,针对整个查询生成一个查询Q相对于该查询关键词的查询向量,代替该查询关键词的向量,以此计算查询词对应的扩展词与整个查询的相似度,重新计算得到的相似度表示的是与Q的相似度,而不是与其对应关键词的相似度,从而更能体现整个查询的相关性。查询Q相对于查询关键词qi的查询向量生成方法如下:

vec(Qqi)=∑|Q|j=0vec(qj)*sim(qi,qj)(3)

其中vec(Qqi)表示查询Q相对于qi的查询向量,sim(qi,qj)表示qi和qj的相似度。

按式(4)计算C中qi对应的每个候选词t与查询Q的相似度:

sim(t,Q)=cos(vec(t),vec(Qqi))(4)

依此类推,不同查询关键词的扩展词得到的都是其与整个查询的相似度,然后根据相似度的高低再对C中所有扩展词进行筛选,选取阈值范围内的扩展词构建扩展词表,记为T。

综上所述,得到本文建立扩展词表的步骤如下所示:

输入:初始查询 维基百科语料库

输出:扩展词集

Step1:利用word2vec的CBOW模型训练维基百科语料库,得到词向量文件。

Step2:对Q中的每个关键词qi,根据词向量得到前K个最相似的词,记为C。

Step3:forQ中的每个关键词qi:

vec(Qqi)=∑|Q|j=0vec(qj)*sim(qi,qj)

生成Q相对于qi的查询向量。

Step4:forC中的扩展词t:

sim(t,Q)=cos(vec(t),vec(Qqi))

Step5:根据相似度对C中的候选词重新排序,选取与整个查询的相似度在指定阈值τ内的候选词,建立扩展词表T,得到扩展词集Qexp 。

4实验设计与结果

本文采用Jelinek Mercer的平滑算法[16]计算扩展后的查询Qnew与文档d的相关度R(Qnew,d)。

R(Qnew,d)=λR(Q,d)+(1-λ)R(Qexp,d)(5)

其中λ为调节参数,R(Q,d)为原查询与文档的相关度,R(Qexp,d)为扩展词集与文档的相关度,计算公式如下:

R(Q,d)=∑w∈Qtfw,d·idfw(6)R(Qexp,d)=∑w∈Ttfw,d·idfw(7)

4.1语料训练参数

本文使用Word2vec的CBOW模型训练的语料库选择英文维基百科作为语料,训练的详细信息如表2所示。

4.2数据集及评测方法

实验数据主要来自维基百科的英文语料集和Cran数据集。维基百科的英文语料集主要用于训练词向量,Cran数据集是一个包括查询集、文档集以及查询-文档的关联集,用于评估查询扩展性能。

其中查询集中共包含365个查询,文档集中共有1400篇文档,关联集中是查询-文档关联的标注。

采用的评测指标为查全率(Recall)和查准率(Precision):

Recall=检索到的相关文档数文档集中与查询相关的总文档数×100%(8)

Precision=检索到的相关文档数检索到的文档总数×100%(9)

4.3检索结果

根据式(5)的检索模型计算用户提交的查询并返回检索结果。本文对原始查询预处理,去掉停用词并进行词干还原得到查询Q。初始扩展候选集设定K值为10,相似度阈值τ=0.7,调节参数λ=0.6。按该方法计算扩展后的查询与文档的相关度并排序,选取前100个相关度较高的文档对结果进行评估。实验结果如图3所示。

由图3可以看出,与不扩展查询方法进行比较,本文方法获得了较好的效果。

5结语

本文提出的基于Word2vec的语义查询扩展方法,通过神经网络训练模型的使用,与不进行扩展查询方法相比,查询效果明显上升,但还有一些问题尚未解决,如扩展词的个数设定多少效果最佳?预处理查询时选取多少个词进行扩展效果能达到最优效果?CBOW模型训练词向量时窗口词个数的不同对结果是否有影响?这些问题还需进一步的探索研究。

参考文献参考文献:

[1]CARPINETO C,ROMAMO G.A survey of automatic query expansion in information retrieval[J].ACM Computing Surveys,2012,44(1):150.

[2]FURNAS G W,LANDAUER T K,GOMEZ L M,et al.The vocabulary problem in humansystem communication[J].Communication of ACM,1987,30(11):964971.

[3]崔航,文继荣,李敏强.基于用户日志的查询扩展统计模型[J].软件学报,2003,14(9):15931599.

[4]REICHERT M,LINCKELS S,MEINEL C,et al.Student's perception of a semantic search engine[C].Cognition and Exploratory Learning in Digital Age,2005:139147.

[5]WEN J R,NIE J Y,ZHANG H J.Clustering user queries of a search engine[C].Proceedings of the 10th International World Wide Web conference,2001:162168.

[6]张敏,宋睿华,马少平.基于语义关系查询扩展的文档重构方法[J].计算机学报,2004,27(10):13951401.

[7]RICHARDSON R,SMEATON A.Using WordNet in a knowledgebased approach to information retrieval[EB/OL].http://pdfs.semanticscholar.org/af2b/62f6bd6ba5204ad00a24829ac49807f0a757. pdf.

[8]SMEATON A,BERRUT C.Thresholding postings lists,query expansion by wordword distances and POS tagging of Spanish text[C].Gaithersburg:the 4th Text Retrieval Conference,1996.

[9]MILLER G A,BECKWITH R,FELLBAUM C,et al.Introduction to wordnet:an online lexical database[J].International Journal of Lexicography,1990,3(4):235244.

[10]田萱,杜小勇,李海華.语义查询扩展中词语——概念相关度的计算[J].软件学报,2008,19(8):20432053.

[11]丁国栋,白硕,王斌.一种基于局部共现的查询扩展方法[J].中文信息学报,2006,20(3):8491.

[12]吴秦,白玉昭,梁永祯.一种基 于 语 义 词 典 的 局 部 查 询 扩 展 方 法[J].南京大学学报:自然科学,2014,50(4):526533.

[13]BUCKLEY C,SALTON G,ALLAN J,et al.Automatic query expansion using SMART [C].Text Retrieval Conference,1994:6980.

[14]BAEZAYATES R A,RIBEIRO NETO B .Modern information retrieval[M].England:Pearson Education Limited,1999.

[15]MIKOLOV T,LE Q V,SUTSKEVER I.Distributed representations of words and phrases and their compositionality[C].Proceedings of NIPS,2013:31113119,

[16]ZHAI C,LAFFERTY J.A study of smoothing methods for language models applied to information retrieval[J].ACM Transaction on Information System,2004,22(2):179214.

责任编辑(责任编辑:江艳)