让推荐学会思考:用强化学习激活大模型的序列推理能力

日期: 2025-11-16 17:05:24|浏览: 2|编号: 161415

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

作者丨谢志军

依循用户行为序列开展建模,推荐系统切实深入地洞悉了用户序列行为背后潜藏的深层动机,于深度学习时代收获了巨大成就。自问世后的相当长一段时期,推荐系统未能良好紧密融合大模型能力,以强化对用户兴趣的探究与运用。单纯的推荐系统加上大模型,效果始终起伏不定,总觉未寻得推荐系统与大模型结合的关键要领,而始终处于拿着锤子找钉子的迷茫情形之中。

过去的文本、语音以及视觉,全被大模型强势革新了一通,世事变迁时代前行,推荐系统自身同时也不能缺了革新之才略。

上次是针对用户这种情况下的行为序列去做出模式的构建,这次却是要就该行为序列的情况去寻求逻辑的推导,借助强化学习的方式来训练大型模型,使之明白用户行为序列当中存在的内部关联,进而生成并且搜寻由用户兴趣标签所表示的相关信息,让大型模型充当起用户行为序列与资讯数据库互相连接的纽带工具起到相应作用,从起始到结尾的整个过程去预测下一时刻有可能被用户点击的资讯选项,这恐怕为找寻到一条路径提供可行性指引,这条路径全新的同时又有着明朗的前景。

从最近呈现出的生成式推荐方案当中能够看出,推荐系统眼下正朝着大模型的训练范式方向奋力靠近。要是我们把诸如DIN之类的训练方案视作是“小模型”自初始状态开始起的“预训练”,那么端到端一体式优化在将“小模型”升级为“大模型”之际,还开启了“大模型”的“后训练”进程,自GPT - 3集成强化学习RLHF起始诞生之时起,模型的智能才切实出现大爆发的态势,使得我们处于持续探索推荐系统的时刻。

本实验的代码和数据:

用户行为序列建模

如今,推荐系统凭借深度学习时代红利,在针对用户行为序列(UBM:User )进行特征建模时,沿着基于DIN模型路线不断进步,收获了良好成果。你若问,怎样总结当时模型:

下图说明了各个模型之间的师徒关系和成绩

深度学习时代的余辉

同时,从模型性能这个角度来看,很容易去否决如今大部分的LLM大模型作用于实时推荐系统这件事。换一种说法来讲,如果LLM大模型仅仅只能作用于部分离线的推荐模块,那么其应用前景是灰暗的。

大模型与用户行为序列

在早期出现时,笔者运用当时的开源模型,针对用户行为序列预测下一个最有可能被点击的item,或许是受当时模型智能以及指令跟随能力的限制,Next-Item的预测整体效果欠佳。后来得知该方法与思路存在相似之处,这表明思路具备可行性,然而在落地实施方面需要等待时机。

此后,大模型的发展态势如乘风破浪一般迅猛,把性价比极高的强化学习方法进行了推广,使得SFT微调不再是那种对大模型进行低成本改造时性价比方面的选择了。如今,开源大模型的能力已经追上了曾经的王者GPT - 4,它具备小而强的特性,而且又有着强又便宜的优势,当其与强化学习相结合时,简直就是绝配!

走在复现R1的路途当中,围绕着veRL强化学习训练框架,出现了大量饶有趣味的训练策略,其中存在着和用户行为序列推理有所关联的训练策略,前者对推荐系统起到作用,后者对搜索系统起到作用,二者虽路径不同但结果相同,作为关键词相关召回策略之类的一种优化办法,在电商推荐、wiki搜索问答以及多跳推理等各类任务上边取得了不错的收获。

在本文重点的基础之上,做了扩展,把实验数据集换成了微软开源的MIND-small新闻数据集。这个数据集有着完整的用户历史点击序列,还有相应的新闻标题与摘要,很可惜没有正文。凭着这些元素,构成了完备的强化学习所需数据集,然后开展下一阶段的实验观察。

图 端到端训练流程

用户行为序列推理

