【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

推荐系统和搜索引擎的关系

  • 2016-01-27
  • 本文字数:5045 字

    阅读完需:约 17 分钟

从信息获取的角度来看,搜索和推荐是用户获取信息的两种主要手段。无论在互联网上,还是在线下的场景里,搜索和推荐这两种方式都大量并存,那么推荐系统和搜索引擎这两个系统到底有什么关系?区别和相似的地方有哪些?本文作者有幸同时具有搜索引擎和推荐系统一线的技术产品开发经验,结合自己的实践经验来为大家阐述两者之间的关系、分享自己的体会。

图 1:搜索引擎和推荐系统是获取信息的两种不同方式

主动或被动:搜索引擎和推荐系统的选择

获取信息是人类认知世界、生存发展的刚需,搜索就是最明确的一种方式,其体现的动作就是“出去找”,找食物、找地点等,到了互联网时代,搜索引擎(Search Engine)就是满足找信息这个需求的最好工具,你输入想要找的内容(即在搜索框里输入查询词,或称为 Query),搜索引擎快速的给你最好的结果,这样的刚需催生了 Google、百度这样的互联网巨头。

但是获取信息的方式除了搜索外,还有另一类,称为推荐系统(Recommendation System, 简称 Recsys),推荐也是伴随人类发展而生的一种基本技能,你一定遇到这样的场景,初来乍到一个地方,会找当地的朋友打听“嗨,请推荐下附近有啥好吃好玩的地方吧!”——知识、信息等通过推荐来传播,这也是一种获取信息的方式。

搜索和推荐的区别如图 1 所示,搜索是一个非常主动的行为,并且用户的需求十分明确,在搜索引擎提供的结果里,用户也能通过浏览和点击来明确的判断是否满足了用户需求。然而,推荐系统接受信息是被动的,需求也都是模糊而不明确的。以“逛”商场为例,在用户进入商场的时候,如果需求不明确,这个时候需要推荐系统,来告诉用户有哪些优质的商品、哪些合适的内容等,但如果用户已经非常明确当下需要购买哪个品牌、什么型号的商品时,直接去找对应的店铺就行,这时就是搜索了。

图 2:从搜索词中可以看出,用户有大量个性化推荐的需求

很多互联网产品都需要同时满足用户这两种需求,例如对提供音乐、新闻、或者电商服务的网站,必然要提供搜索功能,当用户想找某首歌或某样商品的时候,输入名字就能搜到;与此同时,也同时要提供推荐功能,当用户就是想来听好听的歌,或者打发时间看看新闻,但并不明确一定要听哪首的时候,给予足够好的推荐,提升用户体验。

个性化程度的高低

除了主被动外,另一个有趣的区别是个性化程度的高低之分。搜索引擎虽然也可以有一定程度的个性化,但是整体上个性化运作的空间是比较小的。因为当需求非常明确时,找到结果的好坏通常没有太多个性化的差异。例如搜“天气”,搜索引擎可以将用户所在地区的信息作补足,给出当地天气的结果,但是个性化补足后给出的结果也是明确的了。

但是推荐系统在个性化方面的运作空间要大得多,以“推荐好看的电影”为例,一百个用户有一百种口味,并没有一个“标准”的答案,推荐系统可以根据每位用户历史上的观看行为、评分记录等生成一个对当前用户最有价值的结果,这也是推荐系统有独特魅力的地方。虽然推荐的种类有很多(例如相关推荐、个性化推荐等),但是个性化对于推荐系统是如此重要,以至于在很多时候大家干脆就把推荐系统称为“个性化推荐”甚至“智能推荐”了。

快速满足还是持续服务?

开发过搜索引擎的朋友都知道,评价搜索结果质量的一个重要考量指标是要帮用户尽快的找到需要的结果并点击离开。在设计搜索排序算法里,需要想尽办法让最好的结果排在最前面,往往搜索引擎的前三条结果聚集了绝大多数的用户点击。简单来说,“好”的搜索算法是需要让用户获取信息的效率更高、停留时间更短。

但是推荐恰恰相反,推荐算法和被推荐的内容(例如商品、新闻等)往往是紧密结合在一起的,用户获取推荐结果的过程可以是持续的、长期的,衡量推荐系统是否足够好,往往要依据是否能让用户停留更多的时间(例如多购买几样商品、多阅读几篇新闻等),对用户兴趣的挖掘越深入,越“懂”用户,那么推荐的成功率越高,用户也越乐意留在产品里。

所以对大量的内容型应用来说,打造一个优秀的推荐系统是提升业绩所不得不重视的手段。

推荐系统满足难以文字表述的需求

目前主流的搜索引擎仍然是以文字构成查询词(Query),这是因为文字是人们描述需求最简洁、直接的方式,搜索引擎抓取和索引的绝大部分内容也是以文字方式组织的。

因为这个因素,我们统计发现用户输入的搜索查询词也大都是比较短小的,查询词中包含 5 个或 5 个以内元素(或称 Term)的占总查询量的 98% 以上(例如:Query“达观数据地址”,包含两个元素“达观数据”和“地址”)。

但另一方面,用户存在着大量的需求是比较难用精炼的文字来组织的,例如想查找“离我比较近的且价格 100 元以内的川菜馆”、“和我正在看的这条裙子同款式的但是价格更优惠的其他裙子”等需求。

一方面几乎没有用户愿意输入这么多字来找结果(用户天然都是愿意偷懒的),另一方面搜索引擎对语义的理解目前还无法做到足够深入;所以在满足这些需求的时候,通过推荐系统设置的功能(例如页面上设置的“相关推荐”、“猜你喜欢”等模块),加上与用户的交互(例如筛选、排序、点击等),不断积累和挖掘用户偏好,可以将这些难以用文字表达的需求良好的满足起来。

形象的来说,推荐引擎又被人们称为是无声的搜索,意思是用户虽然不用主动输入查询词来搜索,但是推荐引擎通过分析用户历史的行为、当前的上下文场景,自动来生成复杂的查询条件,进而给出计算并推荐的结果。

马太效应和长尾理论

马太效应(matthew effect) 是指强者愈强、弱者愈弱的现象,在互联网中引申为热门的产品受到更多的关注,冷门内容则愈发的会被遗忘的现象。马太效应取名自圣经《新约·马太福音》的一则寓言: “凡有的,还要加倍给他叫他多余;没有的,连他所有的也要夺过来。”

搜索引擎就非常充分的体现了马太效应——如下面的 Google 点击热图,越红的部分表示点击多和热,越偏紫色的部分表示点击少而冷,绝大部分用户的点击都集中在顶部少量的结果上,下面的结果以及翻页后的结果获得的关注非常少。这也解释了 Google 和百度的广告为什么这么赚钱,企业客户为什么要花大力气做 SEM 或 SEO 来提升排名——因为只有排到搜索结果的前面才有机会。

图 3:搜索引擎充分体现的马太效应:头部内容吸引了绝大部分点击

有意思的是,与“马太效应”相对应,还有一个非常有影响力的理论称为“长尾理论”。

长尾理论(Long Tail Effect)是“连线”杂志主编克里斯·安德森(Chris Anderson)在 2004 年 10 月的“长尾”(Long Tail)一文中最早提出的,长尾实际上是统计学中幂率(Power Laws)和帕累托分布特征(Pareto Distribution)的拓展和口语化表达,用来描述热门和冷门物品的分布情况。Chris Anderson 通过观察数据发现,在互联网时代由于网络技术能以很低的成本让人们去获得更多的信息和选择,在很多网站内有越来越多的原先被“遗忘”的非最热门的事物重新被人们关注起来。事实上,每一个人的品味和偏好都并非和主流人群完全一致,Chris 指出:当我们发现得越多,我们就越能体会到我们需要更多的选择。如果说搜索引擎体现着马太效应的话,那么长尾理论则阐述了推荐系统发挥的价值。陈运文

图 4:推荐系统和长尾理论

一个实际的例子就是亚马逊(Amazon)网络书店和传统大型书店的数据对比。市场上出版发行的图书种类超过了数百万,但是其中大部分图书是无法在传统大型书店上架销售的(实体店铺空间有限),而能放在书店显著位置(例如畅销书 Best Seller 货架)上的更是凤毛麟角,因此传统书店的经营模式多以畅销书为中心。但是亚马逊等网络书店的发展为长尾书籍提供了无限广阔的空间,用户浏览、采购这些长尾书籍比传统书店方便得多,于是互联网时代销售成千上万的小众图书,哪怕一次仅卖一两本,但是因为这些图书的种类比热门书籍要多得多,就像长长的尾巴那样,这些图书的销量积累起来甚至超过那些畅销书。正如亚马逊的史蒂夫·凯赛尔所说:“如果我有 10 万种书,哪怕一次仅卖掉一本,10 年后加起来它们的销售就会超过最新出版的《哈利·波特》!”

