小试牛刀:应用深度强化学习优化文本摘要思路及在裁判文书摘要上的实践效果

news2024/11/18 5:34:48

一、引言

近期,随着大模型的出现,强化学习再一次的引起了本人的兴趣,本文将应用深度强化学习来优化文本摘要模型,使生成的摘要更加的流畅。在此之前,大家都采用了很多种方式训练摘要系统,例如:使用交叉熵来训练这些模型,以最大化ground truth的可能性摘要,在某些文本摘要数据集上显示出了比传统方法更好的性能。但是,文本摘要中存在的一个问题:学习目标和评估标准之间的不匹配,即基于ROUGE的自动摘要评价方法。尽管学习目标旨在最大限度地提高基本事实摘要的可能性,但ROUGE评分在很大程度上依赖于基本事实和候选摘要之间的词汇对应关系。

为了解决这个问题,本文使用强化学习(RL)来训练摘要模型。通过使用RL,可以设计互补的奖励方案,引导学习超越传统的似然最大化目标。本文重点关注了关键字级别的语义,以生成包含文档中关键字和短语的摘要。工作流程如图1所示,首先训练一个以深度学习模型为主干模型,使用正常的监督训练来预测来自原始文档的句子是否应该包含在摘要中。然后,使用强化学习和一个奖励模型对模型进行了微调,该模型将词汇、句子和关键字级别的语义平滑地集成到一个奖励函数中,整合了不同的视角,从而构建出一份优质的摘要。此外,为了确保一个稳定的微调过程,使用近端策略优化(PPO),并通过使用Kullback-Leibler(KL)散度作为额外的中间奖励,使探索策略接近监督模型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zH4Qgl1d-1684576117932)(F:\weixin\imgs\image-20230520153925172.png)]

二、解决方案

2.1、主干网络

BERT+LSTM+Sigmoid主干网络:
u i = LSTM ⁡ → ( h i L ) y i = sigmoid ⁡ ( W 0 u i + b 0 ) \begin{gathered} u_i=\overrightarrow{\operatorname{LSTM}}\left(h_i^L\right) \\ y_i=\operatorname{sigmoid}\left(W_0 u_i+b_0\right) \end{gathered} ui=LSTM (hiL)yi=sigmoid(W0ui+b0)
式中: h i L h_i^L hiL表示BERT编码后的第i个[CLS]。

2.2、PPO微调

在使用标准的交叉熵损失训练深度主干网络模型之后,考虑训练的主干网络模型作为初始策略,然后继续用强化学习完成策略。近端策略优化控制在每次迭代中更新的策略中的更改,以便策略不会移动太远,假设这有助于提取更好的摘要。对于KL 奖励,按照[1]和[2]等定义RL的奖励方案,设 π R L \pi^{R L} πRL表示有监督训练的主干网络模型, π R L \pi^{R L} πRL表示用RL优化的主干模型,在时间步骤i计算报酬为:
r i = − β K L ∗ log ⁡ [ π R L ( y i ∣ s i , D , θ ) π S L ( y i ∣ s i , D , θ ) ] + 1 ( i = n ) × R overall  ( S ) r_i=-\beta_{K L} * \log \left[\frac{\pi^{R L}\left(y_i \mid s_i, D, \theta\right)}{\pi^{S L}\left(y_i \mid s_i, D, \theta\right)}\right]+1(i=n) \times R_{\text {overall }}(S) ri=βKLlog[πSL(yisi,D,θ)πRL(yisi,D,θ)]+1(i=n)×Roverall (S)
其中, β K L \beta_{K L} βKL是KL系数,n是与文档D中句子总数相对应的最后一个时间步。

对于中间时间步长,奖励仅为主干模型的输出分布与当前策略之间的负KL差异。它确保防止当前策略生成与主干模型的输出相差太大的输出。对于最后一个时间步骤i(i=n),当模型获得整个摘要S时,设计了一个总体奖励项来衡量提取的候选摘要作为一个整体的质量。在第2.3节介绍了该奖励机制。

