前沿重器[57] | sigir24:大模型推荐系统的文本ID对齐学习

前沿重器

栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经是20年的事了!)

2023年文章合集发布了!在这里:又添十万字-CS的陋室2023年文章合集来袭

往期回顾

大模型推荐系统最近似乎有些势头,我也就开始进行了解,今天打算讲解一下这篇文章:

  • 文章标题:IDGenRec: LLM-RecSys Alignment with Textual ID Learning

  • 链接:https://arxiv.org/abs/2403.19021v2

  • github:https://github.com/agiresearch/IDGenRec

这篇文章中了sigir2024,因为自己认为比较有代表性,所以想拿来分享一下。

目录:

  • 想先讲一下这篇文章是怎么发现的

  • 论文思路

    • ID生成器

    • 基础推荐器

  • 模型

    • ID生成器训练

    • 基础推荐器训练

    • 模型选择

  • 实验

    • 个人理解

想先讲一下这篇文章是怎么发现的

感觉这点挺有意思的,所以想先分享一下。最近是留意到google search的一篇不需要微调就能做推荐系统的大模型方案:STAR: A Simple Training-free Approach for Recommendations using Large Language Models,本来看着好好的,结果看到实验部分发现了这个:

9b401d0b8aab06c987feef6a44b9df1d.png

这个IDGenRec在客场以大幅度优势打赢了其他模型,甚至还能赢下论文主场的STAR,所以我自己认为这篇论文的优先级甚至更高于最近的STAR。STAR我应该也会写,不过今天还是先介绍IDGenRec吧。

论文思路

在intro中,作者给出的问题是希望语言模型能够更好的表征特征,常规的利用方式更多只是学习到每个数据集下ID的共现模式,而非真正表征具体特征的文字信息,同时对零样本的推荐能力也受到制约,作者给出的解决方案是,可以考虑把物料或者用户信息表征成可解释的显式文本信息,这样能充分发挥语言模型对文本的表征能力,类似达到下面这样的效果。

64482a38d75483fbb9fef6b9ef2a69aa.png

而放在推荐系统整体的推荐上,则是这个结构:

6e87b50de850c2b3395520bff2bf69fe.png

这里的核心是两个模型,一个是id生成器(ID Generator),一个是基础推荐器(Base Recommender),前者可以把物料(item)转化为一个简单的token表述(也就是论文内说的id),后者则可以结合prompt直接预测出最适合的推荐id,这个id本身的语义毫无疑问也可以用于做后续的向量召回、精排等。

这里有个细节,就是进入基础推荐器的模板,图上给出的模板是"User [user_id] has interacted with items [item1], [item2], ... what is next recommendation?",当然还可以结合很多场景设计不同的模板,"User [user_ID] has purchased items [item_ID], [item_ID], ...,[item_ID]; predict the next possible item to be bought by the user",这个所谓的模板毫无疑问就是现在所说的prompt模板了。

ID生成器

首先就是本文的一大重点——ID生成器,ID生成器,按照前文的这张图可以知道,说白了就是把一串的物料特征转化为显式的特征tokens。

6029c590a9b231f4b428b694352d4e99.png

当然根据不同数据集,作者也给出了大量案例,借此大家可以观察到具体特征规范的输入方式:

d59f0c749f2019b15b16a37294150183.png

这里可以发现一个相比一般推荐系统模型而言很大的优势,就是特征的灵活性,因为语言模型本身能输入的内容非常灵活,因此常规的特征名、特征个数、数据类型的变化,不需要过分影响模型的输入结构,只需要修改这里头的文本内容即可。文章中的格式一般是这样的:"key1:value1, key2:value2, key3:value3..."

按照文章描述,但值得注意的是,ID的生成要满足两个条件:

  • id的长度要合适。

  • id要尽量唯一。

然而这两点无疑是矛盾的,这里作者的解决方案是DBS(Diverse Beam Search, DBS),这个并非论文提出的方案,简单的说就是在生成的时候加入一个多样性的惩罚因子,而与原方案略有不同的是,这里的重复会设置一个最大阈值,如果大于这个阈值仍无法产生唯一ID,则会适当放松条件。

这里我自己的感觉是有几个瑕疵:

  • 首先,ID生成的两个条件。在推荐系统里,唯一的要求似乎没那么高(不是说不用,只是程度这个应该是需要把控的),某种程度上,可能提取一些关键重要的信息来表征这个物料说不定就够了;当然长度这个事应该确实是个问题,毕竟后续这个ID是要输入到推荐器的模板里的。

  • 这个DBS只解决了唯一的问题,但是对长度合适的控制,好像并没有说明白。

