阿里最新研究:当ChatGPT 遇上推荐系统,遭遇滑铁卢

文 | 小戏

在 GPT-4 屠榜了 NLP,SAM 零样本分割一切让 CV 消失后,不知道大家会不会有好奇 AI 三大现实应用的另一边岁月静好的推荐系统有没有感受到来自遥远大模型带来的巨大压力。

alt

尽管 ChatGPT 的训练过程似乎没有对推荐系统太多的兼容,但是就现在 ChatGPT + 一切的大势来看,ChatGPT 把手伸到推荐系统也是或早或晚的事。

不过先说一个好消息,在阿里团队针对 ChatGPT 应用于推荐系统的细致测评后,终于,推荐算法工程师的工作看起来是保住了ChatGPT 在许多任务上的表现都差强人意,ChatGPT 强大的泛化能力似乎在推荐系统中暂时失效了

但是,总还带着一个但是,研究也发现,当不使用传统的评价方法,而采用真人评估时,ChatGPT 似乎更能真正理解提供的信息并生成更清晰、更合理的结果,并且这还是在完全没有使用 ChatGPT 在专门的推荐数据集上训练得到的结果。

这似乎暗示了虽然现在 ChatGPT 还不能向对 NLP 那样颠覆现有的研究范式,但是这类大规模语言模型在推荐系统中似乎未来可期……那么就一起来看看今天的这篇工作吧!

论文题目:
Inducing anxiety in large language models increases exploration and bias
论文链接:
https://arxiv.org/abs/2304.10149

各个大模型的研究测试传送门

阿里通义千问传送门: https://tongyi.aliyun.com/chat

百度文心一言传送门: https://yiyan.baidu.com/

ChatGPT传送门(免墙,可直接测试): https://yeschat.cn

GPT-4传送门(免墙,可直接测试,遇到浏览器警告点高级/继续访问即可): https://gpt4test.com

从协同过滤到 ChatGPT

简单回想一下推荐系统近年来的发展,从最开始的协同过滤,到后来将深度学习技术引入推荐系统,衍生出基于内容的推荐、基于知识的推荐等等。但是,这些方法共同具有的显著制约在于它们都是特定于任务的,因此需要特定的数据进行训练。而过去 NLP 所说的范式转移,恰恰是构建了不同的预训练模型,显著增强了这些模型的泛化能力。

alt

因此,最近一段时间,也有不少关于推荐系统的预训练语言模型出现,譬如 P5 以及 M6-Rec 。伴随着这几个月 ChatGPT 风头正起,ChatGPT 在句子重述、情感分析及机器翻译等任务上都颇具竞争力,那一个随着而来的问题就是 ChatGPT 是否能在经典的推荐任务中保持良好的性能呢?这篇文章就此展开。

整个将 ChatGPT 用于推荐的工作流如下图所示,针对不同的推荐任务,论文设计了一系列不同的 Prompt,将 ChatGPT 作为一个黑盒式的推荐器,通过一步为保证输出稳定性的输出精炼步骤,得到最终推荐结果。区别于传统的推荐系统,在使用 ChatGPT 的整个过程中,都没有对 ChatGPT 进行微调,而直接考验其的泛化能力。

alt

Prompt 设计

针对不同任务的 Prompt 主要由三部分构成,分别是任务描述(Task Description),行为注入(Behavior Injection)以及格式指示(Format Indicator)。其中任务描述用来将推荐任务表述为自然语言处理任务,行为注入被设计用来捕捉用户的偏好与需求,格式指示则用于规范输出格式,使得推荐结果更易理解和评估。特别的,由于 ChatGPT 生成模型的特质,其回复生成过程被人为的引入了随机性,这一点在推荐系统中将会导致推荐的输出结果不可靠,从而使得评估推荐系统的表现出现困难。因此,论文设计了输出精炼(Output Refinement)模块,对输出进行格式检查,如果输出通过了格式检查,则代表其格式可以用于后续评估工作,而如果没有通过,则基于规则进行格式修正,直到满足格式要求为至。

alt

具体而言,针对五种经典的推荐系统任务,其 zero-shot 与 few-shot Prompt 设计如下:

正确率导向型任务

alt
  • 评分预测:评分预测旨在预测用户对特定项目的评分,如上图所示,黑字部分代表任务的描述,评分预测被翻译为“How will user rate this product_title?”,灰字表示当前的输入,即要求用户评分的项目,红字表示针对输出的格式要求,在评分预测任务中,要求有“1 being lowest and 5 being highest”和“Just give me back the exact number a result”;
  • 序列推荐:序列推荐任务要求系统根据用户过去的序贯行为预测其之后的行为,如上图所示,论文为该任务设计了三种 Prompt 格式,分别是基于交互历史直接预测用户的下一个行为,从候选列表中选出可能的下一个行为以及判断指定行为成为用户下一个行为的可能性;
  • 直接推荐:直接推荐指通过利用用户评分或评论信息直接显示反馈推荐的任务,论文将这一任务的 Prompt 设计为从潜在的候选项中选择出最适合的一项;