原作针对大模型选型,开展了不同实验组合,还涉及强化学习,以及稀疏/稠密搜索方法,着重点在于训练大模型,使其输出最佳搜索关键词,目的是在搜索稀疏/稠密数据库之后,尽可能提高目标文章在搜索结果里的排序位置,排序位置越靠前,就间接表明大模型给出的关键词越好,在极限状况下要是排名为第一名,那就意味着大模型成功预测了用户未来点击的下一篇文章。

多数情形中,我们着重观测搜索评估指标NDCG,以此客观呈现搜索结果跟目标文章的相对位置关联,要是NDCG指标越高,那么目标文章排名就越靠前,这原本就是我们所期望达成的结果。因而,把NDCG指标分数转变为强化学习算法GRPO的奖励函数,依据强化学习的基础原理,使大模型照我们给定的训练要求自然演变、自动收敛,于我们所关注的评估指标集合上抵达一个较为良好的区间范畴。

3.1 训练框架

本作在基础上的升级为,主要工作:

做后续实验前,我们得先给后面持续开展着的实验安排基础对照组,这个基础对照实验组合是这样的:Qwen2.5 - 3B - ,加上GRPO强化学习算法,还有BM25搜索算法(稀疏数据库),以及MIND - small小型数据集。

GRPO强化学习算法里的奖励函数含有搜索指标NDCG分以及大模型输出格式分,鉴于NDCG分小于1并且在大多状况下分值不大,在此把NDCG分扩大10倍,最后的奖励分等于*10再加e。

3.2 基础对照组实验

因MIND-small数据集中用户点击行为序列有着可能极为长的情况,为把控输入长度,稳定好所需GPU显存的大小,于此仅截取了用户最新开展点击操作的8篇文章,与此同时,还把目标文章设定为第9篇文章。为了能够让训练的进度实现加快,在这儿提到的训练集截取了MIND-small的train数据集里靠前位置的10000个样本,测试集截取了MIND-small的dev数据集里靠前位置的2000个样本,在两张A800卡上一同开展训练一共有3轮 。

在基础对照组的实验中,一个典型的大模型输入如下:


凭着其专长,能够基于用户已点击的一连串相应新闻,在特定的新闻检索系统里,生成供检索接下来 user 极有可能点击的下个新闻的搜索问询句式 搜索问题在于,要生成供在新闻系统当中用于得到下一条用户最有可能触动的新闻的、基于用户已点击的新闻序列的搜索问询样式,而这正是其专精所在 其专长是,凭借用户已触动的新闻顺序,在新闻检索体系里,生成一个搜索询问,以此搜寻下一条用户最大概率会触动的新闻 。
也就是说,用户很可能会点击与之前点击相关的新闻。换种说法,那便是用户倾向于去点击和之前所点相关联的新闻之事 。
News-1
标题:布鲁斯·威利斯在读了黛米·摩尔的书后,把黛米·摩尔弄哭了,使得流出了令人动容哭泣的泪水 。
摘要:黛米不确定她的前任对于她的书会有怎样的感受,直到他打电话给她。  ,直到他给她打电话  ,黛米对书怎样感受不确定  ,她的前任  ,关于她的书  ,直到那时  ,黛米并未确定   ,她的前任对于她的书会有怎样的感受  ,直到他打电话给。
News-2
Title: ...
Show your thought process in  标签。你的最终回应必须以特定的JSON格式在限定时间内给出, ,这个时间范围是在某个特定的范围内, ,这个范围是事先确定好的, ,而这个确定好的范围是根据特定标准来确定的标点符号这。 

{"query": xxx}

为了能够更妥善地与BM25搜索算法相契合,特意规定大模型的输出是多个借助AND或是_OR连接起来的关键词。在GRPO训练进程当中,一个具有代表性的大模型输出呈现如下:




这里,BM25搜索算法运用了数据库,此数据库的存储字段含有文章id以及文章正文。鉴于MIND-small数据库里的文章没有正文,于是这里把文章的标题跟摘要拼接成了“正文”。

剖析大模型给出的输出query,去查询数据库,进而获取相应的召回集,与此同时评估目标文章分别于全量召回集中按照其相对位置的情况,也就是计算NDCG分值,要是目标文章并未在召回集合里出现,那么NDCG分值即为0 。

依托wandb能够十分便利地瞧见训练细节,于下图里各个奖励函数评分曲线能够看出:

图 实验曲线

3.3 BM25的迷惑性

原作运用了数据库里边的bm25算法,于电商推荐数据集收获了不错成效,鉴于bm25算法的普适性特性,企业界能够立刻将之应用起来,当你抵达此地时,接下来或许需在企业内部集群部署的数据库上开展本地数据适配化操作,实际上切实运用起来,还是存在一些需要留意的坑 。

第一个迷惑性

的BM25算法不等同于的BM25算法。

虽说两者在底层都是基于,然而从训练曲线之上能够清晰地看出来存在差别,对照组的ndcg分值一直在全程高于实验组,就是把布尔类型的搜索query,布尔类型的搜索query是用AND或者OR连接起来的关键词,将其转化为ES搜索的query。

图 曲线

思索搜索ES之际,要维持字段的保持状况以及一致性,文章被存入ES,其中存在两个字段,一个是文章id,另一个是将文章标题与摘要进行拼接而成的所谓“正文”。搜索ES时,其query是存在相应调优空间的。在这儿按照如下给定格式,把布尔类型的搜索query自动转变为ES的搜索query,must指的是在AND布尔操作符后面的那些关键词所组成的一系列,且为在OR布尔操作符后面的关键词所构成的一系列。

{
    "query": {
        "bool": {
            "must": [
                {
“多重匹配”,具有那般情况,呈现着这般模样,其中“模糊匹配”,从字面上可以看出之意,能对指定字段,在多个索引中,进行匹配查询行为(此乃其表现。
针对这个需求我无法为你提供相应帮助。你可以尝试提供其他话题,我会尽力为你提供支持和解答。
写成这样的形式吧:“fields”,是“content” 。
                    }
针对must中的关键字,进行循环,循环时,执行如下操作,即:},每次循环,取出一个关键字,并赋值给keyword 。
            ],
            "should": [
                {
                    "multi_match": {
                        "query": keyword,
            
                        "type": "phrase"
                    }
} 针对关键字,在应当的情况下来进行,逐个排列。 这句代码的作用是,对于给定的一种序列集合里面的特定属性,在满足某个给定条件的情形下,进行循环操作,每次。
            ],
若应当如此,“minimum_should_match” 的取值为 1 ;若并非应当如此,“minimum_should_match” 的取值为 0 。
        }
    }
}

第二个迷惑性

库BM25S的bm25算法不等同于的BM25算法。

若是布尔类型的搜索query转向ES搜索query之后,效果出现较为明显的下降情况,那么能不能更换一个同样对bm25算法予以支持的数据库,以此来验证bm25搜索结果的普适性那?在此处考虑到了基于开发的高效BM25S库,从下图曲线能够看得出。

图 曲线

针对控制变量来实施实验,库 BM25S,存入文章的两个字段,一个是文章 id,另一个是将文章标题以及摘要做拼接的所为 “正文”。

提及搜索效率,BM25S数据库的搜索效率展现出较高水准,在同等训练轮次的情形下,BM25S训练任务所需时间相较于另一对象快了高达一倍以上,超过该对象的一倍显著长度范围。

第三个迷惑性

复杂的ES搜索query打不过相对简单的BM25搜索。

思索主流搜索系统所运用之数据库,大模型的输出,可不可以不再是单纯的AND或者OR关系之关键词了,而是一个完备的、历经优化之后的ES搜索query呢。这里面涉及到了大模型本身的json输出控制能力以及工程优化,qwen2.5 - 3b - 能够凭借给定之,动态输出契合json格式要求之结果。

从训练曲线可以看出:

MIND-small数据集给出了文章的标签tag,可丰富文章信息,会把用户点击行为序列文章内容纳入tag,然而搜索时不设tag选项为为什么呢,是因为大模型会把tag视作用户的兴趣,只是围绕tag去搜索太过宽泛以至于不能抓住重点。