基础推荐器

基础推荐器前文已经简单地描述过一遍了,说白了就是把用户id和历史id通过模板拼接起来给到模型预测出最终适合的id就好了,预测方式就是自回归了。

这里再补充一个细节,因为实际任务中要求的是预测出下一个合适点击的结果,推荐系统推的内容无疑只能在给定的库内搜索,转化为抽象问题就是应该在一个受限的数据集中筛选,即“constrained sequence decoding strategy”,具体的操作是构造前缀树,每次的推理解码选择只能在前缀树下有限生成(Nicola De Cao, Gautier Izacard, Sebastian Riedel, and Fabio Petroni. 2020. Autoregressive entity retrieval. arXiv preprint arXiv:2010.00904 (2020).)。

模型

重头戏就是模型的训练了,这个系统下两个模型,如何有效训练,让两者更好协同就是关键。

本文给出的解决方案是交替训练,原因是ID生成器的生成内容直接而且大幅影响推荐器的逻辑,但是ID生成器的效果好坏需要通过推荐器来体现,所以就必须采取交替的方式进行,具体方案会比较简单,下面两个模式交替进行:

  • ID生成器固定,训练推荐器若干个epoch。

  • 推荐器固定,训练ID生成器若干个epoch。

在这个大框架下,就能推动训练ID生成器和推荐器了,剩下的问题就是ID生成器和推荐器各自如何训练了。

推荐器训练

先来说比较简单的推荐器,直接比对预测的物料ID(当然这个是ID生成器生成的)和实际的物料ID是否一样,这里的细节是,实际物料的ID是用生成器ID提前计算得到的。

ID生成器训练

ID生成器的训练就比较复杂,因为ID生成器生成的文本ID是离散的,这导致我们并不能很好地计算损失和反向传播,文章中给的方案看起来感觉有些不好懂,代码也有看着有些跳跃(代码写的很细,里面也有很多python相关的高级语法,可以多看看学习),我斗胆按照我的理解说一下。

尽管ID生成器的结果是离散的,但依旧可以算出生成有限ID集下每个ID的概率,依照这些ID的概率,利用推荐器模型的embedding,可以做向量的加权求和,用加权求和的这个embedding代替原来推荐器模板prompt内物料ID的那些token进行推理,这个模式的推理,便能把ID生成器和推荐器串联起来,方便进行反向传播。

不得不说,作者在这块的设计真的是别出心裁,既保留了原本ID生成器在ID层面的可解释性,也充分解决了ID生成器内部无法训练的问题。

模型选择

模型选择上,这里两个模型,作者均选择的是T5模型,这里有两个原因,一个是保证模型的简单性,另一个是对齐现有的其他LLM推荐系统方案,有一个细节是,ID生成器的模型选用的并非通用的T5,而是一个经过过做文章标签生成微调任务的T5模型来作为base进行进一步训练。根据源码,模型选择如下:

  • ID生成器:nandakishormpai/t5-small-machine-articles-tag-generation

  • 推荐器:t5-small

实验

实验里的大部分内容基本符合预期,这里比较令人关注的应该是消融实验和零样本效果评估吧,我就说这两个,其他的实验大家有兴趣翻一下论文吧。

首先是消融实验,这里作者关注的是交替训练的必要性,于是做了两个消融实验,一个是仅训练ID生成器,另一个是仅训练推荐器,结果显示仅训练ID生成器得到的效果很差,但是仅训练推荐器的效果其实已经不错,已经能超过很多现有算法的水平,但相比交替训练效果还有不小差距。个人理解可能是因为推荐器在下游,一般经验而言,在大部分情况下,下游模型的优化对总体的效果调优收益更大,除非上游的短板太过明显。

零样本这块的效果相比UniSRec这个baseline提升还是非常明显的(虽然只拿这个对比说服力确实不够),一定程度说明,比较程度的预训练任务,应该是能让这个框架(两个模型)在更多推荐场景下得到更好的效果,存在预训练后的泛用性,可迁移能力变得很强,当然很大可能在更大规模模型和训练下,会有更强的可迁移能力吧。

个人理解

