子曾经曰过,“得用户者得天下”!

搜索引擎的使命是帮助用户更便捷的获取信息,找到所求。所以,要做一个好的搜索引擎,至少需要做好三件事情,即理解用户意图、理解资源,以及做好这两者的匹配。通过传统的文本分析技术,比如TF-IDF、BM25等,可以很容易地把这些事情做到70分,但再往下做就越来越难。这时候,有聪明人发现,除了基本的文本之外,超链信息能够帮助我们更好的理解和匹配资源,于是就有了超链分析和pagerank,搜索技术也上升到了80分这个台阶。我们知道,一个技术做到了80分,就意味着它有可能比较好的投入应用了。于是,搜索引擎成为了一个产业,领头的是百度和Google。


到了这个阶段,搜索引擎领域只剩下了强者之间的对决,80分也已经不够用了。于是又有聪明人发现了一个新的金矿,就是用户行为数据。什么是用户行为数据?简单的说,用户在搜索过程中(或者搜索过程外),能够被我们记录下来的一切行为,包括各种各样的搜索、点击和浏览,都属于用户行为。用好了这些数据,我们就能够更好的理解用户意图,理解用户对资源的喜好,从而有可能帮助我们把搜索技术提升到一个新的层次。90分?100分?我们拭目以待。

 

本文首先简单介绍一下用户行为数据的形式。然后以用户行为数据在百度框计算上的应用做一个简要的介绍。

 

用户在使用搜索引擎的过程中,搜索和点击的行为都会被记录下来。将这些信息按照cookieid和时间戳排序,我们就能够清楚的看到每个用户的搜索行为序列,即 session信息 (如下图所示)。作为对这份信息的补充,检索端还记录了每次搜索所展现的前两页所有结果信息(展现日志),这样未点击的结果也能够方便定位。这些数据就是最主要的搜索引擎用户行为数据。对这些数据进行统计分析,能够发现很多有用的东西。能够发现用户的意图,用户的喜好。以及整个网民正在关心的事情等。

 09年百度提出了框计算,框计算的宗旨就是要满足用户的需求。想要真正的满足用户的需求,那必须先了解用户的需求。想了解用户的需求,最直接最有效的方法就是去分析用户行为数据。这个与谈恋爱是一个道理,想去了解对方,那必须先去观察总结对方的生活习惯等。框计算想要满足用户的需求,需要做到以下三点:1,识别出用户到底需要什么。2,对用户的各种需求进行一个合理排序。3,能够自动的找出用户以前有,而现在不再有的需求。下面简单介绍一下用户行为数据分别在这三个方面的应用情况。

 

1.  识别用户的需求:

 

用户与搜索引擎交互的唯一一个入口,就是框,用户在框里面输入一个关键词。搜索引擎得到信息只有这个关键词,我们要根据这个关键词,来理解用户的需求,只有理解了用户的需求才能返回给用户相关的资源。一个关键词的长度可能只是几个字,想通过几个地就能清晰的辨别出用户到底想要啥,还是一件非常有挑战性的事情。比如如下两个query:

a)章子怡

b)李开复

 

两个都是大名鼎鼎的人,但是用户的需求的明显应该有着很大的差别。搜“章子怡”的人,更想看的是视频,图片。而搜“李开复”的人更想看的百科,博客,很少人会关心李开复电影。现在的问题是我们如何自动的发现这种差别。这个时候用户行为数据就可以大显身手了。根据用户的搜索历史数据发现,搜索“章子怡图片”,“章子怡电影”,这类关键词的搜索频次特别多。而搜索“李开复图片”,“李开复电影”,这类关键词的基本没有,而搜索“李开复博客”的却很多。再根据用户点击百度框上面那些button按钮的历史数据发现,搜“章子怡”时,点击图片,视频按钮的人特别多,而搜索李开复时,用户点击图片,视频按钮的人特别少,反而点击百科的人比较多。还可以利用用户在百科,视频,图片等垂直搜索里面的用户行为数据,来挖掘李开复与章子怡这两个关键词对应于不同的用户需求。综合上面几个方面的用户行为数据。我们就可以判断出对于“章子怡”这个关键词,用户会有视频,图片,百科等需求。而对于“李开复”这个关键词,用户会有百科,博客等查询需求。

 

2.  对需求进行排序:

 

对一个用户输入的关键词,我们识别出有各种各样的需求后,随之而来的就会有一个问题。这些需求该如何排序。哪个需求是用户的主需求,哪个需求是用户的次需求。想做到准确的判断还是需要用户行为数据。因为只有根据用户行为数据作出的判断,才是真正的反应用户的意图。比如关键词“苹果”,用户对这个关键词会有三个需求,apple公司,苹果水果,苹果电影。我们需要对这三种需求的结果进行合理的排序。这个时候我们根据用户点击数据做的点击调权模型就发挥了很大的作用。点击调权模型就是根据用户的搜索点击日志进行建模,能够自动的挖掘出每条用户点击过的结果对用户的满足程度,以及该结果的需求强弱程度等信息。该模型能够很好的衡量出用户点击过的结果给用户带来的满足度是多少。这样直接利用点击调权模型挖掘出来的数据,就可以很好解决了对需求进行排序的问题。对于“苹果”这个关键词。我们根据用户行为数据挖掘出来的三种需求的强弱程度分别是apple公司大于苹果水果,苹果水果大于苹果电影。那么我们给用户返回结果时,apple公司相关结果就放在最前面,苹果水果相关结果就放在中间位置,苹果电影相关结果就放在下面的位置。优先满足用户的主需求。

 

3.  发现过期的需求:

 

到现在,我们已经做好了每个关键词的用户需求挖掘,以及用户的这些需求应该如何排序的问题。但是这个时候会出现一个新的问题,就是对于我们召回的一些需求,有可能会过期,也有可能是我们误召回的一些需求。用户在前一段时间有这个需求,而过了这一段时间就没有这种需求了,或者用户根本没有这个需求,而且召回失误了。比如关键词“英语四级真题答案”,这个有查四级答案的需求,我们的资源库里面正好有2010年6月份的四级真题答案。在2010年12月之前给用户返回6月的真题答案都是非常好的。但是过了12月份,用户的需求已经是12月份的真题答案结果。这个时候我们就需要把6月份真题答案结果退掉。发现这样的过期和错误需求,同样需要从用户行为数据里面发现。一条最简单的规则就是一个线上展现的需求,很多天,展现了很多次从来没有用户点击过,即使有用户点击了也是误点击,未能给用户带来满足。对于这样的结果,我们就可以判断为过期或者是错误的需求,需要退场。

 

以上三个方面,只是用户行为数据在框计算方面的应用。真正的用户行为数据应用还有很多。百度拥有95%中国网民的搜索点击行为数据,用户的每次搜索都是有一定主动性的,所以这些数据基本能够代表中国网民的需求形态。一个搜索引擎从80分往100分进行冲刺,可能就是要靠对这座金矿的挖掘了。我们正在冲刺的路上。