[0065] 以下结合具体实施例对本发明作进一步说明,但本发明的保护范围不限于以下实施例。
[0066] 设主观题题目T的参考答案为p,评分区间集合为y,则本实施例对于学生答案q的自动评卷过程如下:
[0067] S1.BERT编码层:将输入序列s送入BERT编码层进行处理,所述BERT编码层以微调的方式运行,得到BERT编码层的输出OBERT,并把OBERT作为简答题评卷的初始编码;
[0068] S2.语义细化层:使用Bi‑LSTM网络为BERT编码层的输出OBERT提取精细的全局上下文,使用Capsule网络为BERT编码层隐藏状态提取相关局部上下文,Bi‑LSTM网络和Capsule网络并行工作,得到输出 和OCaps;
[0069] S3.语义融合层:通过语义融合层将语义细化层的三种输出语义 和OCaps整合在一起,得到简答题评卷的连接语义表示X;使用一个多头注意力共同关注X中不(h)同位置的信息,得到简答题评卷的融合语义表示X ;
[0070] S4.预测层:对简答题评卷的融合语义表示X(h)执行一个最大池化操作,得到简答题评卷的最终语义表示Z,将Z输入到一个线性变换层,进行评卷区间的预测概率计算,[0071] 获得使预测概率为最大值的评卷区间;
[0072] S5.将标准交叉熵损失函数中的计算标签改进为三重热点黄金分布,训练实现最小化Ω中所有训练学生答案的损失误差,Ω是自动简答题评卷任务中的训练学生答案的集合。
[0073] 进一步的,步骤S1具体包括:
[0074] S1.1本实施例的BERT编码层以微调的方式运行,所述微调的方式运行是指BERT编码层的所有参数均从预训练的BERT模型初始化,并且这些参数需要与系统模型中的其他层共同训练和微调,BERT是指Google AI Language在文献“Devlin J,Chang MW,Lee K,Toutanova K(2019)BERT:Pre‑training of Deep Bidirectional Transformers for Language Understanding.In:Proceedings of the 2019 Conference of NAACL,pp 4171–4186”中提出的BERT:Bidirectional Encoder Representations from Transformers语言模型。
[0075] BERT编码层的输入序列s是由学生答案和参考答案的句子对所组成,如下所示:
[0076]
[0077] 其中,w[CLS]是BERT分类符[CLS]的编码, 是学生答案的字词编码序列,q是学生答案, 是参考答案的字词编码序列,p是主观题题目T的参考答案,w[SEP]是BERT分隔符[SEP]的编码,u是学生答案中字词的个数,v是参考答案中字词的个数,n是输入序列s的长度,且n=u+v+3,dw是BERT中字符编码的维度;所述“字词”是指文本经Bert的分词器Tokenzier分离出的语言片段;
[0078] S1.2将输入序列s送入BERT编码层进行处理,得到BERT编码层的输出OBERT,并把OBERT作为简答题评卷的初始编码,计算过程如下:
[0079]
[0080] 其中,BERT(·)表示BERT编码层, 是BERT编码层的第i个隐藏状态,db是BERT编码层的隐藏单元数。
[0081] 进一步的,语义细化层由一个Bi‑LSTM网络和一个带有位置信息的Capsule网络组成,Bi‑LSTM网络是指文献“SeppHochreiter and Jürgen Schmidhuber.1997.Long short‑term memory.Neural computation,9(8):1735–1780.”所提出的双向长短时记忆Bidirectional Long Short‑Term Memory网络,所述Capsule网络是指文献“21.Zhao W,Ye J,Yang M,Lei Z,Zhang S,Zhao Z(2018)Investigating Capsule Networks with Dynamic Routing for Text Classification.In:Proceeding of the 2018 Conference on Empirial Methods in Natural Language Processing,pp 43‑48”所提出的Capsule胶囊网络。其中,使用Bi‑LSTM网络为BERT编码层的输出OBERT提取精细的全局上下文,使用Capsule网络为BERT编码层隐藏状态提取相关局部上下文,Bi‑LSTM网络和Capsule网络并行工作。
[0082] 步骤S2具体包括:
[0083]
[0084]
[0085]
[0086] 其中, 表示一个按从左到右时序处理OBERT的LSTM网络, 表示一个按从右到左时序处理OBERT的LSTM网络, 表示 网络的输出, 表
示 网络的输出,Capsules(OBERT)表示一个输入为OBERT的Capsule网络,OCaps表示Capsules(OBERT)网络的输出, 分别表示 和 网络
中第i个时间步的隐藏状态, 表示Capsule网络中卷积胶囊层的第i个输出向量,dL是LSTM网络中隐藏单元的数量,dc是Capsule网络中卷积核的数量;
[0087] 对 和OCaps使用layer normalization进行层归一化处理,处理为‑1和1之间的不饱和值。所述layer normalization是文献“Ba J L,Kiros J R,Hinton G E.Layer normalization.in:arXiv:1607.06450,2016.”所提出的层归一化layer normalization算法。
[0088] 语义融合层按如下步骤将语义细化层的三种输出语义 和OCaps整合在一起。步骤S3中,语义融合层的具体处理步骤包括:
[0089] 将层归一化处理后的 和OCaps连接在一起,得到简答题评卷的连接语义表示X,计算过程如下:
[0090]
[0091]
[0092]
[0093]
[0094] 其中,d=2dL+dc,xi为输入序列s中第i个字词所对应的连接语义, 为输入序列s中第i个字词所对应的全局上下文表示, 为输入序列s中第i个字词所对应的局部上下文表示。
[0095] 更进一步的,使用一个多头注意力共同关注X中不同位置的信息具体包括:
[0096]
[0097] 其中,MHA(X,X,X)表示输入Q=K=V=X的多头注意力MHA(Q,K,V),多头注意力MHA(Q,K,V)的计算过程如下:
[0098] MHA(Q,K,V)=tanh([head1;head2;...;headh]wR) (11)
[0099] headi=Attention(Qi,Ki,Vi)=Attention(QwQ,KwK,VwV) (12)[0100]
[0101] 其中, 是多头注意力的三个输入,headi表示多头注意力中的第i个头,tanh(·)表示双曲正切函数, 是可学习的参数矩阵dK=dV=d÷h,h是多头注意力中头的数量。
[0102] 进一步的,预测层先对融合语义表示X(h)执行最大池化操作,再输入到线性变换层,进行评卷区间的概率计算。
[0103] 步骤S4中,最大池化操作的具体步骤包括:
[0104]
[0105] 其中,zj是Z的第j个元素,计算过程如下:
[0106](h)
[0107] 其中,Max(·)表示求最大值的函数, 为X 的第i行第j列的元素,Z是给定简答题评卷的最终语义表示。
[0108] 更进一步的,线性变换层的具体步骤包括:
[0109] o=MZΤ+b (16)
[0110]
[0111]
[0112] 其中, 是评卷区间表示矩阵,ZΤ表示对Z进行转置, 是一个偏置向量,dy是评卷区间的个数,o是表示所有评卷区间置信分数的向量,oy表示标注为评卷区间y的样本的置信分数,oi表示样本在第i个评卷区间上的置信分数,Pr(y|Z)表示给定简答题评卷的最终语义表示Z在评卷区间y上的预测概率,Y是所有评卷区间按从低分到高分排列*的列表,y为最终评定的评卷区间, 表示返回使得Pr(y|Z)为最大值
的评卷区间,exp(·)表示以自然常数e为底的指数函数,θ是所有可学习的参数集合。
[0113] 进一步的,步骤S5具体包括:
[0114]
[0115] 其中,Ω是自动简答题评卷任务中的训练学生答案的集合,yi是Ω中第i个训练学生答案的标注标签,Zi是Ω中第i个训练学生答案的简答题评卷的最终语义表示, 和分别代表在所有评卷区间按从低分到高分排列的列表Y中yi的左、右相邻区间;
[0116] 训练实现最小化Ω中所有训练学生答案的损失误差。
[0117] 本实施例将预训练的BERT模型在自动简答题评卷任务中的应用从微调方法扩展到与双向LSTM和胶囊网络的结合。
[0118] 应用实例
[0119] 1.实例环境
[0120] 本实例使用Google AI Language开发的BERT‑BASE版本作为BERT编码层的预训练模型,该BERT模型包括12层Transformers,768个隐藏单元,12个多头,以及总参数=110M);本实例将每个LSTM网络中隐藏单元的数量设置为200,并返回所有时间步中的隐藏状态;本实例将Capsule网络中的卷积核数设置为400,每个卷积核的大小为3,Capsule网络中的动态路由数为3;在多头注意力中,设置了注意力的头数为2,每个头分配400维的参数;本实例在Bi‑LSTM网络、Capsule网络和预测层中将dropout rate设置为0.1;为了最小化损失值,本实例使用了Adam Optimizer优化器,并将学习率设置为2e‑5,batch size大小设置为64;
在训练期间,本实例将epochs从5增加到10。
[0121] 2.数据集
[0122] 本实例使用在国际上广泛使用的Mohler数据集作为评测基准,该数据集由美国北德克萨斯大学Mohler等人创建,是一个关于计算机科学的简答题数据集。它包含80个问题和2,273个学生答案,每个学生的答案由两位老师按0到5的整数打分。本实例取两个标记分数的平均值作为学生答案的真实分数,得到11个评卷区间,从0到5,间隔为0.5。
[0123] Mohler数据集仅包含2273个学生答案与参考答案对,这对于深度学习模型来说太少了。为了扩展数据集,本实例从每道题中选择一个正确的学生答案作为补充参考答案,将训练集从2083对扩展到大约3300对。本实例采用12折交叉验证法进行模型的评估,并报告预测分数与真实分数之间的Pearson相关系数(Pearson's r)、平均绝对误差(MAE)和均方根误差(RMSE)。
[0124] 3.对比方法
[0125] 本实例将本发明的模型与6种消融模型与11种同类方法进行比较,对比方法如下所示:
[0126] (1)消融模型
[0127] 消融模型是本发明模型的简化版,它去除了本发明模型的某种功能,用于检测被去除的功能在本发明模型中的作用,本实例为本发明的模型设计了如下6种消融模型:
[0128] ·w/o refinement:意味着语义细化层从本发明的模型中移除,模型退化为微调的BERT‑BASE。
[0129] ·w/o multi‑head:意味着语义融合层中的多头自注意力从本发明的模型中移除。
[0130] ·w/o Bi‑LSTM with BERT:意味着语义细化层中的Bi‑LSTM网络从本发明的模型中移除,其输出被BERT编码层的输出替换。
[0131] ·w/o Capsule with BERT:意味着语义细化层中的Capsule网络从本发明的模型中移除,其输出被BERT编码层的输出替换。
[0132] ·w/o Capsule with CNN:意味着语义细化层中的Capsule网络从本发明的模型中移除,并替换为CNN网络。
[0133] ·w/o triple‑hot loss:意味着三重热点损失函数从本发明的模型中删除,并由标准的单独热点损失函数代替。
[0134] (2)同类方法
[0135] ·LSTM‑EMD[1]:一种深度学习方法,它使用基于推土机距离(earth‑mover distance)的池化层将Bi‑LSTM框架用于简答题自动评卷。本实例还引用了它报告的三个模型结果:仅使用最后一个隐藏状态的LSTM‑Last、使用最大池化的LSTM‑Max和使用平均池化的LSTM‑Avg。
[0136] ·基于特征的预训练模型[2]:使用各种预训练的迁移学习模型,例如ELMo[3]、GPT[4]、BERT[5]和GPT‑2[6],为简答题自动评卷抽取句子嵌入。
[0137] ·Bi‑LSTM+Capsule(CNN):为了与传统深度学习的评卷效果进行比较,本实例在本发明的模型中使用Glove[7]词嵌入代替BERT编码层,形成一个基于词嵌入、与本发明的总体结构相同的深度学习模型。
[0138] ·微调的BERT‑BASE:为了与BERT模型的评卷效果进行比较,本实例只在预训练的BERT‑BASE之上增加了一个分类层来进行简答题自动评卷,并联合对分类层和所有预训练参数进行了微调。
[0139] 其中,上述关联的文献分别为:
[0140] 1.Kumar S,Chakrabarti S,Roy S(2017)Earth movers distance pooling over Siamese lstms for automatic short answer grading.In:Proceedings of the International Joint Conference on Artificial Intelligence,pp 2046–2052[0141] 2.Gaddipati SK,Nair D,Plger PG(2020)Comparative Evaluation of Pretrained Transfer Learning Models on Automatic Short Answer Grading.In:arXiv:2009.01303v1
[0142] 3.Peters ME,Neumann M,Iyyer M,Gardner M,Clark C,Lee K,Zettlemoyer L(2018)Deep contextualized word representations.In:NAACL,pp 2227–2237.[0143] 4.Radford A,Narasimhan K,Salimans T,Sutskever I(2018)Improving language understanding by generative pre‑training.In:OpenAI Blog[0144] 5.Devlin J,Chang MW,Lee K,Toutanova K(2019)BERT:Pre‑training of Deep Bidirectional Transformers for Language Understanding.In:Proceedings of the 2019 Conference of NAACL,pp 4171‑4186
[0145] 6.Radford A,Wu J,Child R,Luan D,Amodei D,Sutskever I(2019)Language models are unsupervised multitask learners.In:OpenAI Blog,1(8):9[0146] 7.https://github.com/maciejkula/glove‑python
[0147] 4.实例对比结果
[0148] 表2与消融模型的对比结果(平均绝对误差(MAE)和均方根误差(RMSE)越低越好;Pearson相关系数(Pearson r)越高越好)
[0149]
[0150] 在表2中,w/o refinement的消融结果表明,本实施例的语义细化层显着提高了BERT模型在简答题评卷任务中的分级精度。Mohler数据集上的测试题和训练题来自同一个领域。因此,这个消融结果意味着本发明的语义细化层可以显着提高BERT模型对领域特征的泛化能力。w/o Bi‑LSTM with BERT的消融结果表明,直接用BERT的输出替换Bi‑LSTM后,模型在简答题评卷任务中的分级精度出现下降。这意味着Bi‑LSTM网络中的复杂门结构可以从BERT模型的输出中提取更精细的上下文信息。w/o Capsule with BERT的消融结果表明,直接用BERT的输出替换Capsule网络后,模型在简答题评卷任务中的分级精度有明显下降。这意味着Capsule网络可以从BERT模型的输出中提取更精细的局部信息。w/o Capsule with CNN的消融结果表明,在基于BERT的深度神经网络中,带有位置信息的Capsule网络的性能优于普通CNN网络。w/o multi‑head的消融结果表明,语义融合层中的多头注意力机制对提高模型性能起到了重要作用。此外,w/o triple‑hot loss的消融结果表明,所提出的三重热点损失策略将我们模型在Mohler数据集上的Pearson r从0.837显着提高到0.897。
[0151] 表3与同类方法的对比结果(平均绝对误差(MAE)和均方根误差(RMSE)越低越好;Pearson相关系数(Pearson r)越高越好;*表示模型为本实例实现)
[0152]
[0153] 表3的实验结果表明,本发明提出的基于BERT的自动简答题评卷深度神经网络模型,实现了0.897、0.827和0.248的最佳Pearson r、RMSE和MAE结果,显然超过了所有同类方法的结果,这充分说明了本发明方法是可行和优秀的。同时,表3的实验结果表明通过添加语义细化层,本发明的模型在简答题评卷任务中将微调BERT模型的Pearson's r从0.801显着提高到0.897,这表明本发明的语义细化层可以显着提高BERT模型泛化领域特征的能力。