长尾理论作为一种新的经济模式,被成功的应用于网络经济领域。而对长尾资源的盘活和利用,恰恰是推荐系统所擅长的,因为用户对长尾内容通常是陌生的,无法主动搜索,唯有通过推荐的方式,引起用户的注意,发掘出用户的兴趣,帮助用户做出最终的选择。

盘活长尾内容对企业来说也是非常关键的,营造一个内容丰富、百花齐放的生态,能保障企业健康的生态。试想一下,一个企业如果只依赖 0.1% 的“爆款”商品或内容来吸引人气,那么随着时间推移这些爆款不再受欢迎,而新的爆款又没有及时补位,那么企业的业绩必然会有巨大波动。

只依赖最热门内容的另一个不易察觉的危险是潜在用户的流失:因为只依赖爆款虽然能吸引一批用户(简称 A 类用户),但同时也悄悄排斥了对这些热门内容并不感冒的用户(简称 B 类用户),按照长尾理论,B 类用户的数量并不少,并且随时间推移 A 类用户会逐步转变为 B 类用户(因为人们都是喜新厌旧的),所以依靠推荐系统来充分满足用户个性化、差异化的需求,让长尾内容在合适的时机来曝光,维护企业健康的生态,才能让企业的运转更稳定,波动更小。

评价方法的异同

搜索引擎通常基于 Cranfield 评价体系,并基于信息检索中常用的评价指标,例如 nDCG(英文全称为 normalized Discounted Cumulative Gain)、Precision-Recall(或其组合方式 F1)、P@N 等方法,具体可参见之前发表于 InfoQ 的文章《怎样量化评价搜索引擎的结果质量 陈运文》。整体上看,评价的着眼点在于将优质结果尽可能排到搜索结果的最前面,前 10 条结果(对应搜索结果的第一页)几乎涵盖了搜索引擎评估的主要内容。让用户以最少的点击次数、最快的速度找到内容是评价的核心。

推荐系统的评价面要宽泛的多,往往推荐结果的数量要多很多,出现的位置、场景也非常复杂,从量化角度来看,当应用于 Top-N 结果推荐时,MAP(Mean Average Precison)或 CTR(Click Through Rate,计算广告中常用)是普遍的计量方法;当用于评分预测问题时,RMSE(Root Mean Squared Error)或 MAE(Mean Absolute Error)是常见量化方法。

由于推荐系统和实际业务绑定更为紧密,从业务角度也有很多侧面评价方法,根据不同的业务形态,有不同的方法,例如带来的增量点击,推荐成功数,成交转化提升量,用户延长的停留时间等指标。

搜索和推荐的相互交融

搜索和推荐虽然有很多差异,但两者都是大数据技术的应用分支,存在着大量的交叠。近年来,搜索引擎逐步融合了推荐系统的结果,例如右侧的“相关推荐”、底部的“相关搜索词”等,都使用了推荐系统的产品思路和运算方法(如下图红圈区域)。

在另一些平台型电商网站中,由于结果数量巨大,且相关性并没有明显差异,因而对搜索结果的个性化排序有一定的运作空间,这里融合运用的个性化推荐技术也对促进成交有良好的帮助。

搜索引擎中融合的推荐系统元素

推荐系统也大量运用了搜索引擎的技术,搜索引擎解决运算性能的一个重要的数据结构是倒排索引技术(Inverted Index),而在推荐系统中,一类重要算法是基于内容的推荐(Content-based Recommendation),这其中大量运用了倒排索引、查询、结果归并等方法。另外点击反馈(Click Feedback)算法等也都在两者中大量运用以提升效果。

本文总结