2.3、总体奖励函数设计

传统的使用ROUGE分数的奖励只考虑提取的摘要和参考摘要之间的n-grams重叠。它忽略了单词和句子层面的语义方面。笔者认为,奖励函数应该对语义进行编码,以引导摘要模型输出一个良好的摘要,从而达到人类的水平。为了利用语义方面,下面公式中引入了一个总体的奖励函数,该函数度量了一个优质摘要在不同层面的重要性。
R overall  = α 1 R ROUGE  + α 2 R k w + α 3 R sem  R_{\text {overall }}=\alpha_1 R_{\text {ROUGE }}+\alpha_2 R_{k w}+\alpha_3 R_{\text {sem }} Roverall =α1RROUGE +α2Rkw+α3Rsem 
其中 α 1 \alpha_1 α1 α 2 \alpha_2 α2 α 3 \alpha_3 α3为权重系数, R ROUGE  R_{\text {ROUGE }} RROUGE 是ROUGE评分函数, R k w R_{k w} Rkw考虑了关键词语义, R sem  R_{\text {sem }} Rsem 捕获序列的语义。奖励功能包括三个部分。ROUGE函数对提取的摘要和参考摘要之间的单词重叠进行编码,使用此函数直接强制主干模型提取与参考摘要类似的重要句子。 R k w R_{k w} Rkw在语义上支持ROUGE函数。这是因为ROUGE函数只考虑n-grams重叠方面。在许多情况下,候选摘要和参考摘要的文字在字符层面是不同的,但它们具有相似的含义。因此,本文设计了 R k w R_{k w} Rkw函数来解决这个问题。最后, R sem  R_{\text {sem }} Rsem 帮助主干模型提取与目标文本语义相似的序列。

2.4、关键字奖励函数

为了产生关键字奖励函数 R k w R_{k w} Rkw,首先使用BERT嵌入短语,并利用余弦函数计算嵌入向量之间的相似度。然后原始文档D和摘要S生成两组关键字 k D k_D kD k S k_S kS,对于 k D k_D kD中的每个关键字,在 k S k_S kS中找到最相似的关键字。最后,通过所有相似性的平均值计算关键字奖励。
R k w = ∑ k v ∈ k D max ⁡ k w ′ ∈ k s cos ⁡ ( k w , k w ′ ) ∣ k D ∣ R_{k w}=\frac{\sum_{k v \in \mathrm{k}_D} \max _{k w^{\prime} \in \mathrm{k}_s} \cos \left(k w, k w^{\prime}\right)}{\left|\mathrm{k}_D\right|} Rkw=kDkvkDmaxkwkscos(kw,kw)

2.5、句子语义的奖励函数

由于 R k w R_{k w} Rkw只鼓励摘要中出现类似的关键字,因此不能保证整个摘要的一致性。因此,本文定义了句子语义的奖励函数 R sem  R_{\text {sem }} Rsem 以加强最终摘要和参考摘要之间的语义相似性(即语义距离d),句子语义奖励函数定义为公式:
R sem  = 1 d ( S , S reference  ) + ξ R_{\text {sem }}=\frac{1}{d\left(S, S_{\text {reference }}\right)+\xi} Rsem =d(S,Sreference )+ξ1
其中S为最终摘要, S reference  S_{\text {reference }} Sreference 为参考摘要, ξ = 0.02 \xi=0.02 ξ=0.02,避免除零。

2.6、训练与推理

主干网络模型经过训练以初始化策略,在RL训练过程中,采用PPO算法对策略进行优化。Adam优化器用于优化2.3节中的奖励函数。在推理时,模型选择训练策略预测概率最高的前m个句子最为候选摘要句子,以形成最终摘要。

三、摘要效果

3.1、数据

实践数据来源于“中国法律智能评测(CAIL)”司法摘要赛道。

裁判文书样例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GRxDR1Ad-1684576117933)(F:\weixin\imgs\image-20230520162003578.png)]

