电商搜索“想用户所想,提高搜索结果质量”实践方案
编辑导语:我们在APP上进行搜索自己想要的商品时,有时打错字或者只打出其中两个字也可以搜出想要的商品,非常方便;本文针对电商搜索中如何“想用户所想,提高搜索结果质量”的问题进行剖析,并通过阿里云开放搜索电商行业解决方案和大家聊一聊如何优化解决。
一、案例背景
国内某头部母婴垂直类电商平台,致力于提供多元的产品和服务,满足中国年轻家庭知识获取、交流交友、记录成长和消费购物的四个核心需求,营收主要来源于商城部分。
我们之前提到,大部分垂直类电商搜索转化占整体业务转化的6成以上;所以该母婴平台想从根本提高营收额,就必须满足宝妈宝爸们育儿商品搜索的需求,帮助他们快速准确的找到想要的东西。
二、搜索问题反馈
用户:没有精准定位搜索需求,查询召回文档相关性较差。
三、问题分析
通过电商行业搜索特征来分析。
1. 关键词堆砌
例如:“帮宝适男童大码拉拉裤包邮”。
关键词:帮宝适、男童、大码、拉拉裤、包邮;一个Query包含好几个搜索关键词,这些关键词的重要性也是分:高、中、低的。
2. 词序对语义的影响不大
例如:“L码男童纸尿裤夏季透气”。
“L码”为尺寸,“男童”为人群,“纸尿裤”为品类,“夏季”时间季节,“透气”为产品特性;L码为Query的首要词序,但很明显它却并不是重要的关键词,只有定位搜索关键词,去除不重要的词,才会直接影响用户的搜索体验效果和搜索质量。
四、阿里云开放搜索解决方案
1. 电商分词器
分词是影响搜索效果的最基础的模块,阿里云开放搜索按行业属性提供多种场景分词器,通用行业分词器、电商行业分词器、内容行业分词器、自定义分词器等。
电商行业分词器是集成了淘宝搜索同款的分词器,它的训练语料是来自淘宝搜索多年积累的百万级有标注的电商行业数据,所以相比开源IK分词器效果较好;可以高效、高质量的解决目前遇到的分词难题。
例如:
- 文档字段内容为“大宝SOD蜜”,则搜索“大宝”、“sod”、“sod蜜”、“SOD蜜”、“蜜”等情况下均可以召回。
- 文档字段内容为“菊花茶”,则搜索“菊花茶”、“菊花”、“茶”、“花茶”等情况下可以召回。
2. 拼写纠错
提供拼写检查功能,对查询词中的错误进行纠正,给出正确的查询词;并根据纠错的可信度高低,决定当前查询是否用纠错后的词进行查询。
例如:用户搜索了“邦宝适拉拉裤”,那么默认纠错并返回“帮宝适拉拉裤”的结果。
3. 词权重
该功能主要分析了查询中每一个词在文本中的重要程度,并将其量化成权重,权重较低的词可能不会参与召回。
这样可以避免当用户输入的查询词中包含一些权重低的词时,仍然按用户输入的查询词限制召回,导致命中结果过少。
例如:用户搜索“帮宝适男童拉拉裤大码包邮”,词权重后会去查询:“帮宝适 拉拉裤、拉拉裤 大码、拉拉裤”扩大召回量。
4. 实体识别
在查询分析中,实体识别主要的作用于Query处理和类目预测查询中——用来识别文本中有特定意义的实体。
电商行业中主要识别品牌、品类、款式、风格等具有电商行业特色的实体类型;可以影响Query改写,提高召回率和准确性,提升类目预测的召回率,丢弃部分对类目影响不大的词。
1)影响Query 改写,提高召回率和准确性
召回时保留重要性高的实体词,对重要性低的部分不影响召回,只影响算法排序。
实体的重要性目前分为3档,分别是高、中、低。
Query改写的规则如下:
- 重要性高的实体,其优先级完全一样,肯定会参与召回;
- 重要性低的实体,始终不参与召回;
- 重要性中的实体,其优先级按其在查询分析中配置的顺序依次递减,改写规则:当Query中有重要性高的实体时,重要性中的实体在第一个Query中参与召回,第二个Query不参与召回;当Query中没有重要性高的实体时,重要性中的实体在第一个Query中参与召回,在第二个Query中,优先级最高的那个实体类型的词会参与召回,其他的都不参与召回。
- 当Query中没有重要性高和中的实体时,Query改写不参照实体识别的结果;
- 当Query只有重要性高或者只有重要性高和低的实体时,改写后只会得到一个Query。
2)提升类目预测召回率
查询类目预测时,依据实体对类目预测影响不同,丢弃部分对类目预测影响不大的词。
例如:对于Query 艾莎(人名)同款(后缀)夏季(时间季节)蕾丝(款式元素)连衣裙(品类),丢词后的Query按照优先级排序分别为:
- 夏季蕾丝连衣裙;
- 夏季连衣裙;
- 蕾丝连衣裙;
- 连衣裙;
系统会按照上述顺序依次查询类目预测的结果。
3)创建实体识别干预词典
为了方便用户使用,系统提供默认的实体重要性配置;用户也可以根据实际业务情况,自主的调整配置,这块调整会影响Query的改写规则。
例如:业务特殊专有名词,需要进行实体识别干预。
用户搜索“小熊 (Bear)婴儿指甲刀护理套装”,其中“小熊”“bear”实体识别结果为:普通词,但实际业务上“小熊(bear)”是一家母婴品牌;这时可以使用干预词典,设置为“品牌”,从而影响召回排序的效果。
五、实践后的搜索性能对比
搜索“荷兰美素佳儿婴幼儿奶粉”分词效果:
- Before:“荷兰、美、素、佳、儿、婴幼儿、婴、幼、儿、奶粉、奶、粉”。
- After: “荷兰(地点地域)、美素佳儿(品牌)、婴幼儿(人群)、奶粉(品类)”。
搜索“夏季新款凉鞋男童”:
- Before:3个召回结果。
- After:22个召回结果。
利用查询分析——实体识别功能:定位搜索关键词
实体识别:“夏季”时间季节,“男童”人群;“新款”新品;;“凉鞋”品类。
- Query1:“凉鞋”“夏季”“男童”;
- Query2:“凉鞋”。
以上就是今天我要和大家分享如何快速高效解决电商搜索相关问题的解决方案,希望对大家有所帮助~
作者:KKai,B端产品运营
本文由 @KKai 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议
楼主能否讲解下热词库及维护
热词是根据上传行为数据进行模型训练的,头部企业可以实现实时更新,大部分电商还是每日更新
阿里云开放搜索按行业属性提供多种场景分词器 –> 举个例子看看
通用行业分词器,电商行业分词器,内容行业分词器,自定义分词器
有 公开的 程序包或者接口吗?我没有找到阿里公开的程序包。
https://www.aliyun.com/product/opensearch 你看看,如果有需要可以加钉钉群30474807
电商应该是分词最具行业特性的场景。内容分词比如CSDN这种社区论坛场景的应用