生成导向型任务

alt
  • 解释生成:解释生成是为用户提供解释以澄清为什么会推荐此项的推荐系统任务,具体地,如上图所示,论文要求 ChatGPT 生成一个文本解释,以阐明解释生成过程,对每个类别,可以包含如提示词或星级评分等的辅助信息;
  • 评论总结:旨在使用推荐系统自动生成用户评论摘要。通过输入用户的评论信息,Prompt 提示推荐系统总结评论的主要含义。

测评!ChatGPT 到底是不是一个好的推荐器?

为了测评 ChatGPT 的推荐能力,论证在亚马逊的真实数据集 Beauty 上进行了广泛的实验,旨在回答如下三个问题:

  1. 与现有的推荐模型相比,ChatGPT 表现究竟如何?
  2. Few-shot 对 ChatGPT 有何影响?
  3. 真实人类如何评价 ChatGPT 的推荐?

具体而言,论文将商品标题作为元信息,收集用户点击或互动过的 n 件物品(n=10)和 k 条历史记录(k=3),隐式学习用户的兴趣。对于序列推荐任务的三种任务描述,第一种通过论文按顺序输入用户的历史交互物品,并让 ChatGPT 直接预测进行实现,第二种在评估中设置正样本数为 1,负样本数为 99,从而形成一个长度为 100 的候选列表,用于 ChatGPT 进行选择的任务。第三种则使用 Bert 计算标题向量与所有向量的相似度,选择相似度最高的物品作为候选。而对于生成型任务,论文对每个任务采样了一些不同方法的结果,由人工手动进行评分和排名。

评分预测

alt

评分预测主要使用 RMSE(Root Mean Square Error,RMSE) 和 MSE(Mean Absolute Error,MAE) 进行评估,如上表所示,对比 MF 和 MLP 方法,可以看出,使用 few-shot 的 ChatGPT 评分优于两种传统方法,体现了这类大规模语言模型在这种预测任务中的良好性能

序列推荐

alt

序列推荐任务主要使用 HR@k(top-k Hit Ratio,HR@k)以及 NDCG@k(top-k Normalized Discounted Cumulative Gain,NDCG@k)进行评估。对比传统模型(传统深度学习推荐模型及预训练推荐系统模型),可以明显发现在 zero-shot 下 ChatGPT 表现几乎全线低于所有基准模型,而当使用了 few-shot 时,尽管看得出来性能有所提示,在 NDCG@5 中超过了 GRU4Rec,但是依旧明显弱于其他所有传统模型。对于这一结果,论文猜测可能是由于 ChatGPT 输入字符的限制,导致推荐物品主要以标题作为表示,这使得物品之间的关系无法被有效表示,这对推荐任务来说可能是至关重要的。同时,ChatGPT 也有可能生成不存在于数据集中的项目标题,但是论文作者表示,尽管他们已经使用相似性匹配将预测标题映射到了数据集中现有的标题中,但是这种映射并没有带来显著的增益。

直接推荐

alt

直接推荐使用了与序列推荐相似的评价标准,从结果可以看到,当使用 zero-shot 时,推荐性能依然显著低于传统方法,这可能源于给 ChatGPT 的信息不足,导致无法捕捉用户的兴趣。当然,虽然使用了 few-shot 方法对模型性能带来了提升,但是依然没有打败传统方法

而更有意思的一点是,论文发现 ChatGPT 的推荐似乎非常依赖了构建的候选池中项目的顺序。在极端情况下,当正确值被放在候选池中的第一个位置时,ChatGPT 的评估指标比打乱时高于十倍。这一点似乎表明 ChatGPT 进行推荐时更多的参考的答案 A,B,C,D 的位置,并且带有偏差的得出了越靠前的选项越重要,换言之 ChatGPT 似乎通过大量刷题,没有学到试卷里的要考察的真正知识,而是学到了选 A,B 的概率要大于选 C,D 的概率这一信息,这个错误的知识会为 ChatGPT 在许多任务的应用中带来巨大的麻烦,也为 ChatGPT 的智能性提出了挑战

解释生成

alt

