返回列表

29th Place Solution for the CommonLit - Evaluate Student Summaries Competition

574. CommonLit - Evaluate Student Summaries | commonlit-evaluate-student-summaries

开始: 2023-07-12 结束: 2023-10-11 智能评测 数据算法赛
CommonLit评估学生摘要竞赛第29名解决方案

CommonLit评估学生摘要竞赛第29名解决方案

作者:Yusuke Nakayama

排名:第29名

发布日期:2023年10月14日

感谢主办方组织这次竞赛,也感谢所有分享宝贵信息的参与者。我学到了很多。

背景

  • 业务背景:评估学生摘要质量,预测内容和语言表达分数
  • 数据背景:包含学生摘要文本、提示文本及对应评分

方法概述

我的方法是平均以下两个模型:

  • LightGBM堆叠模型(使用9个deberta和bart模型的元特征)
  • deberta-v3-large模型(处理摘要文本和提示文本的连接,实验ID: 10)

后一个模型的关键点是使用注意力掩码,仅关注摘要文本部分,这是其他顶级解决方案中提到的技巧。

模型训练设置

我训练了如下表所示的deberta模型。其中8个是deberta-v3-large,2个是bart-large。bart-large模型将提示文本作为编码器输入,摘要文本作为解码器输入(但实际效果可能不太理想)。交叉验证策略使用Group K折(以prompt_id分组)。

实验ID 模型 输入 池化方法 最大长度 轮数 冻结层 损失函数 AWP CV 公开榜 私有榜
1deberta-v3-large文本注意力8221018smooth l10.5420.4940.541
2bart-large文本, 问题+提示文本均值8224-smooth l10.5550.5140.556
3deberta-v3-large-squad2文本注意力822418smooth l10.5810.4960.549
4deberta-v3-large文本注意力8221018smooth l10.5350.4880.532
5bart-large文本+问题, 提示文本注意力82210-smooth l10.5330.4860.510
6deberta-v3-large问题+标题+文本注意力8221018smooth l10.5380.4970.563
7deberta-v3-large问题+标题+文本注意力5124-smooth l10.6280.5190.535
8deberta-v3-large标题+问题+文本多尺度8221018smooth l10.5350.4770.538
9deberta-v3-large文本注意力822418MSE+排序0.5510.4870.544
10deberta-v3-large文本+标题+问题+提示文本见下文训练:1800
预测:1024
418smooth l10.5040.4610.47

所有训练都使用了0.8-0.9的层间学习率衰减。

  • *最后3个隐藏状态的损失之和
  • **内容和语言表达分别使用两个注意力池化层
  • ***在词、句、段不同层次池化后汇总结果

LightGBM元特征堆叠

我使用LightGBM堆叠了9个模型(实验ID 1-9),使用的元特征包括:

  • 摘要文本字符数
  • 提示文本字符数
  • 摘要与提示文本的唯一词重叠数(不含标点)
  • 摘要与提示文本的词重叠数
  • 重叠二元组比例
  • 重叠四元组比例
  • 摘要与提示文本的TF-IDF余弦相似度
  • 各摘要句与提示句编辑距离的平均值
  • 摘要词数(不含标点,纠正拼写错误)
  • 纠正拼写后的唯一词重叠数
  • 纠正拼写后的重叠二元组数
  • 纠正拼写后的重叠二元组比例
  • 相似摘要文本数量(使用Universal Sentence Encoder计算)
  • 提示文本可读性分数

该堆叠模型交叉验证分数达到0.478。

模型融合

最终提交结果是堆叠模型和长token模型(实验ID 10)的简单平均,交叉验证分数0.471,公开榜0.433。我也尝试了nelder-mead权重优化,但效果不如简单平均。

方案细节

有效方法

摘要文本和提示文本输入模型

最初我将摘要和提示文本直接连接输入deberta-v3-large,但交叉验证没有提升。我意识到需要让模型识别摘要文本的位置,因此准备了注意力掩码来标记摘要、标题、问题和提示文本的位置。

注意力掩码示意图

注意力掩码示意图

这些掩码与deberta输出结合使用,模型架构如下:

模型架构图

模型架构图

该模型训练时token长度设为1800,但预测时受9小时时间限制只能缩减到1024。该模型(实验ID 10)显著提升了挑战性提示的交叉验证分数,达到CV 0.504,公开榜0.461,推理时间超过4小时。

无效尝试

基于CNN的句子相似度矩阵方法

我注意到当摘要大量复制提示文本时会出现显著误差,这些摘要内容和语言表达得分都很低。评分者遇到这类摘要时往往会停止阅读并直接给低分。因此我尝试计算摘要句与提示句之间的编辑距离,构建N×M相似度矩阵:

编辑距离相似度矩阵

编辑距离相似度矩阵

将该矩阵输入CNN模型生成目标值,但效果不如预期(该想法来自这篇论文)。

参考资料

同比赛其他方案