当前位置: 首页 > news >正文

【论文阅读】提升的自动作文评分通过Prompt预测和匹配

摘要

  • 自动作文评分的目标时自动得评估文章的质量。它是自然语言处理领域中主要的教育应用之一。近来,预训练的技术被用于提升下游任务的性能表现。
  • 但是,通过预训练的编码器获取更好的特征,比如说prompts,是很重要的但是并没有被完完全全的研究。
  • 在这篇论文中,我们创造了一个prompt特征融合方法,这个方法更适合于微调。并且,我们通过设计两个辅助的任务(prompt预测和prompt匹配),使用多任务学习来获得更好的特征。
  • 实验结果显示两个辅助任务都可以提升模型性能,并且结合两个辅助任务和NEZHA预训练编码器的结果最好,QWK提升了2.5%并且皮尔逊相关系数平均提升了2%,对于所有在HSK数据集上的结果而言。

方法

动机

  • 尽管之前在标注好的作文评分模型上进行特定prompts的研究已经有比较好的结果,大多数研究都关注于文章的普通特征。只有一些研究关注prompt特征的提取,并且没有人曾尝试使用多任务的方法老使得模型捕捉到prompt特征,并且自动的对prompts敏感。
  • 整体架构图:
    在这里插入图片描述

输入和特征提取层

  • 一篇文章的输入表示是加入对应的词嵌入 E t o k e n E_{token} Etoken,段嵌入(segment) E s e g m e n t E_{segment} Esegment和位置嵌入 E p o s i t i o n E_{position} Eposition。为了完全开发prompt的信息,我们把prompt连接在文章的前面。
  • 每个输入的第一个token是特殊的分类token [ C L S ] [CLS] [CLS],并且prompt和文章被 [ ] S E P []SEP []SEP分隔开。在第 i i i个prompt的第 j j j篇文章的token嵌入是:
    E t o k e n ( i ) ( j ) = { E p r o m p t ( i ) , E e s s a y ( i ) ( j ) } E_{token}^{(i)(j)}=\left\{E_{prompt}^{(i)},E_{essay}^{(i)(j)}\right\} Etoken(i)(j)={Eprompt(i),Eessay(i)(j)}
  • E s e g m e n t E_{segment} Esegment E p o s i t i o n E_{position} Eposition被从预训练编码器的标注器中获取。
  • 我们使用BERT和NEZHA作为特征提取层。最终的隐藏层对应于 [ C L S ] [CLS] [CLS]token,也就是文章的表示 r e r_e re,这个文章的表示会被用于文章评分和子任务。

文章评分层

  • 我们将文章评分看作一个回归任务。为了使得数据映射到回归任务,真实的分数被变换范围到区间 [ 0 , 1 ] [0,1] [0,1]来训练,然后重新变换为之前的区间范围在验证的时候。变换的方式:
    s ( i ) ( j ) = s c o r e ( i ) ( j ) − m i n ( s c o r e ( i ) ) m a x ( s c o r e ( i ) ) − m i n ( s c o r e ( i ) ) s^{(i)(j)}=\frac{score^{(i)(j)}-min(score^{(i)})}{max(score^{(i)})-min(score^{(i)})} s(i)(j)=max(score(i))min(score(i))score(i)(j)min(score(i))
    在该公式中, s ( i ) ( j ) s^{(i)(j)} s(i)(j)是规约后的第i个prompt和第j篇文章。
  • 来自预训练编码层的文章的表示 r c r_c rc,被馈入一个线性层,采用sigmoid激活函数:
    s ^ = σ ( W e s ⋅ r e + b e s ) \hat{s}=\sigma(W_{es}\cdot{r_e}+b_{es} ) s^=σ(Wesre+bes)
    在该公式中, s ^ \hat{s} s^是AES系统的预测分数, σ \sigma σ是激活函数。
  • 作文评分系统的训练目标是
    l o s s e s ( s , s ^ ) = 1 N ∑ k = 1 N ( s k − s k ^ ) 2 loss_{es}(s,\hat{s})=\frac{1}{N}\sum_{k=1}^{N}(s^k-\hat{s^k})^2 losses(s,s^)=N1k=1N(sksk^)2