看完之后自己有如下的收获、思考和槽点,在这里逐个聊一下:

  • 首先从结果导向,我们可以比较自信地理解,目前的语言模型确实能理解这种零散复杂特征,并将其用于特定的推荐任务,换言之,可能在更多的领域,类似一些机器学习的问题,也可以考虑用这种语言模型的方式来做预测,可用性上应该是没什么问题。

  • 然而,从这篇论文里,我们无法得知,语言模型的这种流派,是否能打败同等级的机器学习方案,或者是目前已经被研究多年的主流推荐系统方案,按照自己过去经验的理解,这个实验没有做,很大程度是因为做了但打不过,按照现在读论文的视角看,我只能推断了,因此这只是个备选方案,相比正儿八经的特征工程和常规的特征处理模式,仍然有一定优势。当然,如果有做过实验或者读过类似有这个对比的论文的大佬,欢迎指出。

  • 论文里目前使用的语言模型仍旧是T5,在2024年这个时间线下看确实是有点小了,甚至是T5-small,诚然因为要对齐之前的sota,但更大一些的模型,甚至是目前意义的大模型,也有必要做实验,否则不太能对得上扣在论文里的LLM的帽子。

  • T5模型似乎有一些大模型-小模型二象性。在一些论文里,论文声称自己某个方案下,会用小模型解决,结果看论文里发现是T5,甚至是T5-large,而在另一些论文里,例如这篇文章,生成自己研究的是LLM,结果用的是T5,甚至是T5-small,就有些尴尬。

  • 论文的建模和结论可以发现,“万物皆可seq2seq”这个思路仍然可以继续沿用,特征文本化后用于各类型的任务,似乎还是不错的,这可能是对NLPer们做非NLP任务的一个福音,甚至是多类型特征综合处理的一种方案(多模态??)。效果可能并非顶尖,但终究是可简单快速尝试的baseline方案。

  • 数字在NLP类模型的效果不好似乎是一个目前公认的难题了,目前已有的推荐数据集在这块的体现并不是很多,但在更多领域,数字类特征占主要地位的场景下,这个方案是否会暴露的更明显,不得而知,仍有待具体实验。NLP对数字理解问题的短板,也有待进一步的探索。

  • 零样本实验可见,这个甚至有一定的泛用性。

  • 消融实验一定程度也表明,推荐在这种LLM方案的大背景下,拆解后的定向优化,是有效果的,毕竟拆解后只优化推荐器,也比一个模型的其他方案效果要好了。

09366c3ff6aa884d70f2372e318d4360.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo 3.x源码(28)—Dubbo服务发布导出源码(7)应用级服务接口元数据发布

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们在Dubbo启动过程的DefaultModuleDeployer#startSync方法中,学习了Dubbo服务的导出exportServices方法和服务的引入referServices方法。 在这两个操作执行完毕之后,将会继续调…

电脑使用CDR时弹出错误“计算机丢失mfc140u.dll”是什么原因?“计算机丢失mfc140u.dll”要怎么解决?

电脑使用CDR时弹出“计算机丢失mfc140u.dll”错误:原因与解决方案 在日常电脑使用中,我们时常会遇到各种系统报错和文件丢失问题。特别是当我们使用某些特定软件,如CorelDRAW(简称CDR)时,可能会遇到“计算…

深入解读数据资产化实践指南(2024年)

本指南主要介绍了数据资产化的概念、目标和意义,以及实施数据资产化的过程。指南详细阐述了数据资产化的内涵,包括数据资产的定义、数据资产化的目标与意义,并介绍了数据资产化的过程包括业务数据化、数据资源化、数据产品化和数据资本化。 …

【算法篇】——数据结构中常见八大排序算法的过程原理详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、插入排序1.直接插入法2.希尔排序法 二、交换排序1. 冒泡排序2. 快速排序 三、选择排序1. 简单选择排序2. 堆排序 四、归并排序五、基数排序 前言 C数据结构…

仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码

市场前景 闲置物品交易软件的市场前景广阔,主要基于以下几个方面的因素: 环保意识提升:随着人们环保意识的增强,越来越多的人开始关注资源的循环利用,闲置物品交易因此受到了广泛的关注。消费升级与时尚节奏加快&…

情报信息收集能力

红队专题-Web渗透之资产思路框架知识整理 钓鱼社工 钓鱼自动化zip域名ARP欺骗快捷方式ToolsburpsuiteApp 抓包ffuf模糊测试QingScanWiresharkCloudCFEn-Decodeffffffff0xInfodirbdirmapdirsearchdnsenum使用测试常规使用使用字典文件进行dns查询子域名暴力查询部分C类IP地址IP块…

ensp 关于acl的运用和讲解

ACL(Access Control List,访问控制列表)是一种常用于网络设备(如路由器、交换机)上的安全机制,用于控制数据包的流动与访问权限。ACL 可以指定哪些数据包允许进入或离开某个网络接口,基于不同的…

