SIGIR 2022 | 从Prompt的角度考量强化学习推荐系统

2023-10-20 15:40

本文主要是介绍SIGIR 2022 | 从Prompt的角度考量强化学习推荐系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

417bf25fa3cad4dc1d2bbfcb11e83e9d.gif

©编辑 | 李晨亮

来源 | 社媒派SMP

feb3eb8d4e3685f5015b3a88a63b261b.png

d9d0e2283c48aff7ec189c81b6ff79aa.png

引言

Next item 推荐系统是现代在线网络服务的核心组件之一,根植于应用程序中,例如音乐、视频和电子商务网站,帮助用户(user)导航和查找新内容。一般来说,系统被建模为序列预测任务,通常在递归神经网络或其他生成序列模型之上实现。其目的在于回答问题:在知晓用户过去的交互情况下,用户感兴趣的下一个物品 (item) 是什么。

强化学习是训练 Agent 在给定观察到的环境状态的情况下采取相应行动,以最大化预定义的奖励。现有的基于价值的 RL 算法通常涉及策略评估和策略改进,分别如图 1a 和图 1b 所示。因为强化学习自然符合推荐系统的优化目标:最大化一个交互会话的总体收益,RL 中灵活的奖励设置可以灵活地定制推荐目标。因此,在推荐中使用 RL 已成为一个新兴话题。

6255dda75b257e77f1bec1c5f5c837b3.png

▲ 图1. 策略评估算法、策略改进算法和PRL范式

然而,发展基于强化学习的推荐方法并非易事。具体来说,当前 RL 的学习范式通过与环境交互然后观察奖励来训练主体(Agent)。这个过程需要 Agent 本身进行大量的交互。传统 RL 的关键是通过大量在线探索试错来训练推荐引擎,但在推荐系统中,我们无法进行大量在线试错,糟糕的推荐结果会影响用户体验。因此,需要通过在不同推荐策略下收集的历史隐性反馈进行推荐引擎的离线训练。然而,历史数据不是由 Agent 本身产生的,而是来自不同甚至未知的行为策略。策略评估的期望估计很容易受到分布差异的影响,即所谓的离线训练挑战。 

针对离线训练的场景,我们提出了一种新的学习范式,基于提示的强化学习 (Prompt-Based Reinforcement Learning, PRL)。传统的 RL 算法试图将“状态-行为”输入对映射到预期的奖励,而 PRL 直接从“状态-奖励”输入中推断行为,如图 1c 所示。

简而言之,通过简单的监督学习,根据先前的交互和观察到的奖励价值训练 Agent 来预测推荐的物品。在部署时,历史(训练)数据充当知识库,“状态-奖励”对充当提示。因而 Agent 将用来解决问题:在给定的先前交互与提示的价值奖励条件下,应该推荐哪种物品?我们在四种推荐模型上实例化 PRL,并在两个电子商务数据集上进行实验,实验结果表明了我们方法的有效性。 

我们工作的贡献总结如下:

1. 对于基于强化学习的 Next item 推荐系统的离线训练,我们提出了 PRL。我们建议使用“状态-奖励”对作为提示,通过查询历史隐式反馈数据知识库来推断行为。 

2. 我们提出使用一个有监督的自注意力模块来学习和存储“状态-奖励”对的输入和行为的输出之间的信号。 

3. 我们在四种推荐模型上实例化 PRL,并在两个真实世界的电子商务数据集上进行了实验。实验结果表明,推荐性能有了普遍的提高。

1095c1b8c1f883b3ef66d66ab4b4c6de.png

基于提示的强化学习

在本节中,我们将详细介绍使用 PRL 的 Next item 推荐的训练和推理过程。 

在训练阶段,使用生成序列模型将用户之前的交互编码为隐藏状态,将历史数据组织在 {state, cumulative reward}–>{observed action}({状态,累积奖励}–>{行为}) 模板中,然后使用监督自注意力模块来学习和存储这些信号。PRL 训练过程包括三个部分:提示生成、提示编码和有监督的注意力学习,如图 2 所示。

5e209712128dae4e863c5f43db0594f8.png

▲ 图2. PRL的训练框架

