标签权重在个性化搜索排序中的最佳实践

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介: 本文通过阿里云开放搜索中的tag_match 函数的标签匹配应用,详细解读标签权重在搜索排序召回中的业务价值

个性化搜索需要满足:

• 具备较强的语义理解能力,精准命中搜索需求;
• 满足搜索关键词和内容的多样性特点,可根据用户行为优化排序,实现个性化搜索;
例如:

  1. 搜索“吃鸡”,可能是游戏吃鸡内容搜索,也可以能是新闻内容搜索;
  2. 用户点赞过的店铺优先排序出现;

开放搜索tag_match 函数在个性化搜索中的应用

功能介绍:
tag_match : 用于对查询语句和文档做标签匹配,使用匹配结果对文档进行算分加权。涉及query和文档匹配的很多需求都可以使用或者转化为tag_match来满足,对实现搜索个性化需求尤其有用。
产品文档:https://help.aliyun.com/document_detail/51259.html?spm=a2c4g.11186623.6.618.28f833251UOr7V

适用场景

内容搜索:
一个大型的综合性论坛,帖子可以被打上各种各样的标签(搞笑,体育,新闻,音乐,科普..)。我们在推送给开放搜索的文档中,可以为每个标签赋予一个标签id(例如搞笑-1, 体育-5, 新闻-3, 音乐-6..), 然后通过一个tag字段存储这些标签。 如果我们对帖子做过预处理,甚至能得到每个帖子每个标签的权重。

例如:

  1. 一个搞笑体育新闻的帖子可以得到搞笑的权重为0.5,体育的权重为0.5,新闻权重为0.1,则这个帖子的tag字段的值为[1 0.5 5 0.5 3 0.1]对会员用户,通过长时间的积累,我们能获知每个用户的兴趣标签。
  2. 用户是nba_fans,对体育和搞笑很感兴趣,他对应的体育和搞笑标签的权重分别为0.6和0.3。那么这个用户查询时,我们就可以通过kv_pairs子句把这个信息加到query里面。假如这个kv_pairs子句名字为user_tag, 那么nba_fans的user_tag的值5=0.6:1=0.3。这样,我们只要在精排表达式中配置了tag_match(user_tag, tag, mul, sum), 我们就能够实现对用户感兴趣的帖子加权,把用户更感兴趣的帖子排到前面。
  3. nba_fans搜索到上面那个帖子时,搞笑和体育这两个标签能够匹配到。通过指定kv_op参数为mul,我们会把query和doc中的值相乘,他们各自的计算分数分别为(体育:0.5 0.6 = 0.3, 搞笑:0.5 0.3 = 0.15)。通过指定merge_op参数为sum,我们会把体育和搞笑的分数加和(0.3+0.15 = 0.45),这个加和的分数会加到最终的排序分数上。这样,我们就能够实现了对这个用户感兴趣帖子的排序加权。

商品搜索:
商品可以具有多个属性标签,例如1表示年轻人(年龄)、2表示中年人(年龄)、3表示小清新(风格)、4表示时尚(风格)、5表示女性(性别)、6表示男性(性别)等。

  1. 假设我们只想表示商品有没有某个标签,不想区分哪个标签更重要。这个标签通过options字段来保存。那么年轻时尚女性的衣服的options字段可以表示为[1 4 5], 注意这里只有标签key,没有value。用户也都有自己的属性标签,和商品标签对应。例如年轻女性用户,历史成交中多购买小清新风格衣服。这该用户的查询可以写为user_options=1:3:5。注意这里kv_pair中也是只有标签key,没有value的。
  2. 要实现对符合用户标签喜好的商品加权,我们可以在formula中使用tag_match(user_options, options, 10, sum, false, false)。这里我们通过user_options和options指定了query和doc的标签信息。kv_op设为常数10,表示只要有标签匹配到,那么匹配的计算结果就是10。has_default为false,表示我们不需要初始值。doc_kv为false,表示我们doc中只存储了key信息,没有value。这样,上面的年轻女用户查询到上面的衣服时,女性和年轻两个标签能够匹配上,这两个标签的计算结果都是10。通过sum这个merge_op,能够得到这件商品的最终加权分数为20。通过这种方式,即使我们没有标签的权重信息,也能够实现对匹配到的文档做排序加权。

标签权重优化案例实践:

