基于ChatGPT+词向量/词嵌入实现相似商品推荐系统

最近一个项目有个业务场景是相似商品推荐,给一个商品描述(比如 'WIENER A/B 7IN 5/LB FZN' ),系统给出商品库中最相似的TOP 5种商品,这种单纯的推荐系统用词向量就可以实现,不过,这个项目特点是商品库巨大,有19万余商品,且商品相似度高(都是肉类制品),所以希望引入ChatGPT,利用大语言模型的推理能力进一步提高推荐准确率。
讨论了一下,决定用向量相似度计算初筛+ChatGPT优选。

处理思路:

1. 词向量相似度计算初筛

        a. embedding 如何获取?
                直接调用微软Azure Ada Embedding api,质量高,价格低,并且可以直接获取句子embedding。
        b. 19万商品embedding如何存储并检索?
                使用Redis存储,Redis可以做内存KNN,并有版本对向量计算做了优化(似乎叫STACK)。
        c.  商品描述中包含大量缩写,歧义问题严重,直接获取embedding质量很低,如何解决?
                使用ChatGPT扩展语义,类似以下prompt: 

                已知下面是关于一种百货产品的描述,描述中可能包含缩写,请推测是何种品类的商品,给出三种可能:WIENER A/B 7IN 5/LB FZN,并将答案按以下格式输出[答案1:xx,答案2:xx,答案3:xx]
                以上prompt喂给ChatGPT,可以得到以下输出:
                根据描述,这种百货产品可能是一种冷冻肉制品,下面是三种可能的商品:\n\n1. 热狗:根据描述中出现的\"WIENER\"这个词,可能是指热狗,这是一种由碎肉、淀粉、香料等原料制成的肉制品,通常是热狗面包的主要馅料之一。n2. 香肠:由于描述中出现了7IN和5/LB这两个词,可能是指长度为7英寸,每磅5个的香肠,这是一种由碎肉、淀粉、香料等原料制成的肉制品,通常是早餐的主食之一。\n3. 火腿肠:这是一种由肉类和淀粉等原料制成的肉制品,通常是热狗的替代品,由于描述中没有具体指明该产品的形状,因此这也是一种可能的商品。\n\n[答案1:热狗,答案2:香肠,答案3:火腿肠]
                可以看到回答中的语义比原有描述 'WIENER A/B 7IN 5/LB FZN' 清晰了很多,试验下来推荐准确率比直接用原有描述高了很多,但是回答中仍然包含很多“废话”——介词/连词/符号其实都没有什么语义在里面,最后比较下来,直接用三种可能的商品名(比如'[答案1:熏肠,答案2:烤肠,答案3:火腿]')生成embedding来计算相似度是效果最好的。

2.ChatGPT优选
         a. 为什么优选?
                词向量相似度这种方法,对某个起到决定性作用关键词的判断能力是不足的,比如下面两种商品
                'WIENER A/B 7IN 5/LB FZN CS'
                'WIENER A/B 7IN 5/LB FZN EA' 
                毫无疑问,这两个描述的向量相似度是极高的,但这实际不是同种商品,因为他们的销售规格不同,CS是按箱销售,EA是按件销售,如果用户输入的描述中带有CS,必然是希望模糊检索按箱销售的商品。如果让人来检索,肯定是能判断这点的,现在就让ChatGPT来替代人完成这步优选,让GPT从相似度得到的TOP N件商品中,选出5件最靠谱的商品。
                我们观察了正确商品在相似度排名结果中的分布情况,大部分在TOP5中,小部份在TOP6 - TOP20中,正确商品分布在TOP20之外的情况并不多,因此,我们将TOP N中的N设定为20。
        b.  优选prompt
                使用类似如下prompt,ChatGPT会格式化返回将它认为与给定描述最相似的5种商品的id。

                It is known that the description of product A is '%s'. Now there are %s products with serial numbers starting from 0. Their descriptions are:  '%s'. Abbreviations may be included in the above descriptions, please select %s product numbers that are most likely to be the same product as Product A, and strictly output the product serial numbers in the following template [xx, xx, xx, ...]

3. 其他
        可以看到流程图上,除了上述两个主要步骤,还有两步,分别是相似度阈值筛选和二分类模型。我们在实践中不是直接取相似度TOP20商品进入下一步,而是给定一个相似度阈值,比如0.8,将所有相似度高于0.8的商品选出来,这导致三种结果——进入下一步的商品很少/适中/很多,前两种情况没什么影响,直接填进prompt喂给GPT择优就行,但如果是第三种情况,那GPT的推理能力会大大下降——GPT从20件商品中选5件商品比从100件商品中选5件商品要靠谱,因此为这种情况加入一个分类模型缩减备选商品规模。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/154974.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海亚商投顾:沪指探底回升 华为汽车概念股集体大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日探底回升,早盘一度集体跌超1%,随后震荡回暖,深成指、创业板指…

idea 插件推荐(持续更新)

文章目录 Material Theme UIcodeium(建议有梯子的使用)Key Promoter XCodeGlanceRainbow BracketsMarkdown NavigatorRestfulToolkitString Manipulation Material Theme UI 谁不想拥有一款狂拽炫酷 吊炸天 的编码主题呢,给你推荐Material Theme UI Plugin Material Theme UI是…

地产三维实景vr展示的功能及特点

随着科技的不断发展,VR(虚拟现实)技术也越来越成熟。VR技术的广泛应用,已经逐渐渗透到各个领域,其中引人注目的就是虚拟展馆。虚拟展馆是一种利用VR技术构建的线上展示空间,让观众可以在家中就能参观展览,带来了极大地…

那些年,我们一起发现的Bug

一、背景 在这篇文章中,分享一些自己在工作中或别人发现的一些常见Bug,与大家共同成长~ 二、常见Bug分类 1、前后命名不一致 举个例子 接口入参中的名称是:aslrboot Java代码中使用的名称是:aslrBoot Codis中存储的名称是&…

[硬件基础]-双稳态多谐振荡器配置

双稳态多谐振荡器配置 文章目录 双稳态多谐振荡器配置1、概述2、双稳态多谐振荡器的内部运行原理 在上一篇文章中,我们深入了解了555定时器在单稳态模式下的内部工作原理。 如果您已经理解了上一篇文章,那么本文对您来说将会非常简单。 我们将研究 555 定…

京东数据接口|电商运营中数据分析的重要性

在电商运营中,数据分析是非常重要的一环,它可以帮助电商企业更好地了解市场、了解消费者、了解产品、了解销售渠道等各种信息,从而制定更为科学有效的运营策略,提高销售效益。 数据方面用户可以直接选择使用数据接口来获取&#…

95740-26-4|用于体内DNA合成的探针F-ara-EdU

产品简介:(2S)-2-Deoxy-2-fluoro-5-ethynyluridine,一种用于体内DNA合成的探针,其毒性比EdU和BrdU都小。当需要延长细胞存活时间和不受干扰的细胞周期进展时,非常适合进行代谢DNA标记。 CAS号:95740-26-4 分子式&…

AIGC|利用大语言模型实现智能私域问答助手

随着ChatGPT的爆火,最近大家开始关注到大语言模型(LLM)这个领域。像雨后春笋一样,国内外涌现出了很多LLM。作为开发者,我们通常会关注LLM各自擅长的领域和能力,然后思考如何利用它们的能力来解决某个场景或…

ARM day5

三盏灯流水 .text .global _start _start: 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<4)STR R1,[R0] 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<5)STR R1,[R0] 2.LDR R0,0X50006000LDR R1,[R0]BIC R1,R1,#(0X3<<20)ORR R1,R1,#(0X1<<…

【数据结构】二叉树的顺序结构及实现

目录 1. 二叉树的顺序结构 2. 堆的概念及结构 3. 堆的实现 3.1 堆向下调整算法 3.2 堆的创建 3.3 建堆时间复杂度 3.4 堆的插入 3.5 堆的删除 3.6 堆的代码实现 4. 堆的应用 4.1 堆排序 4.2 TOP-K问题 1. 二叉树的顺序结构 普通的二叉树是不适合用数组来存储的&…

【算法-动态规划】不同路径

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

智慧电力物联网系统引领电力行业数字化发展

智慧电力物联网系统是以提高用户侧电力运行安全、降低运维成本为目的的一套电力运维管理系统。综合分析采用智慧物联网、人工智能等现代化经济信息网络技术&#xff0c;配置智能采集终端、小安神童值班机器人或边缘网关&#xff0c;实现对企事业用户供配电系统的数字化远程监控…

linqjs记录

linqjs记录 在LINQ.js中&#xff0c;你可以使用一系列方法来操作数组。以下是一些常见的LINQ.js数组方法&#xff1a; 教程:https://medium.com/swlh/data-manipulation-in-javascript-using-linq-f3759e00aceb 1.Enumerable.From(array)&#xff1a;将普通数组转换为可查询…

GLTF纹理贴图工具让模型更逼真

1、如何制作逼真的三维模型&#xff1f; 要使三维模型看起来更加逼真&#xff0c;可以考虑以下几个方面&#xff1a; 高质量纹理&#xff1a;使用高分辨率的纹理贴图可以增强模型的细节和真实感。选择适合模型的高质量纹理图像&#xff0c;并确保纹理映射到模型上的UV坐标正确…

多媒体播放软件 Infuse mac中文特点介绍

Infuse mac是一款多媒体播放器应用&#xff0c;它支持播放多种格式的视频文件、音频文件和图片文件&#xff0c;并且可以通过AIrPlay将媒体内容投放到其他设备上。Infuse还支持在线视频流媒体播放和本地网络共享&#xff0c;用户可以通过它来访问家庭网络上的媒体文件。 Infuse…

猫头虎带您了解CSDN1024城市开发者大会分会场报名指南(文末送30元优惠券)

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

测试经理应该怎么写测试部门年终总结报告?

年终总结一般对季度、半年度或年度总结的一个整理&#xff0c;我们需要定期对工作中的内容进行定期总结和复盘。将每一次复盘中总结出来的一些收获叠加起来&#xff0c;在针对性地调整一下&#xff0c;就是一份合格的年终总结。具体可以分为如下几个步骤&#xff1a; 1.先把这…

c++视觉处理-----cv::findContours函数和图像进行去噪、平滑、边缘检测和轮廓检测,动态检测图形

cv::findContours cv::findContours 是OpenCV中用于查找图像中对象轮廓的函数。轮廓是对象的边界&#xff0c;通常用于对象检测、分割和形状分析。cv::findContours 函数的基本用法如下&#xff1a; cv::findContours(image, contours, hierarchy, mode, method, offset cv:…

【广州华锐互动】AR轨道交通综合教学平台的应用

轨道交通是一种复杂且精密的系统&#xff0c;涵盖了众多技术和工程学科&#xff0c;包括机械、电气和计算机科学等。对于学生来说&#xff0c;理解和掌握这些知识是一项挑战。然而&#xff0c;AR技术的出现为解决这一问题提供了可能。 通过AR技术&#xff0c;教师可以创建生动、…

国产化技术探究达梦8数据库搭建一主一从双机热备守护Data Watch集群搭建实战windows版本

国产化技术探究达梦8数据库搭建一主一从双机热备守护Data Watch集群搭建实战windows版本 如果是Linux版本达梦8部署则参考笔者另一篇博文 https://blog.csdn.net/nasen512/article/details/133737692此文章针对是windows版本的达梦部署 1、测试环境介绍 服务器类型IP地址操…