提示生成旨在将离线训练数据制定为知识模板,即在先前 user-item 交互序列为 的条件下,如果我们想要获得累积奖励 ,则应该采取行动 。提示编码旨在利用深度神经网络将生成的提示映射成为 hidden state 表示。监督自注意力学习模块则用来学习和存储经过编码的 prompt 潜在表示和观察到的行为之间的映射信号。图 3 中的算法给出了 PRL 的 prompt 生成过程。

b4d5cbebe1fa4cc84c3379b9219ae9e9.png

▲ 图3. PRL的训练模版生成过程

在推理阶段,给定当前状态,我们向模型提供我们想要获得的预期累积奖励,模型可以通过查询历史知识库直接推断行为。在训练过程中,累积奖励可以从离线数据中计算出来,而对于模型推理,我们需要提供推理奖励(prompt reward),以便 Agent 可以根据奖励来调整行为,实现探索。

e2838e86617a2f0620b8c316139fcf96.png


实验

我们用四种基于深度学习的序列推荐模型来实例化 PRL,在两个电商数据集,Challenge15 和 RetailRocket4,进行了实验。实验旨在回答以下三个研究问题,以验证 PRL 学习范式的有效性: 

1. 当在不同的序列推荐模型上实例化时,PRL 的表现如何?

2. 包括自注意力模块和加权损失函数在内,监督注意力学习的效果是什么?

3. 在推理阶段,prompt reward 设置如何影响 PRL 的表现? 

针对问题一,我们通过与基线模型进行比较,在两个数据集上实验结果如表 1 和表 2 所示。无论在 Challenge15 数据集还是在 RetailRocket4 数据集上,PRL 在几乎所有情况下都取得了最好的性能,证明了 PRL 持续且显著地提高了基于 RL 的推荐任务的离线学习性能,并可应用于各种序列推荐模型。

ad333165c7eca664733e87bec916d7f3.png

▲ 表1 PRL和其他模型在Challenge15数据集推荐性能比较

6bbc2cc041e934d10e4c4bacc8c74661.png

▲ 表2. PRL和其他模型在RetailRocket4数据集推荐性能比较

c7cc3edb85d4f5209d323957a5b7f9bb.png

▲ 表3. 自注意力模块的效果

针对重新加权模式(re-weighting)的效果研究,我们与没有任何重新加权(即PRL-w/o)的 PRL 的结果和通过累积奖励(即 PRL-cumu)重新加权的 PRL 的结果进行对比,结果如表 4 所示,证明了 PRL 的 re-weighting 成功地帮助模型推荐更多有更高的 prompt reward 的购买产品。

1b554855b00bea5817ae35791e49de17.png

▲ 表4. 加权损失的影响

针对问题三,我们进行实验,通过研究推理奖励期望 μ 与推理奖励偏差 ϵ 的影响,以了解推理奖励设置如何影响模型的性能。结果分别如图 4 和图 5 所示:

9c033839130ad797e80cada714f50d45.png

▲ 图4. 推理奖励期望μ的效果

15434dab2135e1776514ed2380ff6851.png

▲ 图5. 推理奖励偏差ϵ的效果

17d3d2af2b66342449544d5a73ff1aa6.png

总结

我们提出了 prompt-based 强化学习的方法,用于基于强化学习的 Next item 推荐引擎的离线训练。从理论上分析了利用 RL 进行推荐时的离线训练挑战,我们建议将历史离线数据作为知识库,将推荐任务制定为问题:如果在状态观察下期望获得 prompt reward,应该采取什么行动。我们使用四个序列推荐模型实例化了 PRL,并在两个真实世界的数据集上进行实验,证明了所提方法的有效性。

a8353f27b44f192559c87c41720af209.png

送福利啦!

独家定制炼丹中/Fine-Tuning

超超超超超大鼠标垫

限量 200 份 

扫码回复「鼠标垫」 

立即免费参与领取 

👇👇👇

e0e042462b5e439492edad2bac11f459.png

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

60e4bbf7386e68ded9602ce5793be07d.png

这篇关于SIGIR 2022 | 从Prompt的角度考量强化学习推荐系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248061

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (