大家多少都用过搜索引擎,google、yahoo、baidu还有很多搜索引擎目前都有个特点,就是你和我使用同一个keyword去搜索,得到的结 果将是一样的,但事实上我们两个因为个人性格、爱好、文化背景等不一样,对同样的搜索结果的满意度是不一样的,有没有办法能让搜索引擎自动根据我们两个之 间的这种差异,返回给我们最适合各自的结果呢? 答案是肯定的,这就是个性化搜索,根据不同人的不同特点,提供不同的搜索结果。

传统的搜索引擎根据关键词来创建索引并得到搜索结果,同时根据关键词来提供广告服务,这往往是不够准确的,比如同样搜索hotel,不同的人可能希望 得到的结果是不一样的,有钱人希望得到的是最好的星级酒店,普通老百姓希望得到的是便宜实惠的结果,同样,广告的展现希望更加准确,比如喜欢自驾游的用户 显然应该推荐更多汽车旅馆的广告,而喜欢大海的用户则应该得到更多海边度假酒店的广告。

  目前有不少的搜索引擎已经开始意识到个性化搜索的重要性,并且开始进行了积极的尝试,google提供的history和 personalize服务,就是类似这样的东西,不过和google提供的这种服务一样,各个搜索引擎目前都面临同样的问题,那就是他们大多基于用户所 有的搜索历史来进行个性化分析,这种分析仅仅基于单一的关键词,往往不够准确,理论上应该考虑更多关键词之外的用户特性,比如点击行为,对同样排序结果里 面不同位置的满意度、点击率等因素综合计算。同时,通过用户搜索历史记录来提供个性化搜索服务,将面临侵犯隐私的重大法律障碍,这成为目前各大搜索引擎棘 手的问题。

  我有三个美国的华人朋友,其中一个是麻省理工研修人工智能的博士,7年的博士课程仅3年半就顺利完成,目前已经是美国人工智能领域排名前三位的 科学家之一,他和两位两个朋友一起,近几年来基于他在基因DNA搜索领域的研究成果,开发出一套算法,该算法成功的应用到了传统的互联网搜索引擎上,有效 的实现了个性化搜索,解决了其他搜索引擎面临的问题。

  通过他们的算法,可以实现类似下面的功能:

  • 不同的人搜索同样的关键词,可以根据不同人的各种属性(地域、年龄、性别、爱好、职业、历史搜索…等等)分别得到最适合自己的结果。
  • 可以根据用户各自的差异和特点,提供最适合该用户的广告投放。
  • 可以根据不同的用户特点,划分具有共同爱好、特性的用户群体。

  最关键的一点,他们的这套算法没有任何其他搜索引擎面临的侵犯用户隐私的担忧,这套算法基于人工智能和用户模型来实现,每个用户都会有个初始的 用户模型,该模型会根据用户的各种属性来不断调整,会随着用户长期的使用搜索引擎,查询不同的关键词,点击和收藏不同的结果等event来调整,最后这个 抽象出来的用户模型将非常接近现实中的用户本人,从而达到个性化的目的,而这个过程中,搜索引擎不记录任何用户操作历史。

  我和这三位朋友接触较长一段时间,我协助他们用了近三个月的时间开发出了一个demo的prototype系统,该系统基于抓取Google、 Yahoo的web search和sponsored links结果进行分析,同时使用了简单的MySQL数据存储、Lucene全文检索等技术对他们的核心算法提供外围技术支持,系统除了web界面采用 PHP的Zend Framework外,大部分部件均基于Linux C/C++开发,尤其是和核心算法服务之间的通讯、词表的解析等关键的应用,可以保证系统的性能,目前演示的系统上每一次search请求都会实时从 Google、Yahoo上抓取并实时进行分析和排序,实际生产应用中会考虑应用更多的缓存技术来进一步提高效率,甚至和Google等数据提供商紧密的 合作。

  目前该项目正在美国寻求VC的投资,说实话,经过我的实际使用,我非常看好这个项目,希望真的可以成功。