作为大数据应用的两大类应用,搜索引擎和推荐系统既相互伴随和影响,又满足不同的产品需求。在作为互联网产品的连接器:连接人、信息、服务之间的桥梁,搜索和推荐有其各自的特点,本文对两者的关系进行了阐述,分析了异同。它们都是数据挖掘技术、信息检索技术、计算统计学等悠久学科的智慧结晶,也关联到认知科学、预测理论、营销学等相关学科,感兴趣的读者们可以延伸到这些相关学科里做更深入的了解。

作者:陈运文,博士,达观数据 CEO;中国知名大数据技术专家,国际计算机学会(ACM)会员,中国计算机学会(CCF)高级会员,复旦大学计算机博士和杰出毕业生;在国际顶级学术期刊和会议上发表多篇 SCI 论文,多次参加 ACM 国际数据挖掘竞赛并获得冠军荣誉;曾担任盛大文学首席数据官(CDO),腾讯文学高级总监、数据中心负责人,百度核心技术研发工程师,在大数据挖掘、用户个性化建模、文本信息处理、推荐和搜索技术等方面有丰富的研发和管理经验。

感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2016-01-27 03:0011790

评论

发布
暂无评论
发现更多内容

解析Java Chassis 3中应用视角的配置管理

华为云开发者联盟

Java 微服务 开发 华为云 华为云开发者联盟

虚拟数字人制作软件有哪些功能?

青否数字人

数字人

为什么选择 NineData 作为 MongoDB 的最佳拍档?

NineData

mongodb NineData MongoDB 数据库管理工具 MongoDB数据库

深入探析MySQL数据库:优势、版本与发展全面解读

小魏写代码

文心一言 VS 讯飞星火 VS chatgpt (185)-- 算法导论14.1 2题

福大大架构师每日一题

福大大架构师每日一题

2023年最全盘点 :16款跨平台应用程序开发框架

Geek_2305a8

一个很热的国产低代码开发平台

2D3D前端可视化开发

物联网 低代码开发平台 数字孪生 前端设计 可视化开发

融云全球通信网的「最后一公里体验」之战

融云 RongCloud

全国独家线下面授 | 上海 · 大规模敏捷认证LeSS实践者课程3月14-16日火热报名

ShineScrum捷行

大规模敏捷 LeSS认证 CLP认证 LeSS认证实践者

华为云低代码问答——低代码为什么这么“香”

华为云PaaS服务小智

低代码 华为云

别再因为React、Vue吵了,真的毫无新意!

伤感汤姆布利柏

基于PAI-EAS一键部署Stable Diffusion AIGC绘画

阿里云大数据AI技术

谷歌 2024 新年目标曝光:一边做地表最强 AI,一边裁更多员工丨 RTE 开发者日报 Vol.132

声网

Prometheus最佳实践 Summary和Histogram

华为云开发者联盟

开发 华为云 华为云开发者联盟

Java开发中不要使用受检异常

码语者

Java 异常

奖金 30 万!OurBMC 开源大赛等你来战

OurBMC

开放原子大赛 BMC全栈技术 ourBMC 飞腾服务器故障诊断

【年后跳槽必看篇-非广告】Kafka核心知识点-第二章

派大星

Java 面试

玩转数据处理利器:学会使用 YAML 文件轻松处理数据

霍格沃兹测试开发学社

第37期 | GPTSecurity周报

云起无垠

鸿蒙5.0发布时间已定!鸿蒙系统上的App开发新思路

FinFish

鸿蒙 小程序生态 小程序容器 鸿蒙Next 鸿蒙5.0

「我在淘天做技术」智能对话新纪元:百万日活对话机器人的LLM落地实践

阿里技术

招聘 对话机器人 LLM 我在淘天做技术 落地实践

光纤的连接

小齐写代码

Dart代码混淆

雪奈椰子

怎样搭建数字人直播间?

青否数字人

数字人

请谨慎选择工作offer

老张

面试 求职面试 offer大厂

微服务的拆分规范和原则

伤感汤姆布利柏

Linux 中常用的基础命令

emanjusaka

bash Linux command

【教程】混淆Dart 代码

轻松上手:通过阿里云PAI QuickStart微调部署Qwen-72B-Chat模型

阿里云大数据AI技术

【第七在线】智能商品计划:让供应链管理更加智能、高效

第七在线

传统企业和数字化企业的关系及优劣势

天津汇柏科技有限公司

数字化转型 企业数字化

推荐系统和搜索引擎的关系_大数据_陈运文_InfoQ精选文章