电商搜索如何让你买得又快又好「搜索前」(二)
其它相关文章整理:https://zhuanlan.zhihu.com/p/51015148
“搜索是用户把控方向及自由度的信息入口,尤其是当用户无法在产品上通过浏览找到想要的东西。”
在进行搜索功能的设计时要以简单、高效为核心目标,搜索即服务。电商搜索从大的架构或流程上来说,与通用搜索引擎有非常多的相似之处。包括对数据的收集、分析、索引,进而根据用户的搜索词在搜索引擎中检索,完成商品与搜索词之间的相关度评价,最后对结果进行排序展现,并实时响应用户的相关行为和筛选反馈。
根据搜索的过程,可以拆解用户的搜索流程如下:搜索入口-搜索触发-内容输入-点击搜索-反馈结果。我们从这个流程的各个环节上来看三大电商的搜索功能,进行对比分析。
对比是个学习与分析的好方法,接下来的若干篇文章将从上述各个环节展开,主要介绍国内top3电商为主,所以分别以拼多多、淘宝、京东的搜索功能为切入点进行对比,并给出相关技术方案。
本文从前两个环节来进行介绍,搜索前(搜索入口-搜索触发):
1.搜索入口放在哪
一级tab(拼多多)
顶部中间搜索框(淘宝,京东,天猫)
搜索入口吸顶(淘宝,京东,拼多多,移动)
顶部右侧放大镜icon(移动)
搜索入口-产品
这里没有找到将头部右侧icon作为搜索入口的电商,所以找了非电商的例子(移动)。
分析:几乎所有大型电商对搜索入口定位均较高,给了相当重要的位置,尤其是拼多多给了一级tab作为用户的搜索入口,但首页取消了搜索入口;并且在搜索入口展现层面均设置了吸顶(下滑操作不会让搜索框消失),拼多多搜索入口在一级tab下吸顶。搜索位置体现了产品对搜索功能的定位问题。
2.搜索触发
a.触发前
默认底纹:内容前置,用户在不输入搜索词的情况下直接得到想要搜索的词
常见情况:商品名称关键词,类目词,品牌词,特定活动
底纹推荐-产品
底纹推荐技术方案
极简版:
运营人工配置
统计版:
热门搜索词、热门品类、热门活动
简单模型版:
实时对用户最近一次的点击/收藏/加购/搜索词,使用自然语言处理进行关键词、品类词、活动提取,并在搜索框内显示。这里涉及文本处理词性识别和命名实体识别(NER,把无结构文字转变为有结构文字),核心词(名词)、形容词(属性/标签等)提取过程,可以考虑基于规则或统计的词性标注(HMM)。
词性识别-来自《郎君-NLP技术的应用及思考》
实体打标词性识别-来自《郎君-NLP技术的应用及思考》
复杂模型
embedding方法
生成式: seq2seq,通过将用户的近期n-1个时间步内的行为序列输入rnn模型(lstm),生成预测未来第n时间步的行为,可以考虑将商品标题,属性,用户特征/标签一同输入训练user embedding,然后在用过一个decoder对其进行解码。
用户行为序列
生成式-user-embedding-《云栖社区-query生成与推荐》
生成式-query generate-《云栖社区-query生成与推荐》
检索式: user与query embedding到同一个向量空间中,并最终计算两者的相似度,最终将与用户相似较高的topN进行召回,并使用模型预估意图及转化最高的query作为底纹。
检索式-《云栖社区-query生成与推荐》
doc2vec和word2vec方式对用户和query进行embedding,query的文本为搜索曝光日志中此query下转化最高的n个商品(tittle,描述等),user的文本则为用户近期行为交互相关商品的文本(tittle,描述等),使用doc2vec或word2vec进行训练,最终产出query及user的embedding vector。
query及user的doc构建
检索式向量召回性能开销大,一般现在外层使用聚类模型进行一级查找,确定一级簇以后再进行二级查找。
对候选集合使用kmeans聚成n个簇
遍历n个簇中心查找余弦距离最近的topM个类
然后遍历topM个簇中的点获取topK个相似
最后使用一个对目标建模的模型找出得分最高的搜索词作为默认词
b.触发后,输入前
触发搜索框后,在绝大数电商搜索产品中均有不同程度的搜索推荐版本,对于业务来说,这是cross sale的方式。常见的有搜索历史、热门搜索、搜索发现,并且除了搜索历史,热门搜索和搜索发现一定程度上需要做语义归一化,避免浪费坑位,如“白裤子”与“裤子 白色”。
热门&搜索发现-产品
搜索历史
搜索历史的功能建立在一定假设的基础上,假设用户使用搜索具有一定重复性。搜索历史帮助用户快速检索历史需求,快速进行回放。并且通过数据分析可以发现,搜索历史的query词更加高频,转化也比其它搜索推荐词转化高;所以历史搜索一般更靠近搜索框,并且搜索词按时间先后顺序由近及远,数量过多时会进行折叠或只保留N个,用户有清空历史搜索词的选项。
热门搜索词
通过已有用户的搜索日志,进行数据分析,选择将高频&高转化搜索词进行展现,便于用户冷启动/意图冷启动进行筛选。这一过程中也有运营同学的参与,如大促热门活动主题。热门搜索推荐词应避免长尾,应尽量高频、宽泛、多样。
注:用户冷启动一般指新用户,意图冷启动指用户之前未有的需求。
搜索发现/搜索词推荐
这一板块使用了千人千面,更加个性化。并且很多时候有换一批的功能,可以让更多内容有曝光机会。由于有搜索历史的存在,所以搜索词在个性化的同时,应尽量避免与搜索历史栏出现语义重复,提供更有价值的搜索词,从而最大化曝光效率,并且为了防止过多推荐词带来干扰,一般搜索发现词在10个以内。
这个模块的技术方案与底纹推荐类似,只不过最终的展现不是一个,而是topN,这里就不再赘述。
后续文章主题:《国内主流电商搜索功能对比》、《电商搜索-数据分析》、《搜索算法-QR》、《搜索算法-QU》、《搜索算法-相关性》、《搜索算法-排序》。