sug评价

01 关于SUG

https://zhuanlan.zhihu.com/p/72950840

在讲具体如何衡量一个SUG效果之前,大家要先了解SUG是怎么做的,然后才好去看怎么衡量它做的效果。

SUG和搜索的流程非常类似。搜索的大概流程:

  • 用户输入关键词
  • 关键词分析,明确搜索意图
  • 根据意图召回满足条件的搜索结果
  • 对这些结果进行排序
  • 展示给用户

SUG的流程类似:

  • 用户输入关键词
  • 根据用户当前输入关键词召回符合条件的其他关键词
  • 对这些联想词进行排序
  • 展示给用户

所以从这个角度来讲的话,很多用于衡量搜索效果的指标,其实可以变通的复用到SUG。

基本上对策略产品效果衡量的话,大致包括算法维度和业务维度的评估。

02 算法维度

从算法维度来看,核心指标基本上就是召回和准确。具体来讲,SUG在算法维度这块的指标包括联想词数量,联想词准确率,联想词多样性。

联想词数量

联想词数量是指当用户输入关键词之后,能够联想出来其他关键词的数量,这个一般用于对SUG联想词召回模型的离线评估,衡量联想词召回能力。

一般来说,模型能够生成的联想词越多越好,相当于提供了更多的候选集。但是也不绝对。

从产品、用户端来说,在设计SUG展示策略的时候,基本会限制露出联想词的个数(10~15)个,因此产品端对于这个指标通常可以不用关注,基本都可以满足需求。

联想词准确率

很明显,联想词除了要保证足够的召回数量,更重要的是准确。只有准确才能命中用户真正想要搜索的关键词,他们才会去使用。

联想词准确率是指基于用户搜索的关键词,衡量联想出其他关键词是否准确的一个指标。

这里的准确需要定义一个标准,通常跟平台业务挂钩。比如电商平台,用户输入“牛”,联想出“牛奶”是准确的,但是在诸如短视频、文章社区等内容平台,则可能联想出“牛年大吉”是准确的。

联想词多样性

联想词多样性是指用户输入关键词之后,能够联想出来其他关键词的类型。比如输入牛奶,可能联想出来蒙牛牛奶,牛奶永辉、低脂牛奶,牛奶100ml,袋装牛奶,牛奶黄桃味,这些其实都是联想词的类型,或者是联想词组成策略。

蒙牛牛奶:品牌+关键词

低脂牛奶:属性(口味、规格等等)+关键词

牛奶永辉:门店+关键词

所以丰富的联想词类型能够命中用户多个需求,也是提升用户输入效率的关键。

以上三个指标的好坏通常与联想词生成和排序相关的模型有关,因此我把他归为算法指标,一般需要在上线之前进行离线的评估。

03 业务维度

从业务,或者是产品维度来讲,衡量一个SUG做的好坏通常可以从以下几个维度来衡量:使用、效率和转化。

使用

SUG使用率:SUG点击次数/搜索次数

SUG点击率:SUG点击次数/SUG曝光次数

SUG无结果率:SUG引导无结果次数/SUG曝光次数

效率

SUG平均点击位置:SUG位置*各位置点击次数 /SUG点击次数

SUGTopN使用率:SUG TopN点击量/SUG曝光次数

转化

SUG引导CTR:由SUG引导进入搜索结果页点击次数/SUG点击次数

SUG引导UCVR:由SUG引导进入搜索结果页的下单人数/SUG点击人数

SUG引导ARPU值:由SUG引导进入搜索结果页的GMV/SUG点击人数

以上指标一般通过埋点来采集相关数据,并且进行对应指标的计算。

上面大概就是衡量一个SUG做的好坏的常用指标了。

 

 

sug的纠错和挖掘:

挖掘搜索日志:

挖掘近1个月搜索日志,按照每天独立IP进行统计频次,即每个IP用户天搜索同一关键词多次只记一次,用IP过滤也有其局限性,伪IP,动态IP,局域网共享同一公网IP,都会影响到基于IP来判断用户的准确性,你也可以使用sessionId或者userId来判断

统计后搜索词频次之后,抽取搜索频次>100(自定阈值)的词,同时对日志数据进行清洗,过滤去除大于10个字(去除太长的长尾词),单字和符号内容

定时更新suggest词库中。

搜索日志里面包含大量 误输入词:

注意:通过session可以挖掘纠错的序列,下次用户输入错误的query可以进行纠错,将正确的query进行展示

需要在suggest词库里面去掉误输入词,对于搜索频次高的词,可以挖掘其对应的正确词,通过同义词进行查询改写。

误输入词同义词挖掘可以通过挖掘搜索session序列,使用word2vec训练来获取误输入词的同义词,通过分词器同义词设置,对误输入词进行查询改写。

匹配:能够通过用户的输入进行前缀匹配,后缀匹配,中缀匹配,拼音匹配,首字母匹配;

排序:根据建议词的优先级或者搜索热度进行排序(展示可以考虑多样性,不同的意图进行打乱,搜索词占比整个sug词比例,热度等等);

 

注意:前面匹配的Suggest词不够时,最后也可以采用fuzzy查询进行补全,满足10个词的sug推荐

 

elasticsearch:

"preserve_separators": false, 这个设置为false,将忽略空格之类的分隔符

"preserve_position_increments": true,如果建议词第一个词是停用词,我们使用了过滤停用词的分析器,需要将此设置为false

 

 

sug词的推荐要有优先级,先前缀,拼音,后缀,模糊匹配,首字母等等

使用fuzzy模糊查询

fuzzy模糊查询是基于编辑距离算法来匹配文档。编辑距离的计算基于我们提供的查询词条和被搜索文档。

Complete suggest支持fuzzy查询,计算编辑距离对CPU消耗比较大,需要设置以下参数来限制对性能的影响:

prefix_length 不能被 “模糊化” 的初始字符数。 大部分的拼写错误发生在词的结尾,而不是词的开始。 例如通过将 prefix_length 设置为 3 ,你可能够显著降低匹配的词项数量。

2.min_length 开始进行模糊匹配的最小输入长度

3.fuzzy查询只在前缀匹配数不够时启用进行补全

https://blog.csdn.net/weixin_42144086/article/details/115543861

 
posted @ 2022-07-21 18:33  15375357604  阅读(460)  评论(0编辑  收藏  举报