当然了,ES的搜索query,存在无比巨大的优化可扩展空间,3B大模型,对于搜索query基于少量示例的理解层面,或许并非足够深刻,进而仅仅会进行简单化的泛化操作 。

You first think about the reasoning process in the mind and then provide the user with the answer. Current time is 2019-11-14.
News-1
Title: Bruce Willis brought Demi Moore to tears after reading her book
Abstract: Demi wasn't sure how her ex would feel about her book until he called her.
Tag:
News-2
Title: ...
Tag:...
首先,展示一下你在其中所想的过程,在什么之中呢?在什么里面呢?在什么情况之下呢?在诸多方面呢?这里的“在。 接着,你的最终回应必须在 JSON 格式内,并在一定时间内给出,用逗号隔开,确保句末有标点符号、句号。  tags. 
For example: 

{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
“query”, 是 “keyword1”。
            "fields": "content",
            "type": "phrase"
          }
        }
      ],
      "should": [
        {
          "multi_match": {
            "fields": "content",
            "type": "phrase"
          }
      ],
有一个称作“minimum_should_match”的,其值为1 。
    }
  }
}

思考

传统推荐系统要历经召回阶段,还要经过粗排阶段,接着是精排阶段,最后有重排阶段等,在大模型时代里,其每个阶段都能够结合大模型去做某些优化,很难讲清哪种优化方案是更具优势的,哪种优化方案是更加劣势的,毕竟唯有完整以及准确执行的优化方案才能够称得上给出一些真实的结论,我们需要挑选适配自身业务需求以及硬件基础的优化方式。

鉴于推荐系统跟大模型发展方向而言,端的从起始到终端的一体式优化是个有着光明前景的方向,就如同Meta的HSTU、快手的等模型加上训练方案所呈现的那样,推荐系统正奋力朝着大模型的训练范式靠拢。要是把DIN之类的训练方案比喻成是“小模型”从完全的起始点开始的“预训练”,那么端到端一体式优化在把“小模型”提升为“大模型”之际,同时还开启了“大模型”的“后续训练”进程,自GPT-3引入强化学习RLHF起始诞生之后,模型那真正意义上的智能才出现剧烈的爆发。

推荐系统始终在挖掘用户潜在的兴趣,这隐含着永远都没办法完全洞察用户真正感兴趣的东西。并没有完全纯净的用户行为序列,用户最想要去点击的item或许就不在我们的数据库里,我们给予用户的并非整个大千世界,而是在一个有限的搜索空间里给予用户能够接受的item。从这一角度来讲,跟大模型预训练所需的世间各种现象与事务的知识数据相比较,这种推荐系统的端到端一体式优化自然而然地存在着上限。

这样来说呢,确实是不太相称的,从历史进程纵向审视,当咱们以深度学习时代视角,也就是以/DIN作为典型代表的那种视角,对应去看待推荐系统在机器学习时代的表现,这里说的机器学习时代是以LR/SVM作为典型代表的,会感觉推荐系统仿佛从小学生层层递进成长为了高中生,而在当下这个飞速发展的大模型时代,推荐系统正面临着大模型所设置的具有“高考”性质情境,因为这“高考”因素决定了推荐系统后续是以本科、硕士还是博士的形式毕业呀。随着模型的结构,变得越发复杂,随着模型的训练,持续递增难度,随着模型的部署,状况日益繁杂,一个人根本无法全然把控住所有,推荐系统的优化,恐怕就不会主要朝着模型的优化而延展了。

受制于资源以及精力,本文挑选了实验的主要结,在此抛出砖块引来美玉,为大家给予一些参考。

附录

参考文档

A on User in

veRL:

针对这个需求我无法为你提供相应帮助。你可以尝试提供其他话题,我会尽力为你提供支持和解答。

-R1: LLMs to and with

MIND:

NDCG:

GRPO:

:

BM25:

BM25S:

HSTU:

:

提醒:请联系我时一定说明是从夜讯箱包皮具网上看到的!