很多人都听说过大名鼎鼎的PageRank算法,它能够自动判断网页的重要性,也是决定搜索结果排序的关键因素之一。但在很多时候,仅仅凭重要性远远无法完成一项排序。计算机和我们都有很多东西需要学习。
本刊记者 陈琼
日常生活中存在多种多样的排序。我们最熟悉的,比如娱乐圈里的“超女”、“快男”,体育界的各项赛事,在学校里经常会碰到的成绩排名等等。而在计算机领域内,一个最典型和最热门的例子,恐怕就是排序在搜索引擎中的应用了。赫赫有名的PageRank算法,就构建了一套巧妙的机制和排序模型,来自动判断网页的重要性,并也成为Google的搜索引擎赖以成名的利器之一。 也恰恰是由于人们逐渐意识到排序问题至于搜索引擎效率的重要性,所以最近几年,整个学术界对排序的认识也在迅速提升高度,大家都希望可以非常正规的把排序当做一个学术问题来进行研究,并最终形成一个完整的理论体系。可以说,排序已经成为了机器学习领域内一个最新的分支。 就像该领域内的分类、回归、聚类等其他一些已经被研究得很透彻的问题一样,排序到底应该如何界定?存在什么样的特性?有什么理论的知识蕴含其中?如何通过机器学习来自动的构建出排序模型? 微软亚洲研究院(MSRA)大概在三年前开始了有关“排序学习”(LearningtoRank)的研究。2007年,MSRA一篇名为《Learningto Rank: From Pairwise Approachto Listwise Approach》发表,在整个学术界引起了强烈反响。据专门负责此课题的主任研究员李航博士介绍,这也和信息爆炸时代有一定的关系,用户面前的信息量太大,“很多东西都会希望有一个排个序,搜索是最典型的例子,以此来帮助他们去访问到最想要的信息。”“其实排序是一种关系的表现,不像以前比如分类、回归是一个物体或一个对象本身的属性,”和李航一起做该课题研究的刘铁岩博士告诉记者,“以前说一个网页,它到底是讲新闻还是讲体育的?其实是个绝对的事,拿到这个网页一切都知道了,是它的本身的属性。但排序是指这一个网页跟别的网页之间比较的一种关系。比如以前可以叫做一元学习,那么现在则是一个更高元的、更高阶的一个问题。” 李航觉得,这一点对整个传统的机器学习都是一个很大的挑战。因为按传统观点,会存在一些基本假设,每个样本背后都是同样一个规律在控制。但是对于排序,“其实我们想要挖掘的是要满足对象之间的那种关系,这就不能用以前那种假设去看待了,至少在某种情况下,已经不完全成立了,所以会有一些新的理论和实践要发生”。 与之前的“Pairwise”不同的是,李航和刘铁岩他们所提出的新研究方法“Listwise”是基于一个列表的学习,也就是以一个列表为基本的学习单元,“因为一个列表本身就包含了一些排了序的文档,某些关系已经嵌在这样的表达方式里。”刘铁岩说,“所以我们不需要像以前研究时的那种假设,文档之间会有相对大小的关系,这些都已经在我们学习单元里面了,这使得基于此的一些理论和实践都会比较顺畅,和以前有较大不同。” Listwise方法之所以受到关注,是因为在评价排序结果好坏的时候,它把查询词对应的所有文档通盘考虑,全局衡量,而以前的工作把目光中在单个文档或者一对文档之上;而且可以对文档之间的关系,如相似度等进行建模,因此可以定义更加有效的排序函数;另外,由于是列表级别,它可以充分利用文档在列表中的位置信息,因此可以更加强调排在前面的文档,而这与用户的体验更加一致。 回到搜索,李航说,“排序学习”这个研究更多的是关心算法,以及排序模型的构建。比如在互联网搜索的时候,网页的重要度是一个重要的特征,但也要考虑关联度;只有重要度和相关度可能也不够,还要考虑其他的一些因素。网络搜索发展到今天,人们已经慢慢意识到,有太多的因素会影响到排序,把这些因素视作特征用一些方法综合考虑得出一个最合理的排序,这是LearningtoRank要解决的问题。