查询意图分类技术综述_搜索引擎论文

查询意图分类技术综述,本文主要内容关键词为:意图论文,技术论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

D01:10.3772/j.issn.1675-2286.2008.07.003

1 关于查询意图分类

让我们首先引入查询这个概念,然后介绍什么是查询意图分类。

随着互联网的发展,World Wide Web(以下简称Web)上内容越来越多,充满了各种各样的信息。这些信息以包括传统网页、格式化文档、媒体文件(图片、音频、视频)、网络目录、用户档案、各种讨论区、邮件列表、Blog等在内的多种形式呈现。信息量巨大、信息结构多样化给用户获取这些信息带来了极大的困难。搜索引擎的出现在一定程度上缓解了针对海量信息的浏览和查找的难度。甚至可以说,搜索引擎就是网络的入口,Web用户可以通过向搜索引擎提交Web查询来使用这个入口。Web查询(以下简称“查询”)特指那些提交给网络上的搜索引擎、用以满足某些特定需求的查询。具体一点,在本文中可以把这个“查询”理解为用户提交给搜索引擎的那一串字符。

同时还需要注意的是,互联网上用户的查询行为具有不可预测的特点。在目前由搜索引擎所提供的交互接口和服务决定的条件下,用户往往只能使用有限数量的词汇来抽象和概括他们的需求。这个从信息需求到形成查询然后提交给搜索引擎的过程如下(参见图1):

● 用户对自己的信息需求进行概括。因为各种用户所具有不同的背景,导致不同的用户可能会用不同的词汇来表达类似或者相同的信息需求。

● 用户进一步尝试用为数不多的关键字代表对信息需求的概括。在这个过程中跟信息需求接近的有用的信息会发生缺失,比如对象间的逻辑关系、提交查询的具体的意图。

● 用户将形成的查询提交给搜索引擎。

图1 从信息需求到查询

从上述从信息需求到形成查询的过程中还可以看出,用户提交的查询具有简短的特点,这使得查询本身所蕴含的信息量更少。Web自身内在的异构特性、Web上海量的内容和查询自身蕴含的极少的信息,使得基于关键字进行检索的搜索引擎不太容易很快地给用户提供满意的查询结果。如果能够利用查询本身以及其他的信息来确定用户提交的查询所隐含的需求类型(称之为搜索的前端),那么搜索引擎就可以相应调整搜索策略并且使用不同的信息来检索结果(称之为搜索的后端)。查询分类从功能和目的上来说是为用户的查询Q,确定一个有序而且按照某种相关度递减的类别的列表

近年来在SIGIR、WWW以及其他刊物和会议上有越来越多的研究工作开始关注Web查询的分类。查询分类对Web用户和搜索引擎提供商都有重要的意义:一方面用户可以更快更准确地得到搜索结果[2];另一方面在对Web上信息资源按照各种不同的类别存储的前提下,搜索引擎自身能够更有效地和更有效率地进行检索并返回结果。在这一领域,已经有研究证明了查询分类的可行性。Broder[3],Rose和Levinson[2],Lee、Liu和Cho[4]在他们的研究中,通过手工分类等方法,证明了查询确实存在可被分类的性质且大部分查询拥有可以被预测的类别。

到目前为止的研究中,从如下的角度对查询进行分类:查询的意图[2-4]、查询的目标页面所涉及的地理范围[5]、查询所涉及的话题[1]以及组合的多个维度(比如歧义性、可靠度敏感性、时间敏感性和空间敏感性)[6]。本文将主要讨论根据查询的意图所进行的分类。因为确定用户提交查询的意图之后,可以根据查询意图进行相应的处理,比如搜索引擎可以根据查询背后的信息需求的类型,采取不同的检索方法,并且做出不同的响应,其中包括把更令用户满意的结果页面放在返回结果中靠前的位置以及准确地有针对性地进行广告推荐。同时本文也会涉及一些针对其他分类角度的研究中所采用的部分技术和方法。

以下部分本文按照如下结构进行组织:第2节叙述现有的查询意图的分类体系;第3节讲述查询意图分类的关键技术,第4节讲述分类的方法;第5节简要介绍查询分类的评价方法;然后在第6节指出该领域存在的问题和挑战;第7节进行总结。

2 分类体系

在查询意图分类领域, 目前没有标准的分类体系,不过所有后续的关于查询意图的分类的研究工作都受到了Broder等人提出的分类标准的影响。Broder等人在用户调查和对查询日志进行手工分类的基础上指出,把查询意图分为导航类、信息类和事务类[3]:

(1)导航类(Navigational),又叫做主页查找类。这一类的查询意图是为了访问某一个特定的网站,比如某公司主页、某组织的主页。

(2)信息类(Informational),又叫做话题相关类。这一类的查询意图是为了获取一些理应在一个或者多个网页上存在的信息,比如关于如何配置Apache服务器的教程。

(3)事务类(Transactional),又叫做服务查找类。这一类的查询意图是为了进行一些基于Web的活动(比如购物、软件下载)。

Rose等人在Broder[3]的基础上,提出了更细致的层次结构[2]:

(1)导航类。

(2)信息类。

● 有指导性的(Directed):用户想知道关于某个话题的特定的信息。

■确定的(Closed):用户想找到某个问题的唯一且没有歧义的答案,比如什么是TCP协议。

■开放的(Open):用户想了解一个开放式或者深度上不受限制的问题的答案,比如为什么金属会闪光。

● 无指导性的(Undirected):用户想了解关于一个话题的任何信息。

● 建议(Advice):用户想得到建议、想法或者操作指南,比如如何正确减肥。

● 位置(Locate):用户想弄清楚是否能得到某些真实世界里的服务或者产品,比如哪儿有卖电话卡。

● 列表(List):用户想得到一组可信的站点或者页面的列表,列表里每一个站点和页面可能都有助于用户实现一些目标,比如要了解关于去某个地方旅游的信息。

(3)资源类(Resource):用户的目标是要得到在网页上可得到的一些资源(而不是信息)。

● 下载(Download):用户想把某个资源下载到本地或者其它的设备上,比如下载ACM的论文。

● 娱乐(Entertainment):用户想查看网页上的娱乐信息,比如关于某明星的绯闻。

● 交互(Interact):用户想用网站上的另一个程序或者服务与资源进行交互,比如在提供天气预报的网站上查询某个地区的天气信息。

● 获取(Obtain):用户想得到一个不是必须要通过电脑才能使用的资源,比如查找一份申请表格然后打印,填写之后邮寄出去。

虽然Baeza-Yates等仍然认为可以将查询分为的三类[7],但他们在Broder等提出的分类标准的基础上,对具体的类别和定义有较大的修改:

(1)信息类(Informational):用户想获取Web上的信息,无论这些信息是属于哪个领域。

(2)非信息类(Not Informational):用户想查找除了信息外的其他资源或者是特定的事物(比如购买、下载)。

(3)歧义类(Ambiguous):不能从查询本身推断出意图的那些查询(有时候用户本身的意图就是歧义的)。

可以看出,Baeza-Yates等提出的信息类与Broder等提出的信息类之间没有太大的差异,然而Baeza-Yates提出的非信息类却包含了Broder等人提出的导航类和事务类的大部分,同时把那些本身具有歧义的意图的查询独立出来,作为单独的一个类别。比如提交的查询只包含一个人名,那么就有可能是要寻找关于这个人的信息,或者是这个人名对应的某个实体人的主页。尽管存在这些差异,这些分类标准在其他方面同时也存在相同或者相似之处,比如查询分类之后的一个直接应用就是对不同类别的查询采用不同的检索策略。

需要注意的是,上述的三个分类标准都没有证明自身的完备性和类别之间的独立不相关性。在我们对2000个中文查询的人工标注的过程中,发现有大约10%的查询被标注为可能同时属于导航类、信息类和事务类,说明该分类标准的完备性和类别之间的独立不相关性需要进一步的研究。

3 Web检索查询意图分类的关键技术

一般的分类过程包括如下部分:提取能够代表待分类对象的特征、构建训练集和测试集、选择学习算法并建立合适的分类器来对测试集进行分类。用户提交的查询具有部分信息丢失、简短、特征稀少的特点,因此需要考虑如何获得特征来代表查询。在解决了如何获得查询特征的问题以后,构造训练集和测试集相对来说就容易得多。从目前的研究工作来看,查询分类中使用的学习算法借鉴了其他领域尤其是比较成熟的文本分类领域里的算法。为了更清晰地表述数据和分类算法,我们在本节将叙述现有的特征提取方法和数据集的构造,在下一节叙述分类算法。

3.1 特征提取

查询本身包含的词汇数量通常比较少。比如有人对Excite①搜索引擎的日志进行分析以后,发现查询包含的词汇数量平均在2.4个左右[8]。所以需要解决如何为简短的查询获取充分和足够的特征问题,以便用这些特征来代表查询。从目前已有的方法来看,可以把特征获取方法分为两类。第一类方法可以称为事先方法,这种方法在查询被提交给搜索引擎以前,利用查询本身的特征来表示查询,比如表示特定需求的特征词汇、词与词之间关系、词的词性以及词的选择优先性(selectional preferences)、在语料集中的统计信息等等;第二类方法可以称为事后方法,这种方法利用查询被提交给搜索引擎以后的相关数据来获取查询的特征,比如搜索引擎的查询日志里相关查询的统计信息、搜索引擎针对该查询返回的检索结果等。

到目前为止的研究工作中,有如下具体的用来提取查询特征的事先方法。Kang等人使用WT10g的网页集合构造了两个文档集,第一个是包含话题类页面的,第二个是包含主页类页面的,据此计算查询在这两个文档集合里分布的差异、互信息的差异、作为锚文本的使用率以及词性信息:最后一个特征只依赖于查询本身,而前三个特征借助了外部信息[9]。Beitzel等人利用标注以后的查询,使用分类器和选择性属性发掘查询内在的特征,同时还使用了对某段时间比较流行的查询进行精确匹配的方法(使用查询自身的字符串作为特征)[10]。Lee等人使用了查询里词汇的锚-链接分布[4]。Jansen等人使用各类(导航、事务、信息)查询的一组启发式特征来区分查询,比如他们总结出含有“waysto”,“howto”等词汇的查询极有可能属于信息类查询[11]。下面说明已有的研究工作中,如何用事后方法具体获取查询的特征。Lee等人使用了查询的历史被点击分布、查询的平均点击次数[4]。Liu等人根据Sogou搜索引擎②日志里查询的点击情况,提出了两个假设:

(1)在执行导航类检索的时候用户倾向于在检索结果里进行为数不多的点击;

(2)在执行导航类检索的时候用户倾向于只点击检索结果里靠前的结果。

根据这两个假设以及搜索引擎的日志,提出了N个点击满意度(nCS)和前N个结果满意度(nRS)这两个特征[12]。Dou Shen等人使用了提交查询以后由搜索引擎返回的检索结果里文档的标题、搜索引擎返回的检索结果中的文档片段以及结果文档的全文作为特征来训练分类器[1]。

通常情况下,事先方法相比事后方法容易实现。这一方面是因为查询自身的特征容易获得,而且有现成的公开语料集可以利用;另一方面,搜索引擎的查询日志等并不是广泛可得。然而究竟哪种方法所获取的特征能够较好或者很好地代表查询本身或者查询的某些方面(比如意图),目前还没有定论。有研究工作尝试了结合这两种方法来获得查询的特征,比如Rose等人使用了查询本身、由搜索引擎返回的查询结果、用户点击的结果和用户的进一步搜索或者其他动作作为特征[2];Lee等人也同时使用了事先方法和事后方法来获取查询的特征[4]。同时我们注意到,在事先方法中,使用查询本身的特征方法的不足之处在于其不具有广泛的适应性:使用特征词汇的方法无法应用到那些不包括所发掘的特征词汇的查询;使用分类器或者是选择性属性的方法,则需要大量的人工标注而且需要不断地更新。而使用外部信息(包括事先方法中使用语料集、事后方法中使用搜索引擎的日志和返回的检索结果)来帮助确定查询特征的方法,则存在这些外部信息是否能准确地代表查询特征的问题,至今没有人能够论证这一做法的合理性和准确性。如何能够准确和有效地用特征来表示每一个查询,仍旧是一个开放的问题。

3.2 数据集的构造或者获取

用于分类的数据集通常包括训练集和测试集。在Web查询分类领域,目前并没有权威的、类似在文本分类领域里路透社(Reuters)这样的数据集。不同的研究人员一般都是自己建立查询和文档的训练集和测试集或者借用其它评测任务里的数据集。Kang等人[9]使用了TREC-2000的话题相关任务的查询和主页查找任务的查询分别构建了导航类和信息类的训练集和测试集,各个数据集所包含的查询个数的数量级是10[2];Liu等人使用tianwang.com组织的中文搜索引擎竞赛的信息类和事务类的查询、hao123.com的Web目录的主页链接的锚文本作为导航类查询,构建了测试集[12]。

还有一些工作使用了搜索引擎的访问日志里的查询来构造数据集。Baeza-Yates[7]等人使用了TodoCL③的日志来构建训练和测试集合;Beitzel等人使用了AOL搜索引擎的日志[10]构建了训练集(数量级是10[5])和测试集(数量级是10[4],其中25%用来调整模型参数,剩下的75%用来测试模型的性能);Jansen等人则使用了Dogpile.com④的日志来构建测试集;Liu等人使用了Sogou搜索引擎的日志构建了训练集[12]。

另外一些研究工作则使用了自己通过某些方式收集、整理的数据。比如Lee等人选取了从他们所在的计算机科学系提交给Google⑤的50个查询,并且加以人工标注,作为测试集合。

4 Web检索查询意图分类的方法

目前在查询分类中使用的分类算法几乎都是从其他领域尤其是文本分类领域借鉴过来的。一方面因为其他领域有相对比较成熟的分类算法或者方法可以使用;另一方面因为查询以字符串或者文本的方式存在并且同样可以利用特征向量来表示查询,查询的分类在一定程度上类似文本的分类。根据第3节,有些特征提取方法使用了统计学特征,比如查询里包含的词汇在不同数据集里的分布情况;另外一些特征提取方法没有使用统计特征,比如精确匹配的方法。按照分类方法是否使用了查询的统计特征,可以把分类方法分为使用统计特征的方法和未使用统计特征的分类方法。

4.1 未使用统计特征的方法

未使用统计特征的分类方法大致有两种。第一种方法是精确匹配。这种算法的原则是,如果待分类的查询已经出现在训练集中且被事先分到(或者标注为)某种类别C中,那么待分类的查询也被分到类别C中[1,10,13]。第二种方法根据各个类别查询的特征词汇对查询进行分类。这种算法在人工检查并对查询进行分类的基础上,直接根据查询本身含有的词汇的特点来判断查询的类别。比如将含有公司名字、组织名字、人名的查询作为导航类查询;将查询里含有“download”、“audio”等字符串的查询作为事务类查询;将含有“how to”、“ways to”的查询作为信息类查询[11]。

上述没有使用统计特征的分类算法通常具有较高的正确率,且对于高频率的或者典型的查询有较好的识别效果,但是其召回率一般比较低。而且它们都有各自内在的缺陷:精确匹配方法的成本很高,因为由于不断地有新查询(比如因为新的概念、新的现象、新的事件的出现)涌现,需要持续地投入人力用于标注查询;否则随着时间的推移,正确率和召回率都会下降[10]。

直接根据查询的词汇的特点来判断类别,需要人工识别和维护各类的特征列表,无法很好地识别不包括特征词汇的查询;而且由于无法区分具体词汇的语义,会导致错误分类,比如用户输入的查询里含有“audio”,但是其意图是想知道什么是audio而不是要下载或者购买audio。

为了改善上述没有使用统计特征的分类算法所固有的低召回率的缺点,有人提出在标注的训练集上使用监督学习分类器或者利用词汇的选择优先性来提高召回率[1,10]。

4.2 使用统计特征的分类方法

在查询意图分类领域目前用到的使用统计特征的学习算法包括统计学习算法和选择优先性。统计学习算法是指需要给定训练集的分类方法,给定的训练集包括了一些输入对象以及对应的类别。这种学习算法的目的是根据训练集中的对象的特征和各个对象所属的类别进行泛化并以合理的方式来预测测试集中对象的类别。

SVM是比较常用的统计学习分类算法,它具有很好的在高维度下的分类性能。因为查询通常都具有特征稀少的特点,所以需要对查询的特征进行扩展,利用扩展以后的特征来训练SVM分类器:这是目前比较普遍的做法[1,7]。

另一个统计学习分类器算法是Perceptron with Margins算法,这个算法在文本分类方面具有能和SVM媲美的表现且具有高效率的计算能力[14]。Beitzel等人使用该算法对预先标注的十八个类别(按照查询涉及的话题划分)的每一个类别训练一个感知机。他们使用如下的方法构造了训练集:使用属于其中一个类的查询作为正例,而属于其他十七个类的查询作为反例[10]。

另外,还有人使用决策树算法。比如Liu等人使用了C4.5算法来发掘决策树[12]。

统计学习分类器可能受制于训练集对各个类别覆盖的完备程度和查询的特征提取。一方面,训练集可能并不能完全包括所有的查询类别,或者是各个类别的样本数量之间不均衡;另一方面,提取出来的查询特征可能丢失了查询原本具有的特征,或者未能充分发掘查询的特征,比如忽视某个特征或者过分依赖于某个特征。Beitzel等人提出用未标注查询的选择优先性来解决这两个问题[10]。

选择优先性原本是语言学中的方法,描述词语在句子中出现时的搭配限制,比如动词“吃”后面经常跟的是食物的名字。这种方法相对于把查询作为文档来分类的方法来说,更倾向于去理解查询的语言学结构在统计学上的意义。Beitzel等人借鉴选择优先性来确定查询里一个类别未知或者有歧义的词汇可能的类别:首先通过统计来确定一个词x倾向于选择类别为u的词y出现在它之前或者之后;以后遇到在x之前或者之后的类别不明确的词汇y’时,类别u就是对y’可能是对所属的类别的一个好的预测[10,13]。这种方法能够利用已分类的查询进行训练,然后对未分类的查询进行估计从而得到查询的某部分属于某个类别的概率,进而确定查询所属的类别。

4.3 组合使用各种分类方法

如果只是单独使用上述两类分类方法中的某种方法,其结果可能不理想。因此有研究者尝试组合上述两种类别分类算法中的多种形式的分类算法来得到新的分类算法。这种对各种分类方法进行组合的好处在于可以利用各种分类方法的优点。Beitzel等人组合了精确匹配、感知器和选择优先性,发现组合之后的分类器在他们的数据集上的效果要好于所有三个单独的分类器[10,13]。

5 分类效果的评价方法

5.1 分类性能评价指标

在假设存在标准的训练集和测试集的前提下,目前比较常用的评价方法通常借用文本分类里的评价方法[1,9-10,12-13]。特别地,假设测试集中有属于某个类别C的N个查询,经某个分类器(或者分类器的组合)分类以后,结果如表1所示。那么,针对C类的分类性能的评价指标如下:

需要注意,上述定义的三个指标都只针对某一个类别进行计算,只能代表局部上的性能。因此需要引入能够在全局(所有类别)上对分类效果进行评价的方法。目前主要有宏平均(Macro Averaging)和微平均(Micro Averaging)两种评价方法来度量在所有类别上的分类性能。直观地说就是,宏平均是先计算单个类别的假设总共有m个类别,那么宏平均和微平均的具体指标按照如下的公式计算:

