规划搜索产品时,我们该如何着手?

4 评论 15227 浏览 85 收藏 19 分钟

编辑导语:我们在进行网上冲浪时,可以直接利用搜索功能查找想要知道的讯息,十分快捷方便;为了方便我们的更快的找到,搜索后会根据系统内部的逻辑进行查找。本文作者从是什么、有什么和如何做三个方面详细介绍了搜索功能的原理产品架构,供大家一同参考和学习。

搜索,曾经作为PC互联网时代的流量霸主,有着举足轻重的地位。即使在如今APP孤岛林立的移动互联时代,站内搜索仍然是提升产品触达与流量转化的重要部件,譬如业界有流传电商App 40%以上的GMV通过搜索贡献。

那么,当我们要规划一款搜索产品时,我们主要关注哪些内容,这篇文章希望和你一齐探讨。

01 搜索的本质

让我们先来看看搜索的原理是什么。简单说,就是用户的输入(Query)与系统数据库中的内容(Content)完成匹配(Match)的过程

这个过程的实现可以归纳为三步:第一是对用户query的解读,即query分析;第二是对系统中存储的数据内容的理解,即应该与哪些内容进行匹配并召回数据;最后是对召回的结果排序,预测用户最想要的是什么并予以呈现。

搜索系统流程图

1.1 Query分析

用户搜索时输入的内容往往是一串长句或是一个问题,这样的自然语言,机器是没法直接识别的,这个时候就需要对query进行拆解。

首先是分词,也就是把长句分解成短语或词组,比如“双十一全民购物节”会被分解为“双十一/全民/购物节”,被分解后的词就可以在系统词库中找到。系统词库一般可以通过常用词库、搜索行为日志、企业产品名称、商品品牌、类目等构建,定期更新维护。技术上已有一些开源词库可以应用,比如jieba、ik等词库插件。

但是用户的query有时候并不总是能精确分词,譬如输入了拼音或者错别字,系统就要把query进行纠错改写。或是为了更准确的命中用户意图,就要进行同义词、语义扩展。一般通过构建query与纠错词、同义词的映射词库来实现,数据大多来源于用户搜索日志及人工维护等。近些年得益于深度学习的发展,如BERT等NLP模型被引入语义扩展应用中,效果得到进一步改善。

另外,query分词后的信息并不都是重要的,某些时候query中的一个关键词其实才是用户想要表达的真实意图,把这个词提取出来就可以帮助后续的召回排序阶段能更快更准的匹配内容,这就是识别及提取关键词的作用了。

以上无论分词、关键词识别或是语义扩展,目的都是对用户query的解读,理解用户真实意图,为接下来搜索引擎该从系统中召回哪些数据框定出大致的范围。

1.2 召回

召回,也就是把用户query相关的内容从数据库中筛选出来,在这之前系统有一系列的任务需要处理。首要任务当然是建立搜索系统的数据库,一般这个过程就是搜索引擎的索引构建

对于一项搜索业务,比如电商类的搜索,引擎会把商品标题、商品简介、广告词、品牌、类目等文本类的字段纳入到索引中,并与词库词典建立一种映射关系,这样query分词后就能快速进行匹配,把命中的内容全部从数据库中召回出来。当然,除了标题、简介等文本类信息,诸如商品的销量、评论、点击量等数值类的字段也会被搜索引擎构建到索引中,在接下来的排序阶段发挥作用。

1.3 排序

经过搜索召回的数据往往是大量的,那么哪些内容会被优先展示呢?搜索引擎会结合各个因子的价值赋予一定的权重,进行综合后给每条数据评定优先级分数。影响搜索排序的因子大体可以分为两类:

  1. 文本相关,主要考虑搜索词与内容的相关程度,这一块已有很多成熟的方案,诸如经典的TF-IDF、BM25算法等;
  2. 业务相关,如电商类的价格、销量、时效性,资讯类的阅读量、分享量等。排序算法及各因子的权重并不是一成不变的,会随着数据的积累、badcase分析而迭代优化,最终效果也是考验对业务的理解。

另外除了相关性排序,大多搜索系统都加入了个性化排序的能力,一般通过搜索日志挖掘、用户标签等与数据内容联合建立点击率模型,预测用户偏好的搜索结果。

经过query分析-召回-排序等一系列步骤后,数据内容就按相关性依序呈现到了用户面前,以上就是搜索实现的基本原理。

02 用户搜索的故事线

