某新闻资讯平台,在内容搜索场景中需要满足业务多样化,个性化的需求,在query改写配置好后,希望在排序阶段进行优化,实现强大的相关性排序效果,提高用户点击率。今天会结合几个典型场景该如何来思考和设计排序因子,和大家详解特征性函数的应用
Query在开放搜索的执行流程
开放搜索排序表达式配置
接下来给大家分析几个常见的排序优化需求:
场景1:查询词和召回字段匹配程度排序优化
案例:当用户搜索“药品公司”,分词数量为2个:药品,公司,在召回结果包含的查询词分词个数相同情况下,如何把title“药品公司”排在“药品杭州分公司”的前面那?
开放搜索解决方案:应用排序相关性特征函数项field_match_ratio, 查询词的分词个数与召回字段的总词组字个数比值,比值越低,排序分越高.
详细用法:https://help.aliyun.com/document_detail/51287.htmlspm=a2c4g.11186623.6.626.64786ab8OOs7hM
场景2: 标签特征权重在“个性化”排序召回中的应用
案例: 当用户搜索"吃鸡",可能是游戏吃鸡内容搜索,也可以能是新闻内容搜索,如何把用户更感兴趣的游戏内容排到前面那?
开放搜索解决方案:匹配文档和请求中的标签tag_match 函数,用于对查询语句和文档做标签匹配,使用匹配结果对文档进行算分加权;
• 通过长时间的积累能获知每个用户的兴趣标签,可以和内容/商品标签对应,做到“个性化”排序
• 实现对用户感兴趣的帖子加权,把用户更感兴趣的内容/商品排到前面;
假设文档内容共有如下10类型的标签:
1-财经, 2-科技 ,3-体育 ,4-娱乐 ,5-时尚, 6-教育 ,7-旅游 ,8-游戏 ,9-科普 ,10-医疗
如果想将“8-游戏”标签的文档在前面展示,可设置tag_match函数
适用场景:此函数不仅试用于内容搜索场景,同样适用商品搜索场景,满足个性化商品排序
其他案例和用法:https://developer.aliyun.com/article/775488
场景3:根据查询词在title和body的紧密程度排序优化
案例:搜索"黑色幽默",意图是搜索title“周杰伦《黑色幽默》的歌曲”,但在数据库里有条文本body记录为“下雨了,天空是灰黑色的,即便幽默的人此时也比较烦闷”,导致这条记录也被召回,并且排序也比较靠前, 如何将title字段的紧密度在排序中起主导作用?
开放搜索解决方案:为了使这条不太相关的body记录排序靠后,title字段排序靠前, 可以使用fieldterm_proximity函数获取文档紧密程度的得分来实现. 此函数用来表示关键词分词词组在字段上的紧密程度,紧密度越高,排序分越高。精排公式写为:fieldterm_proximity(title)*10 + fieldterm_proximity(body)
详细用法:https://help.aliyun.com/document_detail/51281.html?spm=a2c4g.11186623.6.621.3c0938de1kdUfp
场景4:内容时效性
案例:用户对时间的敏感度越高,那么越希望得到新的内容,内容的时效性和整体的满意度直接相关,如何优化排序配置,满足内容排序的时效性敏感度?
开放搜索解决方案:运用函数timeliness--时效分,用于衡量文档的新旧程度, 值越大表示时效性越好
详细用法:https://help.aliyun.com/document_detail/51270.html?spm=a2c4g.11174283.6.636.121f5a19EWuQQM
场景5:关键词(分类、标题、作者)相关性排序优化
案例1:搜索“子女”,优化前排序结果“女装靴子/裤子/叶子”排在“预测子女性别”的前面,如何运用排序表达式优化把"子女"最相关的内容排序靠前那?
案例2: 在精排中对title和body进行文本算分,权重比为3:1
开放搜索解决方案:在精排中进行文本算分,关键词在字段上的文本匹配度-text_relevance函数,匹配度越高,分值越高,排序越靠前.
详细用法:https://help.aliyun.com/document_detail/51280.html?spm=a2c4g.11186623.6.635.287e42c3whTeg9
以上就是阿里云开放搜索内容行业"排序表达式及特征函数”的应用案例,如果您对搜索与推荐相关技术感兴趣,欢迎加入钉钉群内交流~
【开放搜索】新用户活动:阿里云实名认证用户享1个月免费试用https://free.aliyun.com/product/opensearch-free-trial