子任务1:Prompt预测

  • prompt预测的定义是:给定一篇文章,决定它属于哪个prompt。
  • 我们将prompt预测视为一个分类任务。输入是文章的表示 r e r_e re,它被馈入一个线性层,采用softmax函数。公式是:
    u ^ = s o f t m a x ( W p p ⋅ r e + b p p ) \hat{u}=softmax(W_{pp} \cdot r_e+b_{pp}) u^=softmax(Wppre+bpp)
    在该公式中, u ^ \hat{u} u^是分类结果的概率分布, W p p W_{pp} Wpp是参数矩阵。
  • 损失函数是:
    l o s s p p ( u , u ^ ) = − 1 N ∑ k = 1 N ∑ c = 1 C f ( u ( k ) , c ) l o g ( p p p ( k ) ( c ) ) loss_{pp}(u,\hat{u})=-\frac{1}{N}\sum_{k=1}^{N}\sum_{c=1}^{C}f(u^{(k)},c)log(p_{pp}^{(k)(c)}) losspp(u,u^)=N1k=1Nc=1Cf(u(k),c)log(ppp(k)(c))
    f ( x , y ) = { 1 , i f x = y 0 , e l s e x ≠ y f(x,y)= \begin{cases} 1,&if&x=y\\ 0,&else&x\neq y \end{cases} f(x,y)={1,0,ifelsex=yx=y
    在该公式中, u ( k ) u^{(k)} u(k)是第k个样本的真实的prompt标签, p p p ( k ) ( c ) p_{pp}^{(k)(c)} ppp(k)(c)是第k个样本属于类别 c c c的概率。

子任务2:Prompt匹配

  • prompt匹配的定义是给出一个prompt和一篇文章,判断这篇文章和这个prompt是否兼容。我们将prompt匹配问题看作是一个分类任务。
    v ^ = s o f t m a x ( W p m ⋅ r e + b p m ) \hat{v}=softmax(W_{pm} \cdot r_e+b_{pm}) v^=softmax(Wpmre+bpm)
  • 目标函数是:
    l o s s p m ( v , v ^ ) = − 1 N ∑ k = 1 N ∑ m = 0 M f ( v ( k ) , c ) l o g ( p p m ( k ) ( m ) ) loss_{pm}(v,\hat{v}) = -\frac{1}{N}\sum_{k = 1}^{N}\sum_{m = 0}^{M}f(v^{(k)},c)log(p_{pm}^{(k)(m)}) losspm(v,v^)=N1k=1Nm=0Mf(v(k),c)log(ppm(k)(m))
    v ( k ) v^{(k)} v(k)表明了输入的prompt和文章是否匹配。 m m m指明了匹配的程度,0表示匹配,1表示不匹配。

多任务的损失函数

  • 最终对每个输入的损失函数是文章评分和两个子任务的加权和:
    l o s s M T L = α ⋅ l o s s e s + β ⋅ l o s s p p + γ ⋅ l o s s p m loss_{MTL}=\alpha \cdot loss_{es}+\beta \cdot loss_{pp} + \gamma \cdot loss_{pm} lossMTL=αlosses+βlosspp+γlosspm

实验

数据集

  • HSK:汉语水平考试。动态作文语料库(http://hsk.blcu.edu.cn/),该数据集包括11569篇文章,由超过30个不同的 国家地区的外国人对超过50个不同的prompts的反应。经过处理,最终的统计如下表,10个提示之下的总计8878篇文章,每篇文章的分数在40到95分之间。
  • 分割比(训练集:验证集:测试集)=6:2:2,在测试阶段不仅在整个测试集上进行测试,也在分别在每个提示下进行测试。最后,报告平均的性能表现。
    在这里插入图片描述

评估指标

  • 对于主任务,我们使用QWK,来分析预测分数于真实之间的同意度。
    W i , j = ( i − j ) 2 ( N − 1 ) 2 W_{i,j}=\frac{(i-j)^2}{(N-1)^2} Wi,j=(N1)2(ij)2
    i i i j j j是人评估的黄金分数和AES系统分数,并且每篇文章由 N N N个可能的等级。
    Q W K = 1 − W i , j O i , j W i , j Z i , j QWK=1-\frac{W_{i,j}O_{i,j}}{W_{i,j}Z_{i,j}} QWK=1Wi,jZi,jWi,jOi,j
    在该公式中, O i , j O_{i,j} Oi,j表明人类评估等级为 i i i,并且AES系统评估等级为 j j j的文章个数。
  • 我们也使用了皮尔逊相关系数(PCC)来衡量关联,即使用PCC来评估AES系统排序的文章与黄金标准的相似度。
  • 对于辅助任务,是分类,采用F1和Acc作为评价指标。

结果及讨论

主要结果和分析

  • 下表展示了QWK和PCC在整个测试集上和每个prompt测试集上的平均结果。
    在这里插入图片描述
  • 用BERT和NEZHA的每个prompt的结果如下图:
    在这里插入图片描述
  • 下表展示了辅助任务在验证集上的结果:使用NEZHA作为特征提取模块的辅助任务的结果更好。
    在这里插入图片描述
  • 比较PP和PM的贡献,PM的贡献更高,更有效。
    在这里插入图片描述

损失权重的影响

  • 检验损失权重参数 α \alpha α,$ β \beta β γ \gamma γ怎样影响模型。
    在这里插入图片描述

知识点扫盲:

  • 基于预训练语言模型的研究思路通常是“pre-train,fine-tune”,融入了Prompt的新模式大致可以归纳成“pre-train,prompt,and predict”,在该模式中,下游任务被重新调整成类似预训练任务的形式。
  • Prompt刚刚出现的时候,还没有被叫做Prompt,是研究者为了下游任务设计出来的一种输入形式或模板,它能够帮助PLM“回忆”起自己在预训练时“学习到”的东西。

相关文章:

  • JPA-Specification常用条件查询构造方式
  • 瑞吉外卖(19) - 新增套餐业务开发
  • Android 的定位分层架构
  • 基于docker搭建es集群
  • 2.可视化基础(上)
  • 解决Vue项目中ESLint和Prettier冲突问题[Vue.js项目实践: 新冠自检系统]
  • 【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件
  • java毕业设计企业安全与设备管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • Message Bus Solace Deeper Dive
  • Android-AGP之手写你的第一款自定义plugin插件
  • 入门力扣自学笔记159 C++ (题目编号788)
  • java毕业设计奇妙店铺电子商务网站源码+lw文档+mybatis+系统+mysql数据库+调试
  • 类与对象(十四)----包package
  • Codeforces Round #820 (Div. 3)A. Two Elevators
  • 实现淘宝购物车RecyclerView或LIstView的嵌套选择的逻辑
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • httpie使用详解
  • Java比较器对数组,集合排序
  • Meteor的表单提交:Form
  • nodejs调试方法
  • scala基础语法(二)
  • Selenium实战教程系列(二)---元素定位
  • 今年的LC3大会没了?
  • 类orAPI - 收藏集 - 掘金
  • 两列自适应布局方案整理
  • 如何解决微信端直接跳WAP端
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • $forceUpdate()函数
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2022 CVPR) Unbiased Teacher v2
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (六)软件测试分工
  • .NET CLR Hosting 简介
  • .net framework profiles /.net framework 配置
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • :O)修改linux硬件时间
  • @Service注解让spring找到你的Service bean
  • [ C++ ] STL---仿函数与priority_queue
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [20170705]diff比较执行结果的内容.txt
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [AIGC] MySQL存储引擎详解
  • [Avalon] Avalon中的Conditional Formatting.
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BT]BUUCTF刷题第9天(3.27)