对于生成类任务,论文使用了双语替换评测(Bilingual Evaluation Understudy,BLEU-n)以及 n-gram 召回导向评价(Recall-Oriented Understudy for Gisting Evaluation,ROUGE-n)来评估解释生成和评论总结任务。从指标的角度来看,以 P5 为代表的预训练推荐系统似乎表现更加出色,但是作者在考察来了 ChatGPT 生成的句子后,如下图所示,可以看到 ChatGPT 的生成能力十分出色,因此作者开始思考是否是传统的评价指标带来了这种评价偏差

alt

论文认为,由于 P5 的学习方式更加专注于文本结构与语法规则,因此似乎表现更加出色。而 ChatGPT 由于其对话生成的特性,更加考虑了语言交互和多样性,因此可能并不受这些传统的指标的青睐。而如果引入真实人类进行评价,如下图所示,我们可以看到,尽管四位人工注释者的结果有一定程度的主观性,但得分分布相对一致,普遍认为 ChatGPT 生成的解释更清晰更合理,甚至优于基准解释。与此同时,P5 的表现最差,其生成结果往往得出并不流畅的句子

alt

评论摘要

类似于解释生成,论文首先对比在 BLEU 和 ROUGE 指标下不同模型的生成结果。

alt

显然,在传统指标中,依然是 P5 占优,通过考察 P5 的生成结果,发现 P5 的摘要经常性的会遗漏关键词,尽管符合句法逻辑,但是这类摘要却忽略了评论中最有意义的信息。而 ChatGPT 则通过深入地理解和总结生成了更有效的摘要

alt

通过进行人类评估也可以发现,所有注释者一致认为 ChatGPT 表现最佳,远超基准和 P5。

alt

总结

这篇论文通过构建 ChatGPT 用于推荐任务的工作流,横向对比评估了 ChatGPT 在不同推荐任务中的性能,可以看到在评分类、生产类的任务中,ChatGPT 都取得了领先,这大概率源于 ChatGPT 自身学习时具有的独特能力。

但是 ChatGPT 在真正“推荐”上,由于其输入字符等的局限性,导致表现普遍差于现有的方法,甚至使用 ChatGPT 的推荐,还暗含了许多没有被注意到的内部偏差,这些都对 ChatGPT 在推荐中的应用埋下隐患**。

但是,现在的 ChatGPT 还是一个完全没有经过微调,也没有在特定数据集上进行学习过的模型,而其蕴含的对顺序偏好的误差,一方面表明 ChatGPT 似乎不那么聪明,但另一方面又能代表 ChatGPT 强大的归纳统计能力。这篇论文很清晰的点出了 ChatGPT 用于推荐的局限性,但是也可以开启人们对于这类强大模型用于推荐的讨论。

ChatGPT 的强大能力是令人感到欣喜的,尽管这一阵子写了不少 ChatGPT 取代这取代那的文章,但是与其说是取代,倒不如说是 ChatGPT 的出现开始倒逼我们不断去思考去重新定义我们所处的行业、所做的工作、所用的技术。倒也不用担忧未来 GPT-78910 对我们生活林林总总的影响,至少目前,归根结底,ChatGPT 还只是一个背答案的大小孩而已。

本文由 mdnice 多平台发布

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

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

相关文章

大学四年到现在的阿里技术专家,我做了啥?

你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 上已经收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习&#…

阿里巴巴达摩院通义千问【附申请链接】阿里版ChatGPT

🥑 Welcome to Aedream同学 s blog! 🥑 文章目录 报名测试实际体验效果 阿里云作为数一数二的全球云平台,阿里的大语言模型通义千问还是值得期待的,凭借强大的算力支持还是有机会赶上人工智能发展浪潮。 早前阿里巴巴达摩院关于人…

大学四年到阿里技术专家,我是怎么走过来的

点赞再看,养成习惯,微信搜索【三太子敖丙】我所有文章都在这里,本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点,文末有福利。 青铜-万恶之源 《计算机基础》,这是所有读者大学…

助你成为专业终端人,阿里巴巴第三届终端练习生计划开启报名!

​随着科技进步、技术演进,互联网基础设施越来越完备,终端设备的规模&类型爆炸式增长,当下前端技术与移动技术也有了更深的相互融合,终端技术体系(前端技术 & 移动技术)应运而生。 阿里巴巴终端委员…

ChatGPT将上线新功能!OpenAI现场演示官方版AutoGPT,创作画画发推一条龙!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉】微信技术交流群 丰色 明敏 发自 凹非寺转载自:量子位(QbitAI) OpenAI官方AutoGPT,要来了! 就在Auto…

用ChatGPT编写测试大纲和测试用例

问: 当用户未支付时,不需要数据上报;当用户支付成功时,需要数据上报。请以这个逻辑帮我写测试用例 ChatGPT: 好的,根据您提供的逻辑,我可以为您列出一些测试用例: 1.确认在用户未…