上述解决了搜索是什么的问题,接下来我们看看一款搜索产品一般会具备哪些功能。搜索出现的缘由是信息过载,特别是越来越多长尾内容无法有效触达,用户需要通过搜索在纷繁的数据中快速找到所需,因此搜索的功能便是基于降低用户使用成本来规划的。从用户视角来看,一次搜索流程的故事线如下图所示。

用户搜索故事线

2.1 搜索前

2.1.1 搜索输入形态

在进入搜索前,一般有几种交互方式来向系统输入查找内容。主流的就是文本框搜索了,随着语音识别技术的发展一些企业已开始逐步引入语音搜索(本质上仍是通过语音转文字后进行的文本搜索),另外诸多电商产品还有图片搜索的功能。对这三种输入形态可以结合团队实力和业务需要来规划搜索入口设计。

2.1.2 底纹默认框词

搜索入口设计成输入框的形式时,一般都会有底纹默认词。对用户这是作为搜索推荐降低选择的入口,对企业则是营销推广、流量分发的广告位。因此在实现上,通常会结合用户的行为数据(比如历史搜索、搜索点击,甚至于商品购买、浏览点赞等搜索外数据)、热门搜索、人工干预做综合推荐。

底纹默认词

2.2 搜索中

从用户选择搜索框到输入搜索词的过程,也有一些简化用户使用的操作。

2.2.1 历史搜索&热门搜索

历史搜索是用户曾经在搜索页面查询过的关键词,一般会按时间由近及远保留近10条记录并呈现。

热门搜索是搜索业务中一大流量分发的广告位,具有一定的榜单效用从而降低用户决策提升点击率,通常由运营人员结合热点产品在后台设置推广词。进阶的做法,会结合用户之前的行为数据加入个性化推荐的算法,达到一定的千人千面效果。

2.2.2 搜索推荐

用户在使用搜索时也会有意图不明确的时候,或者搜索之后无法匹配到系统内容导致没有结果,这时就可以进行搜索推荐。在搜索动线中植入推荐的场景可以很多,比如无结果推荐与相关性推荐。

1)无结果推荐,就是在用户搜索后但是没有搜索内容返回,往往是业务数据偏少或者用户的query词条较冷门造成。

无搜索结果是很伤用户体验的情境,次数如果出现多的话用户下次就不会再用搜索功能了。这个时候就可以结合用户的query进行相似搜索词的推荐,或者结合用户与内容的属性进行产品的推荐。

大众点评·无少结果推荐

2)相关性推荐,常出现在搜索结果信息流中,以用户的query词为基准,推荐更多与他的意图相关的词。

需求实现上一般也可以从两个维度来考虑,即搜索词的维度与点击行为的维度。搜索词维度可以结合用户的搜索session来分析,什么是用户搜索session呢?定义的方式有很多种,可以认为从用户第一次输入query到产生实际点击行为为一次搜索session。

当用户搜索一个词发现没有找到,会接着换个词继续搜索,最终找到想要的内容。那么就可以把多个用户相同的query及后续相关搜索词记录下来,进行协同过滤推荐了。

点击行为维度,是把用户的点击行为考虑进来,当一条产生了点击的搜索结果出现在多个query搜索词的结果列表中,例如搜索‘史记’和‘资治通鉴’的用户最终都在结果列表中点击了‘上下五千年丛书’,那么下次就可以把搜‘史记’的关键词推荐给搜‘资治通鉴’的用户了。

2.2.3 下拉联想词

下拉联想

联想建议是依据用户键入的文本,系统自动扩充完善,以达到简化用户输入、快速跳转查询结果的目的。为了系统建议的内容更准确,一般会对query进行纠错提示、前缀匹配等。

纠错提示需要支持汉字拼音混合输入、拼音大小写输入等,比如用户输入“华为Rongyao手机”,能将拼音提示为正确的汉字“华为荣耀手机”供用户点选;另外对于用户输入的错别字系统需要改写成正确的表达,比如“卖当劳”改写为“麦当劳”,实现上主要以中文拼音为基础检索同音字,结合字词的编辑距离进行纠错判断。

前缀匹配能在用户开始输入若干字后快速联想出相关内容,比如输入“女装”,系统联想“女装套装”、“女装上衣”、“女装连衣裙”等,把用户可能的后继搜索词都关联呈现出来。

2.3 搜索后

