在过去十年里,搜索已经变得无处不在——搜索框已然成为各类网站、应用的基础标配。一个网站或者应用不提供搜索框,这是无法想象的事情。随着搜索在基础架构方面越来越多的难题得到解决,加之解决方案的商品化进程,搜索引擎的竞争已经从如何提供快速、可伸缩的搜索,转变成如何针对用户的信息需求提供最相关的匹配。换言之,就是如何正确地理解用户意图,提高搜索的相关性,为用户提供满意的搜索结果。

什么是相关性

  所谓相关性,就是根据内容对用户及业务需求的满足程度,对搜索内容进行排名的一门学问。它会将搜索引擎打造成一个看似智能的系统,能够理解用户和业务的需求。让搜索引擎理解内容中包含的重要特征(feature):比如餐厅的位置,书中出现的词汇,或者衬衫的颜色这样的属性。有了准确的特征,当用户在应用内搜索时,就可以计算出什么对他们而言是重要的:这家餐厅离我有多远?这本书上讲的内容对我有帮助吗?这件衬衫和我刚买的裤子搭配吗?这些在搜索期间影响排名的因素,是用来衡量用户所关心的内容的,称之为信号(signal)。搜索引擎面临的挑战,就是在不同特征之间做出选择,并实现能满足用户与业务需求的信号。

  然而,技术只是实现相关性的工具,明白要做什么可能比知道怎么做更重要。“相关性”在某个具体应用里的含义大相径庭。

在不同的应用中其搜索相关性大不相同

  我们很容易误以为搜索是一个单一问题。事实上,不同的搜索应用之间,彼此差异非常大。每个应用都有截然不同的相关性预期。

  通用型搜索应用,比如Google,要返回有用而可靠的信息。利用PageRank,Google不仅为用户返回了与搜索相匹配的内容,而且这些内容还是被网络上其他地方认为是可靠和可信的。

  电商网站对于被搜索的内容拥有完全的控制,它们较少关注可信度。电商网站为了达成交易,就要根据用户的搜索行为、历史数据等信息,为用户推荐合适的商品,促进销售。

  医疗、法律和学术研究领域的专家搜索,通过更为深入地挖掘文本来定义相关性。这种专家搜索依赖于对专业人员输入的行业术语的理解。这类解决方案必须掌握专业领域里各种事物之间的微妙关联。比如,“HeartAttack(心脏病)”和“MyocardialInfarction(心肌梗死)”是一回事;或者急性“MyocardialInfarction”是一种特殊类型的“HeartAttack”。

  再往下细分,还会发现更多的不同。比如房产搜索是一种电商搜索吗?两者固然有相似之处(让用户买得称心),但对于一名购房者而言,还有许多其他因素需要考虑(所在学区、邻里关系、户型)。本地餐饮的搜索应用呢?就医的搜索呢?用餐馆菜单来订餐呢?企业内网的搜索呢?

  相关性需求多种多样,有时候用户甚至有可能还没有意识到自己的需求是什么,但是开发者却必须通过各种方法,挖掘出其真实需求,迎接业务带来的挑战。

信息检索与相关性

  那么,搜索的相关性有系统性的基础和通用的工程性原则吗?答案是有的。事实上,在相关性的背后藏着一门学问:学术领域里的信息检索(informationretrieval)。它包含被普遍接受的各种实践,可以对广泛分布在各行各业的相关性加以改进。

  在信息检索中,相关性被定义为一种返回搜索结果的实践,它能最大限度地满足用户的信息需求。而且,典型的信息检索关注的是文本排名。信息检索中的很多发现,都是在试图衡量给定的文章与用户的文本查询在多大程度上具有相关性。这些发现中有很多都已经在开源的搜索引擎中被实现了。

  然而应用的相关性取决于各种因素,有些因素具有广泛性和普遍性,它们所涉及的就是信息检索中的文本排名;还有很多因素都是和具体应用息息相关的(比如,用户距离餐厅有多远)。经典的信息检索技术对于解决相关性问题,确实能有所帮助,但是还有一些问题则爱莫能助。这些问题很大程度上游离于搜索技术之外,且涉及更为广泛的各种产品策略问题:我们的用户是谁?他们希望通过这个应用得到什么?搜索要解决的那些隐含在其中而未加指明的信息需求是什么?

如何解决相关性

  开源搜索引擎可以通过编程的方式将我们对相关性的理解植入搜索引擎,打造相关性解决方案,使之既满足用户需求,又符合业务目标。采用开源引擎怎样定义出一个框架,既包含狭义的领域特定因素,又用到广义的信息检索技术呢?以下几点是需要考虑的。

  • 识别出能够刻画内容、用户或搜索查询的关键特征。
  • 通过对特征的提取和对内容的丰富,想办法让搜索引擎理解这些特征。
  • 在搜索期间,通过构造信号来对用户搜索的相关性加以度量。
  • 在对结果进行排名时,通过控制排名函数,仔细平衡多个信号之间的影响。

  以上内容节选自《相关性搜索:利用Solr与Elasticsearch创建智能应用》,点此链接可在博文视点官网查看此书。
                   
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                    