假设文档内容共有如下10类型的标签:
1-财经, 2-科技 ,3-体育 ,4-娱乐 ,5-时尚, 6-教育 ,7-旅游 ,8-游戏 ,9-科普 ,10-医疗

案例1:关键词相同,但是标签不同的title
如图,搜索“吃鸡”出现两篇doc,但是二者的类型不同,分别是1-财经、8-游戏;

image.png
实践应用
如果想将“8-游戏”标签的文档在前面展示,可设置tag_match函数

image.png
以下分别演示配置在排序表达式或sort子句中的方法:
• 排序表达式展示的结果:

image.png
• sort子句展示的结果:

image.png
案例2:多标签综合得分展示(可针对用户的个性化推荐)
如图,搜索“运动员",在一级标签相同的情况下,需要匹配二级标签的得分

image.png
实践应用
如果想优化二级标签,把“10-医疗”标签的文档在前面展示,可设置tag_match函数
配置在排序表达式或sort子句中的方法:

image.png
• sort子句展示的结果:

image.png
案例3:多标签同类型,不同得分
如图,搜索“运动员",红框展示的内容,都同属于同样的标签,但是每个标签的打分不同;

image.png
实践应用
如果想根据标签整体的综合分进行排序,可设置tag_match函数

演示配置在排序表达式或sort子句中的方法:

image.png
• sort子句展示的结果:

image.png


如果你想与更多开发者们进行交流、了解最前沿的搜索与推荐技术,可以钉钉扫码加入社群~

image.png

【开放搜索】新用户活动:阿里云实名认证用户享1个月免费试用~https://www.aliyun.com/product/opens

目录
相关文章
|
5月前
|
存储 人工智能 自然语言处理
构建智能AI记忆系统:多智能体系统记忆机制的设计与技术实现
本文探讨了多智能体系统中记忆机制的设计与实现,提出构建精细化记忆体系以模拟人类认知过程。文章分析了上下文窗口限制的技术挑战,并介绍了四种记忆类型:即时工作记忆、情节记忆、程序性记忆和语义知识系统。通过基于文件的工作上下文记忆、模型上下文协议的数据库集成以及RAG系统等技术方案,满足不同记忆需求。此外,高级技术如动态示例选择、记忆蒸馏和冲突解决机制进一步提升系统智能化水平。总结指出,这些技术推动智能体向更接近人类认知的复杂记忆处理机制发展,为人工智能开辟新路径。
420 5
构建智能AI记忆系统:多智能体系统记忆机制的设计与技术实现
|
Linux
Mac使用sz/rz
Mac使用sz/rz
442 0
|
12月前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
3月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
190 2
|
8月前
|
自然语言处理 算法 机器人
2025年热门智能客服机器人评测:哪款更好用?
2025年,智能客服机器人市场竞争激烈,功能日益强大。主要品牌如合力亿捷、阿里云、华为云、京东京小智和小米商城等纷纷推出具备精准语音识别、语义理解、多渠道接入等功能的产品,广泛应用于电商、金融、零售等领域,显著提升客服效率与客户满意度,降低企业运营成本。
486 0
|
机器学习/深度学习 人工智能 编解码
AI文生图模型
8月更文挑战第16天
|
负载均衡 关系型数据库 MySQL
MySQL 主主复制与主从复制对比
MySQL的主主复制和主从复制是两种常见的数据库复制配置方式,各有优缺点和适用场景。以下是对这两种复制方式的详细对比: ### 主从复制 (Master-Slave Replication) **特点:** 1. **单向复制**:数据从主服务器复制到一个或多个从服务器。从服务器只能从主服务器接收数据更新,不能向主服务器发送数据。 2. **读写分离**:主服务器处理写操作(INSERT、UPDATE、DELETE),从服务器处理读操作(SELECT),可以分担读负载,提高系统的整体性能。 3. **数据一致性**:数据在主服务器上是最新的,从服务器上可能会有一定的延迟。 **优点:**
819 1
|
安全 Java Maven
MapStruct使用教程2024(高级版)
MapStruct使用教程2024(高级版)
|
消息中间件 监控 数据可视化
Airflow基本概念
Airflow基本概念
416 0
|
JavaScript 前端开发
踩坑-Uncaught Error: Bootstrap's JavaScript requires jQuery
踩坑-Uncaught Error: Bootstrap's JavaScript requires jQuery
266 0