参考摘要样例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HsCun0oe-1684576117934)(F:\weixin\imgs\image-20230520162050270.png)]

3.2、效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pKmHoRIs-1684576117934)(F:\weixin\imgs\image-20230520162436189.png)]

从实验中选取了一个结果进行观察,初步验证了有效。

总结

该文是本人在研究强化学习时的突发奇想,初步验证了引入合适的奖励函数来优化抽取式摘要模型是有效的。仅作记录。

参考文献

[1] Stiennon N, Ouyang L, Wu J, et al. Learning to summarize from human feedback[J]. arXiv preprint arXiv:2009.01325, 2020.

[2] Ziegler D M, Stiennon N, Wu J, et al. Fine-tuning language models from human preferences[J]. arXiv preprint arXiv:1909.08593, 2019.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL的主从实战

MySQL的主从实战 1、Mysql主从的必要性 访问量不断增减,Mysql服务器的压力增大;就需要对Mysql进行优化与改造; 实现Mysql的高可用MySQL的主从复制搭建 主从搭建的目的就是实现数据库冗余备份同步主服务器和Slave服务器,一旦Mas…

Vivado综合属性系列之七 DONT TOUCH

目录 一、前言 二、DONT TOUCH ​ ​2.1 属性说明 ​ ​2.2 属性用法 ​ ​2.3 工程代码 ​ ​2.4 参考资料 一、前言 ​ ​设计中经常会遇到一些信号,模块等被综合工具优化,而实际这些部分确是我们所需要的,针对这种情况&a…

哨兵机制原理详解

文章目录 初始化 Sentinel三个定时任务(重要)INFO任务订阅/发布任务心跳任务 Redis节点下线判断主观下线判断客观下线判断 Sentinel Leader 选举故障转移过程整体过程Master 选择算法修改从服务器的复制目标将旧的主服务器变为从服务器 节点上线原Redis节…

如何用Nginx实现对国家/城市以及指定IP的访问限制?

1.前言 在【如何用Nginx代理MySQL连接,并限制可访问IP】一文中,我们实现了通过Nginx代理MySQL连接,并限制了指定IP才能通过Nginx进行连接,以提高数据安全性。 该场景适用于根据具体的IP地址来进行访问限制,假如我们要…

synchronized优化原理

文章目录 一、Monitor1.1 Monitor结构 二、轻量级锁三、锁膨胀四、自旋优化五、偏向锁 一、Monitor Monitor的工作原理也是synchronized底层原理 每个Java对象都可以关联一个Monitor对象,如果使用synchronized给对象上锁之后,该对象头的MarkWord中就被设…

怎样从“点点点”进阶到自动化测试?

为什么要学习自动化测试 在讨论这个问题之前,先来聊一下测试人员的职业发展路线,无非就是两条,技术路线和管理路线,技术路线一般就是功能测试(60%)-->自动化测试(25%)-->测试…

fio引发的一些问题

fio引发的一些问题 奇怪的255扇区在nvme驱动中插入打印语句直接编译模块加载源码编译内核 查找内核源码 奇怪的255扇区 由于块设备驱动项目需要测试读写速度,故使用fio工具,没想着深入了解,简单测个速就可以 使用tldr命令得到测试磁盘读写的…

linux内核篇-文件系统(硬盘、虚拟文件系统、文件缓存)

文件系统的意义 之前说的都是在进程在物理内存保存的数据,内存就像一个纸箱子,仅仅是一个暂存数据的地方,而且空间有限。如果我们想要进程结束之后,数据依然能够保存下来,就不能只保存在内存里,而是应该保存…

Nacos-04-@RefreshScope自动刷新原理

Nacos动态刷新原理 Nacos做配置中心的时候,配置数据的交互模式是有服务端push推送的,还是客户端pull拉取的? 短轮询 不管服务端的配置是否发生变化,不停发起请求去获取配置,比如支付订单场景中前端JS不断轮询订单支…

hadoop启动,缺少RM的进程:Error starting ResourceManager【已解决】