需要注意的是,通常情况下,微平均评价指标容易受到大类的分类性能的影响,而宏平均评价指标容易受到小类的分类性能的影响。

5.2 各种方法的性能比较和分析

尽管到目前为止,查询意图分类相关的研究工作使用的训练集和测试集各不相同,不过还是可以根据上述的评价方法来对各个研究进行的实验的性能做一个粗略的了解和比较,以作参考。我们在表2中列出了各种实验在前述评价方法下的评价结果。为了便于比较和参考,表2同时还包括了查询话题分类研究工作的评价结果。

表2中的前两项是查询意图分类方面的研究工作的评价结果,使用的都是微平均评价指标。从上述两个研究工作最后的微平均来看,使用事后方法提取特征来进行分类的微平均=81.00%要比使用事先方法提取特征来进行分类的微平均=73.62%要高。表2中的后两项是查询话题分类方面的研究工作的评价结果,同样使用的都是微平均评价指标。从表中最后两项的评价指标的来看,使用事后方法提取特征的时候,分类结果里的微平均=46.10%比用事先方法提取特征的时候的微平均=24.30%(折算为α=2之后的结果)要高。因此从目前的研究工作的评价结果来看,在目前能得到评价结果的实验方案中,总的来说,使用事后方法提取特征,在分类上具有更好的性能。从直观上,可以做如下的解释:利用用户把查询提交给搜索引擎以后的事后统计特征,包括点击行为和点击位置的分布等,更能反应用户在使用某一具体查询进行搜索时的真实意图和关注的内容。

6 存在的问题和面临的挑战

目前在查询意图分类领域依然存在如下的问题和挑战:

● 缺乏权威的大规模的评测标准。研究工作各自为政,且构造的训练集和测试集容量不够大,包含的查询个数通常在10[2]这个数量级上或者更低。这使得横向比较各种特征提取方法以及分类方法存在极大的困难。

● 各种方法在大规模查询集合上的性能尚不确定。尽管Kang等人在TREC语料集上使用修改的按照不同检索策略对待导航类和信息类的查询的Lemur进行了检索实验,发现检索结果的评价结果有一定的提高。但是到目前为止还没有大规模的验证在将查询正确地分类的情况下,搜索引擎在用户满意度上究竟会如何提升以及有多大的提升。

● 如何合理有效地提取或者获得查询的特征。从搜索引擎对查询返回的检索结果提取的特征能否确切地代表这个查询仍然是个问题(考虑到不同的搜索引擎对同一个查询返回的结果一般不同),而且搜索引擎对有些查询完全不返回结果。在这一情况下,这种扩展方法毫无效果;只使用查询本身的信息的局限性是明显的。而目前要让计算机能理解查询的语义依然是一个难题。另外,目前的查询意图分类没有把产生信息需求的语义环境考虑进去。

● 按照查询的意图提出的分类体系的完备性和类别间的独立不相关性尚不确定。对于某个特定的分类体系,这个分类体系的完备性和各个类别之间的独立不相关性依然值得考虑:这个分类体系是否能够覆盖所有的Web查询;目前的研究通常只考虑了把一个查询分到一个类中的情况,而没有考虑一个查询可能属于多个类别的情况。

7 总结

本文从Web查询分类的作用、分类体系、常用的分类器和关键方法等方面总结了Web查询分类的进展。其中训练集、测试集以及Web查询的特征提取是Web查询分类领域的关键工作。最后本文对Web查询分类领域存在的问题和挑战做了总结和展望。

收稿日期:2008-03-20

注释:

①http://search.excite.com/

②http://www.sogou.com

③http://www.todocl.com

④http://www.dogpile.com

⑤http://www.google.com

标签:;  ;  ;  ;  ;  

查询意图分类技术综述_搜索引擎论文
下载Doc文档

猜你喜欢