星期六, 一月 17, 2009

关于Query Classification和Query Intention

对于全网引擎,Query Analysis主要是在两个层面的分类

  • Query意图的分类:Navigational、Informational、Transactional,再具体一点的Download,Local Info之类;
  • Query知识类别上的分类:分类目标是新闻、体育、经济、音乐,主要目的是为了做多个垂直引擎的结果融合或者Query Planing;

先说知识类别上的分类吧,这个东西在全网搜索中使用较多,本身难度也不大,比较确定。抽象说的,思路无非都是通过Query搜索结果中的文档进行分类,再balabalabala到Query,因为Query本身实在太短了。
这个方向最新的、比较有意思的论文应该是MSRA的[paper1],用的Spectral Clustering的方法,有兴趣的可以用过引用扩展阅读。

至于意图的分类,不确定性就比较大了。

首先意图如何定义?Navigational、Informational、Transcational这三个分类目标是Yahoo的同学提得[paper2],应该算Query意图分类目标定义的鼻祖了,被引用无数。但是这三个目标对于全网搜索来说也太粗犷了,对于垂直搜索的意图分析更没有可推广性。

我认为新加坡国立[paper3]中的思路值得借鉴:将一个Query通过时效性、地域性、权威性、模糊程度四个维度进行刻画,描述的维度是可以根据具体应用进行扩充的,而且传统的Navigational/Informational/Transcational也可以被映射到这个系统中来。这篇paper的另一个贡献在于明确了Query意图分析是N个Binary-Class分类问题的组合,而不是一个N-Class分类问题。就我目前的所看到的数据,将Query意图分类作为一个N-Class的分类问题本身也是不可解的。

其实Yahoo自己也是通过Binary-Classifier来做Query意图分类的,关于具体的实现在[paper4]中写的比较详细,基本上都是一些工程性的东西:想尽办法找特征,穷凶极恶的特征选择。模型?其实无所谓了,考虑到特征基本都是interdependent的,要不用CRF吧。

可以拿来做Query意图分类的特征,对于Query本身,可以分 词性、语义、词 三层。这个主要就看各家公司的资源了,没有雄厚的积累基本上提不出什么有用的信息;至于Query之外,命中结果数、用户搜索PV、命中URL中的字符串、用户点击、命中文档内容……一切的一切,其实都能用得上,就看有多少资源available了。

最后我想说,其实资源到位了,做Query意图分析还是比较靠谱的。
欢迎各位大大和我讨论,entelechie@gmail.com

本文中提到的论文
  1. Learning query intent from regularized click graphs
  2. Understanding user goals in web search
  3. Functional faceted web query analysis
  4. Coupling Feature Selection and Machine Learning Methods for Navigational Query Identification