智能推荐:“相关性搜索”只给你最想要的相关推荐

  1. 电商类应用如何快速构建站内搜索和智能推荐能力?

    用户进入电商应用,锁定商品有两种路径: 一是用户明确要买的商品,通过文字.语音.图片等方式直接搜索定位商品: 二是用户随机浏览商品,系统根据用户喜好推荐,越懂得用户偏好,则越能激发用户购买欲. 商品智 ...

  2. 搜索场景下的智能推荐演变之路

    摘要:传统的推荐手段主要还是深度挖掘用户行为和内容本身相似性的价值,包括但不限于协同过滤,内容表征+向量召回,以及各式各样的点击率预估模型,然后这样的推荐行为缺乏内在的逻辑性和可解释性,有一种知其然, ...

  3. 推荐、搜索、广告中的召回、相关性、多目标精排 - 召回篇

    一.召回 智能推荐算法在直播场景中的应用 - 知乎 花椒直播推荐系统高级算法工程师王洋:智能推荐系统在直播场景中的应用_哔哩哔哩_bilibili 1:基于item的协同过滤(求出来item之间的相似 ...

  4. ML:阿里云计算平台之搜索推荐演讲分享《多场景智能推荐助力业务增长》、《阿里云智能推荐应用实践:PAI-EasyRec Framework》、《新一代数仓架构漫谈》

    ML:阿里云计算平台之搜索推荐演讲分享<多场景智能推荐助力业务增长>.<阿里云智能推荐应用实践:PAI-EasyRec Framework>.<新一代数仓架构漫谈> ...

  5. 直播推荐、搜索中的召回、相关性、多目标精排 - 相关性篇

    二.搜索相关性 电商搜索:相关性匹配 - 知乎 上面这篇文章中说的很好,把相关性从简到易分到3种(结构化匹配.文本匹配.语义匹配) I:召回.粗排中用到结构化匹配的方式来控制相关性(query的类目是 ...

  6. 基于关联规则的气象服务智能推荐

    基于关联规则的气象服务智能推荐 赵文芳, 刘亚楠, 余东昌 北京市气象信息中心,北京 100089 摘要:针对气象公众服务存在的专业化程度不高.针对性不强等问题,提出了一种使用关联规则向用户推荐气象服 ...

  7. 深度学习如何应用在广告、推荐及搜索业务?阿里妈妈实践案例解读

    阿里妹导读:靖世,阿里妈妈精准展示技术研究员.2011 年,刚进阿里的他提出了分片线性模型 MLR,极大提高了 CTR 预估的准确性.近期,靖世又带领团队在 CTR 预估方面推出了一个新的模型结构-- ...

  8. 爆料 | 解析阿里妈妈如何将深度学习应用在广告、推荐及搜索业务

    非常高兴与大家进行"深度学习演进之路"的交流,阿里妈妈是阿里巴巴集团下的大数据营销平台,是负责阿里巴巴变现的一个事业部.我研究的方向是机器学习.计算机视觉.推荐系统和计算广告.我在 ...

  9. 百度智能小程序搜索优化指南(基础版)

    目录  一.为什么百度搜索喜欢智能小程序 二.开发前必读内容 2.1 必须了解的搜索知识 2.2 掌握常用工具 2.3 如何搭建智能小程序更友好 三.智能小程序资源如何进入搜索 3.1 接入自然搜索结 ...

最新文章

  1. 根据双眼的坐标对齐人脸Python实现
  2. Node的垃圾回收机制与内存溢出捕获(上)
  3. halcon算子翻译——dev_set_paint
  4. android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)
  5. Tkinter模块常用参数(python3)
  6. js遍历对象的key和value
  7. IIC挂死问题解决过程
  8. 【机器人】9-10月项目疑惑
  9. 第一个冲刺周期第二天补发
  10. 网络安全系列之培训笔记整理
  11. TD041S485H完全兼容ISO3080, ISO3086 ISO3082, ISO3088
  12. SQL中NOW() 函数
  13. mysql查询地理位置_利用curl和ip138的数据库来查询IP地址地理位置
  14. 基于解决sci和ei等国外期刊论文翻译阅读难等问题的辅助软件分析
  15. 【关于Spring那些事】——与君初相识
  16. 计算机管理文件破坏怎么办,文件损坏,教您电脑文件损坏怎么修复
  17. 学计算机基础word题,大学计算机基础word练习题及详解答案.doc
  18. Ubuntu下安装Luma qq
  19. 使用Spark中DataFrame的语法与SQL操作,对人类数据进行处理,比较学历与离婚率的关系
  20. 1062 最简分数 (20分)

热门文章

  1. php通用的树型类创建无限级树型菜单
  2. pyMagic:用python控制的Geek入门神器
  3. Image、Byte[]、Bitmap相互转换
  4. 他在 B 站有 178 万粉丝,今天免费带你玩转 Python
  5. dns服务器正则表达式验证,js如何对域名和ip进行校验?(正则表达式)
  6. 每个Java应用容器都要包含tomcat_部署一个不依赖tomcat容器的应用
  7. redis分布式缓存(二)
  8. Nginx中gzip_static使用测试
  9. Dubbo监控平台安装
  10. 为什么需要动态SQL?