Ctrl+D

收藏聚图

全站素材可商用

关闭
上传作品收藏聚图
Ctrl+D

收藏聚图

区块链素材平台

关闭

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

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

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

搜索,曾经作为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 排序

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

文本相关,主要考虑搜索词与内容的相关程度,这一块已有很多成熟的方案,诸如经典的TF-IDF、BM25算法等;

业务相关,如电商类的价格、销量、时效性,资讯类的阅读量、分享量等。排序算法及各因子的权重并不是一成不变的,会随着数据的积累、badcase分析而迭代优化,最终效果也是考验对业务的理解。

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

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

02 用户搜索的故事线
收藏成功!

欢迎你留下对我们网站的宝贵建议

0/200

请留下您的QQ

改天再写