一个常见的搜索引擎架构
通用搜索引擎和垂直搜索引擎在不同领域承担着不同功用。除了Google和Baidu这类通用引擎外,互联网产品通常需要一个垂直搜索引擎,来对接用户需求,这类搜索引擎有着比较明确的指向性和主题内容。例如携程的酒旅,淘宝的电商,多点app的o2o。他们的业态千差万别,最后想目标用用户透出的购买落地点无外乎导购和搜索。通常来说,一个app的搜索入口通常会占到落地流量的50~80%。搜索体验是影响c端用户的一个重要落点。外卖搜索是一种垂直搜索引擎。对于外卖搜索来说,它针对的用户是点餐的人群,服务对象是商户,主题内容是商户和菜品。
显而易见的是外卖搜索的用户通常的需求有搜店铺,搜菜品,搜品类。比如用户想搜索附近的肯德基,进店后点菜。比如用户中午想吃麻辣烫,比如用户中午想吃炒菜。需要深思的是,这些需求背后的客户通常有具有不同层次的画像面貌。而且不同意图的搜索占比通常比较固定,这通常是被忽略掉的地方。
搜索第一步要解决问题是召回率和准确率(或者说查全率与查准率),召回率和中文分词的策略息息相关。常用的分词方法有基于词典的机械分词器,基于概率统计的分词器。机械分词基于词典,分词结果可以通过词库干预,通常有正向匹配和逆向匹配的算法。基于概率统计的分词算法,常用的有n-gram,hmm,信息熵,还有基于知识库(标注序列)的crf算法等。在实现难度和效果上都有各自的优缺点。
当准确率低的时候,一个好的排序算法极其重要。排序算法一般基于用户的历史搜索点击和购买行为数据构建模型,比较常用的有主题模型,群体智慧,lr,神经网络等。好的排序算法,通常来说会使低匹配度的结果放在结果集后面,这种做法的弊端是占用显示位置,当这些结果在第二、三屏出现的时候会比较明显。比如搜索“麻辣烫”第二三屏出现“辣子鸡”。在技术上虽然有一丢丢相关性“辣”,但实际这个辣子鸡和用户的意图目标相差十万八千里,在这个位置显示技术上无关的“冒菜”可能点击转化率会更高。
传统的衡量搜索能力高低的指标有搜索的召回率,准确率,以及点击率转化率,购买转化率,平均点击位置等。这些指标可以初步的在技术面反映搜索系统的能力高低,效果好坏。这些传统的统计方法,直接而暴力。当一个搜索引擎逐步完善以后,往往无法再提助搜索。
搜索是app在c端形态的一个重要部分,用户的搜索行为在整个app操作行为中的高占比,导致搜索体验是影响c端体验的重要一环。在搜索系统建设中,建设领域级业态专有词库是优化召回的重要方向。词库的建设是索引分词以及查询分词的基础。在词库建设中,要多维度,分场景,细粒度。通常需要机器学习+人工干预相佐。一个充分优良的词库可以作用于query标注和改写、搜索意图识别、类目细分、类目过滤等方面来提升召回效果,并辅助排序。
和所有系统同样,在搜索系统建设中,数据建设是另一个重要的一个方向,搜索系统中的数据指的是用于建立倒排索引的,商户希望展示的,用户希望获取到的,用以代表实体特征的信息载体。数据的实时性和一致性是系统首要需要保障的。除此外,数据画像技术的应用缺失是搜索系统难以进阶的一个原因,也是搜索系统建设的一个盲区。
在搜索系统的优化上,另一个关键词是“细粒度(精细化)”,落脚点是关键词和商户。通常在系统报表中,可以看到笼统的转化率。而实际上,搜索行为的关键词分层是搜索的一个特点,符合二八定律,即80%的搜索行为集中在20%的关键词上,在实际生产中,这个比例差值可能更大。做好这20%的关键词在进一步提升搜索体验上价值很大。另一个是商户方面,主要是ka商户的搜索优化上。
对于一个搜索系统来说,它的使命我认为有两个:更快速匹配用户的需求和商户的数据,衡量标准是单次响应时间快,一个需求内和系统交互次数少。第二个使命更近了一步,是使用率最大化,衡量标准是用户和系统的交互次数。第一个使命建立于本段落之前的观点,而第二个使命,则需要建立一个可以改变并塑造用户心智,培养用户使用习惯,主动适应系统的模型。
除了优化搜索,建立心智模型,在搜索能力的扩展上,也有很大的发挥空间。比如导购和搜索的系统性融合,做基于搜索的导购。比如商户赋能,通过搜索数据,为商户提供运营支持。提供基于关键词维度的精细化搜索运营策略。基于篇幅暂略。
在团队方面,需要有算法能力,基础设施能力(基础引擎),画像能力,产品能力的支撑。团队内部每个人的产品思维培养对于搜索系统最终的成型有着至关重要的影响。