用户输入query点击搜索后,系统会给用户呈现一系列相关的搜索结果,那么如何帮助用户更快更好的从结果中找到自己的真实意图呢,需要在技术算法与产品功能上协同发力。

2.3.1 搜索结果列表

还记得上文提到的排序吗,搜索结果列表就是其发挥作用的主阵地。模型算法上经历了从文本相关性到个性化算法再到不断推陈出新的各种神经网络,算法能力升级也使搜索结果首屏内容命中用户query意图的概率大大增加。

而在产品交互层面,需要结合企业业务与数据内容的特性,分析用户关注的核心信息以及哪种内容更易促动用户点击,以此对搜索结果信息流的图文呈现、字段展示、业务域模块划分进行综合考量布局。

另外,如果企业/App是具有平台性质(比如微博、抖音、电商类App)可以为第三方提供广告接入的服务,在搜索结果信息流中植入广告feed也是一个重要且复杂的课题,需要考虑广告与搜索域的原生信息、用户搜索意图以及商业目标等的匹配平衡。

2.3.2 搜索直达/结果置顶

搜索直达是指用户的query命中了特定的关键词,系统会跳过搜索结果列表,直接转到具体落地页。比如搜索‘天猫双11主会场’,直接跳转至活动页。搜索直达为运营提供了一种工具,配合营销大促、节日庆典等重要活动进行宣传与引流落地。

结果置顶则是为一些爆款商品或者是主流业务产品配置相关关键词,或者通过数据挖掘发现某些query下的高频点击结果,当用户的query匹配时,把相关结果在搜索列表中置顶,提供产品快捷入口。比如微信搜一搜中搜索华为会置顶显示华为商城,并且还会附带露出更多效果与组件入口,方便用户直达服务。

2.3.3 筛选排序

除了系统按文本、权重、语义做的综合搜索排序,不同品类的业务可以依据业务属性定制排序及筛选的方式,比如商品的按销量/价格排序、商户的距离/好评排序等;筛选是为用户提供的一套组合过滤器,比如手机品类支持按型号、品牌、类目等筛选,某些时候业务多元且复杂,甚至可以提供接口交由上游业务实现筛选定制化管理与维护。

以上结合用户搜索的故事线大致梳理了主流搜索业务包含的产品能力,基于自身业务特性完善功能,可以帮助用户搜索更便利。

03 搜索产品架构

搜索产品历经迭代,从入口级工具到中台化引擎,很多时候搜索业务也伴随着企业的发展而承载更多的能力。最后,我们以中台化的搜索平台为定位,浅析搜索产品的架构规划,主要可以从三个维度考虑:数据层、平台层、应用层。

1. 数据层

是构建平台的基础,中台炮火强不强,数据‘弹药库’得先准备好。也可以拆解为三个方面着手:

一是词库的建设,比如基础词库、同义词库、纠错词库、联想词库等,拆分多个词库的好处是能针对特定搜索功能进行专项优化。词库初始化好了以后,还要考虑是否有人工干预维护的机制、系统发现新词的能力,另外对于某些特定行业诸如金融、医药等,还会进行相关专业词汇的构建。

二是用户相关数据,包括用户基本属性标签、行为数据、交易数据等,大多时候这些数据都散落在各个业务系统,而这些数据对优化算法模型起到重要作用,那么如何去其他系统取数、需要哪些字段,就需要商定一个机制。

三是垂类数据建设,企业如果具备多元的业务,就可以对不同垂直业务分别取数、建索引存储,搜索引擎可以设计通用的数据上报接口,为需要接入平台的业务提供全量/增量数据同步的服务。

2. 平台层

搭建PaaS化的微服务能力,把query理解、数据召回、内容排序等模块抽象成API式的接口,以满足不同业务定制化的需求。

3. 应用层

是最终搜索业务与用户交互的窗口,秉持‘降低用户搜索的费力度’与‘提升业务转化率’的目的,对用户搜索故事线前、中、后的体验不断迭代优化与能力丰富。

以上就是本文基本梳理的搜索业务构建的骨架,市面上的搜索产品大致是上述功能与流程的组合。暂时先总结到这么多吧,搜索的更多细节有机会再进一步分析。

 

作者:策略伽;公众号:策略伽

本文由 @策略伽 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 非常详细 很感谢你的分享

    来自上海 回复
  2. 文章质量很高,感谢发表!

    来自中国 回复
  3. 学习了,感谢

    来自上海 回复
  4. 写的很不错!

    来自北京 回复