Error starting ResourceManager【已解决】 现象解决思路报错内容解决总结 现象 Hadoop启动后 执行jps 查看进程,缺少了 ResourceManager 解决思路 start-all.sh分别会有五个日志产生 缺少哪个进程,就去看谁的日志 报错内容 resourcemanager的log文…

基于 Linux 下的生产者消费者模型

目录 传统艺能😎概念😘特点😍优点😁基于阻塞队列的生产者消费者模型🤣模拟实现😂基于计算任务的生产者消费者模型👌 传统艺能😎 小编是双非本科大二菜鸟不赘述,欢迎米娜…

chatgpt赋能Python-python3_date

Python 3 Date介绍 Python 3是一种非常流行的编程语言,其中涉及到日期处理的功能非常强大。Python 3支持处理日期、时间和时间刻度,因此可以在各种情况下使用它来管理日期。 日期格式 Python 3支持多种日期格式,如下所示: “Y…

不怕得罪人地推荐这9本黑客书籍

[利益声明] 1、这9本都和我有些关系或缘分,也是我至少过了一遍的,虽然并没都仔细推敲,但是这些书,我还是不得不点个赞。 2、其中一本是我和 xisigr 写的:-)我并不觉得在这不能推荐,因为这本书毕竟卖得很好。 然后&am…

torch.nn.functional.normalize参数说明

torch.nn.functional.normalize参数说明 函数定义参数及功能官方说明三维数据实例解释参数dim0参数dim1参数dim2参数dim-1 参考博文及感谢 函数定义 torch.nn.functional.normalize(input, p2.0, dim1, eps1e-12, outNone) # type: (Tensor, float, int, float, Optional[Tens…

chatgpt赋能Python-python3_9怎么安装jieba库

Python3.9怎么安装jieba库 随着大数据时代的到来,中文分词是一个愈发重要的问题。而jieba是一个基于Python的中文分词工具包,具有高速、易用、解耦的特点,广受开发者的青睐。本文将介绍如何在Python3.9环境下安装jieba库。 什么是jieba库 …

微服务: Seata AT 分布式事务以及配置方式(上篇)

目录 前言简介: 1. 安装seata-at -> 1.1 先看版本, 全局搜一下 -> 1.2 版本说明 alibaba/spring-cloud-alibaba Wiki -> 1.3 选择seata-at版本 -> 1.4 下载后按照下图进行创建文件 ---> 1.4.0 先在nacos创建命名空间seata ---> 1.4.1 registry.conf…

Chrome 的骑士盾,谷歌 Security Princess 访谈

童话故事里的公主都有一种需要被保护的感觉,就像马里奥大叔在这么多年来都要在库巴手上拯救出碧姬公主一样。不过在谷歌的这位 Security Princess 却手执盾牌,守护着大家的 Chrome 浏览器免受恶意程序攻击。小编这次就乘着世界网络安全日的机会&#xff…

微信小程序-生命周期

为什么今天突然总结一下微信小程序的生命周期呢?因为突然发现这个知识点忘得有点干净。所以今天就看一下微信小程序的生命周期是怎么个事吧! 目录 生命周期 生命周期的分类 生命周期函数的作用 生命周期函数的分类 生命周期是指一个对象从创建->…

Docker -- m1芯片 macOS 安装 nginx - 03

m1芯片 macOS 安装 nginx 一、安装docker提前准备二、下载nginx相关镜像三、运行相关容器四、运行并验证 一、安装docker提前准备 查看 d o c k e r \color{#FF7D00}{docker} docker版本:在 c o m m e n t \color{#FF7D00}{comment} comment 中输入 docker -version…

小红薯笔记/帖子采集工具

小红书【笔记/帖子】采集工具 链接: http://106.53.68.168:9920/xhs-keyword-spider 规则及操作 (1)规则: 按照关键词抓取规则:标题中或者正文内容中包含该关键词都能被抓取下来。多种搜索模式可选,分别…