chatgpt赋能python:Python人机对战:探究最优解决方案

Python人机对战:探究最优解决方案 简介 Python是一种开源的高级编程语言,已经广泛应用于网站开发、数据分析、科学计算、系统运维等领域。但是,Python也是一种非常适合进行人机对战的语言。 Python人机对战可以帮助我们提高编程技能、锻炼…

chatgpt赋能python:Python打折促销-最优解决方案

Python打折促销 - 最优解决方案 作为一个有10年python编程经验的工程师,我想分享一些关于Python打折促销的最优解决方案。 为什么使用Python来处理打折促销? Python是一种高级语言,其轻量级和易于学习的特点使其成为数据科学、机器学习和人…

chatgpt赋能python:Python数据拟合:用最优方案处理大数据

Python数据拟合:用最优方案处理大数据 Python语言在数据处理和分析方面非常灵活且功能强大,是拟合大量数据集的一种快速、可靠的方法。拟合是机器学习和数据分析中一项重要的任务之一,其目的是建立一个数学模型来描述现实世界中的现象。拟合…

软件输入中文出现乱码

当软件出现输入中文乱码时,而安装过程没错时,可以采取以下措施 1、点开设置 2、选择时间与语言 3、选择区域 4、点开区域的右上角 5、选择区域 6、点管理,然后更改系统区域设置 7、把勾选了提供全球语言支持去掉 8、重启看看行不行

win7英文版很多软件中文显示乱码解决方案

在win7英文版下,很多软件中文字体均显示问号,通过如下解决方案,经测试,可以完美解决: 一、通过控制面板->时钟、语言和区域,打开区域和语言面板; 二、修改如下配置: 1、区域和语言…

英文版WIN7系统中打开软件中文乱码解决办法

在win7英文版下,很多软件中文字体均显示问号,通过如下解决方案,经测试,可以完美解决: 一、 通过控制面板->时钟、语言和区域,打开区域和语言面板 二、修改如下配置: 1、区域和语言->格式…

英文系统中文乱码的解决

Windows7英文系统显示中文乱码的解决 Windows7英文系统显示中文乱码的解决 很多安装Windows7英文操作系统的朋友会显示中文乱码,特别是在安装了中文程序的时候,那么如何解决呢? 如果我们所使用的操作系统是英文版的,那么会发现…

解决电脑解压中文乱码问题

打开控制面板 点击图中的 更改日期、时间和数字格式 点击 管理 然后选择 更改系统区域设置 有问题的情况下,Beta版是被勾选的,取消勾选 点击确定,系统会提醒重启,重启之后,解压将不出现乱码

电脑文字乱码

解决方法 1、在开始菜单中打开控制面板,找到“时钟和区域”这一项。 2、然后选择“格式”这个选项卡,在这个界面,把格式设置为“与window显示语言匹配”。 3、接着再打开“管理”选项卡。 4、已经打开“管理”这个选项卡后,在“…

部分软件安装界面出现乱码(奇形怪状的问号等)/文件打开异常/文件无法正常打开

问题示例(下面是我个人遇到的类似问题) 以下是出现的乱码示例,分别是phpstudy和CAJViewer的安装界面,同时还遇到CAJViewer打开论文失败(“文件无法正常打开”)的情况 问题分析与解决(分析1失败&…

Windows 控制台cmd中文乱码的解决办法

我本机的系统环境: OS Name: Microsoft Windows 10 专业版 OS Version: 10.0.14393 N/A Build 14393 有时在cmd中输出的中文乱码 解决办法如下:在cmd中输入 CHCP 65001 按Enter键,然后查看不再乱码 注:CHCP是一个计算机指令&am…

Windows批处理:中文显示乱码解决方法

echo offecho 这是一个临时的测试批处理pause这是一个测试用的批处理,执行后,显示如下: E:\Workspace\SourceCode\bat>锘? 锘? 不是内部或外部命令,也不是可运行的程序 或批处理文件。 杩欐槸涓€涓复鏃剁殑娴嬭瘯鎵瑰鐞…

电脑出现乱码的原因以及解决方法

在日常使用电脑的过程中,经常会遇到电脑出现乱码,那么为什么会出现乱码呢?出现乱码又该怎么解决呢?下面我们一起来了解一下。 出现乱码的原因 系统乱码:主要是Windows中显示乱码,比如菜单、桌面、启动界面…

【疑难杂症】 打开文件 出现中文汉字乱码 解决办法(详细)

01 问题描述 打开文件发现如下图等情况: 02 问题分析 2.1 普及一下编码格式的含义 列出五种常见的 ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符…