5、mysql的读写分离

主从复制 主从复制的含义 主从复制:在一个mysql的集群当中,至少3台,即主1台,从2台。 当有数据写入时,主负责写入本库,然后把数据同步到从服务器。 一定是在主服务器写入数据,从服务器的写入…

高质量配音如何影响游戏的受欢迎度

在游戏行业中,创造沉浸式、引人入胜且令人难忘的体验往往决定了游戏的成功或失败。在影响游戏流行度的众多因素中,配音脱颖而出,成为将叙事与玩家互动连接起来的重要元素。高质量的配音将游戏中的对白转化为游戏的活跃部分,让玩家…

鸿蒙-expandSafeArea使用

应用未使用setWindowLayoutFullScreen()接口设置窗口全屏布局时,默认使能组件安全区布局。可以使用expandSafeArea属性扩展安全区域属性进行调整 扩展安全区域属性原理 布局阶段按照安全区范围大小进行UI元素布局。布局完成后查看设置了expandSafeArea的组件边界&…

Java测试开发平台搭建(四)拦截器

1. 拦截器的作用及使用场景 能够在请求的生命周期的不同阶段进行拦截和处理。常见的使用场景包括:1. 日志记录:记录请求和响应的日志。 2. 权限验证:检查用户的登录状态、权限。 3. 性能监控:记录请求的处理时间,监控…

window安装TradingView

目录 下载安装包 修改文件后缀,解压 将K线换成国内涨红跌绿样式 下载安装包 https://www.tradingview.com/desktop/ 下载完成后是.msix格式文件 (我在win10和win11的系统中尝试运行msix都没有成功,所以放弃直接双击运行msix&#xff…

电子应用设计方案70:智能挂钟系统设计

智能挂钟系统设计 一、引言 随着科技的不断发展,传统挂钟也逐渐向智能化方向演进。智能挂钟不仅能够准确显示时间,还具备多种实用功能和智能交互特性,为用户带来更便捷、丰富的体验。 二、系统概述 1. 系统目标 - 高精度显示时间&#xff0…

vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0

一、vueelementui实现下拉表格多选搜索1.0 二、vueelementui实现下拉表格多选搜索分页回显全选2.0 在1.0的基础上,终于可以实现在下拉框表格分页的前提下不同页码的回显辣,分页是前端来分页的(代码略乱且没有封装还很长,随便看看…

被裁20240927 --- 嵌入式硬件开发 前篇

前篇主要介绍一些相关的概念,用于常识扫盲,后篇开始上干货! 他捧着一只碗吃过百家的饭 1. 处理器芯片1.1 处理器芯片制造商一、 英特尔(Intel)二、 三星(SAMSUNG)三、 高通(Qualcomm…

【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)

最近在忙联通的安全准入测试,很少有时间看CTF了,今晚抽点时间回顾下上周线下的题(期末还没开始复习😢) 感觉做渗透测试一半的时间在和甲方掰扯&水垃圾洞,没啥惊喜感,还是CTF有意思 目录 Mountain ez_zhuawa 图…

高阶:基于Python paddleocr库 提取pdf 文档高亮显示的内容

预览 第1步:理解基本结构和导入必要的库 # 1. 首先导入需要的库 import os # 用于处理文件和路径 import cv2 # 用于图像处理 import numpy as np # 用于数值计算 from paddleocr import PaddleOCR # 用于文字识别 from pdf2image import convert_from_path #…

保护模式基本概念

CPU 架构 RISC(Reduced Instruction Set Computer) 中文即"精简指令集计算机”。RISC构架的指令格式和长度通常是固定的(如ARM是32位的指令)、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕 CISC&…

@vue/cli启动异常:ENOENT: no such file or directory, scandir

参考:https://blog.csdn.net/qq_44355188/article/details/122239566 首先异常报错是:ENOENT: no such file or directory, scandir ‘D:\Data\Project\VueProject\hello\node_modulesvue\cli-plugin-eslint\locales’;我的vue/cli版本是 4.5.15 重点是…

全视通物联数据中台解决方案助力智慧医院新时代

全国医院物联网大会系列活动暨【行走的课堂】标杆研学 四川站“医院物联网应用创新经验交流会”,近日在成都召开。珠海全视通信息技术有限公司总经理林三朝以《物联网技术助力医院高质量发展》为题做了精彩演讲。林总就物联网技术如何助力医院高质量发展&#xff0c…