原文地址:Towards a Holistic Understanding of Mathematical Questions with Contrastive Pre-training
Accepted by AAAI 2023
一、现状
与自由格式的文本不同,数学习题含有隐式的意图和数学逻辑,由复杂的内容(公式)和相关数学知识概念组成(函数)。专注于习题内容的细节的MathBERT缺乏对数学习题整体意思的考虑,比如图1中,
Q
1
Q_1
Q1和
Q
2
Q_2
Q2字面上大不相同,但是它们被认为在数学上是相似的,因为
Q
1
Q_1
Q1和
Q
2
Q_2
Q2具有相同的数学知识和相似的解决方案,具有相似的整体目的和解题思路。
动机
因此,我们希望设计一个特殊的预训练方法(instruct the model)理解数学习题的整体意思。
贡献
首先,考虑到数学习题复杂的领域特征,我们分别针对习题的内容和结构设计了两级习题增广,并在内容层面进一步增广了文本和数学公式两个关键组成部分。通过这种方式,我们可以生成具有相似潜在意图的不同习题对。然后,为了充分利用知识概念的层次信息,我们设计了一种新的知识层次感知排序策略(KHAR),该策略以细粒度的方式对数学问题之间的相似性进行排序。然后,我们基于增广和排序的样本,优化带有排序对比损失的问题表示(representation)。最后,我们在两个真实的数据集上进行了大量的实验,结果表明我们提出的预训练方法是有效的,并且学习到的问题表示可以用于各种下游任务(习题相似度、难度预测、知识点预测)。
二、QuesCo框架
首先对数学习题进行形式化定义,并提出问题表示问题,然后介绍QuesCo框架和预训练方法。
习题定义
q
=
(
x
,
k
)
q=(x,k)
q=(x,k) : 习题
q
q
q由内容
x
x
x和相关知识概念
k
k
k组成
x
=
x
1
,
x
2
,
⋅
⋅
⋅
,
x
T
x = {x_1, x_2, · · · , x_T}
x=x1,x2,⋅⋅⋅,xT 代表纯文本和公式中各种运算符、变量等的T个tokens
k from KH = {K, E},如图1右所示,KH是一个L层的知识体系树,由知识概念节点和父子关系组成,
K
l
=
k
1
l
,
k
2
l
,
⋅
⋅
⋅
,
k
n
l
K^l = {k^l_1, k^l_2, · · · , k^l_n}
Kl=k1l,k2l,⋅⋅⋅,knl,越小的
l
l
l表示知识层次越深,表示细粒度更大的知识概念,如
(
k
i
l
,
k
j
l
+
1
)
∈
E
(k^l_i , k^{l+1}_j ) ∈ E
(kil,kjl+1)∈E表明代表幂函数的
k
j
l
+
1
k^{l+1}_j
kjl+1是比代表函数的
k
i
l
k^l_i
kil更深层次的知识概念
定义完了习题之后,希望用一个用一个d维向量 v ∈ R d v∈R^d v∈Rd来表示q,以便转移到几个下游任务中,例如难度估计。
模型概述
在数学习题理解中,整体意图比字面细节更重要。然而,现有的习题预训练方法主要依赖于掩码语言模型MLM的一些变体,在标记级细节方面更有效,但在整体目的上却失败了,相比之下,对比学习在学习整体表征方面表现出很强的有效性,我们基于对比学习,提出了一种新的数学问题预训练方法——QuesCo。图2(a)描述了QuesCo的框架。
我们的目标是通过将整体意图更相似的习题拉近来学习综合问题表示,因此,最重要的问题是构造与数学整体相似性一致的样本对。
具体来说,对于给定的习题(即锚习题),我们提出了习题增广策略(图2(b))来生成字面上不同,整体意图上相似的积极样本,分别对习题的内容(即文本和公式)和结构进行两级扩展。
此外,基于知识概念中的丰富信息,设计了知识层次感知排序模块(KHAR),通过寻找不同习题中最大共享细粒度(深度)知识概念,得到两个习题的相似度,进而排序。
习题内容增广
文本增广
不改变数学习题文本意思的前提下
- 随机交换两个词的位置
- 随机删除
同义词替换不能用,因为数学概念是唯一的
公式增广
公式由变量、运算符和数字组成
对于变量:
- 变量换元: f ( x ) = c o s ( π / 2 + 2 x ) f(x)=cos(π/2+2x) f(x)=cos(π/2+2x)与 f ( u ) = c o s ( π / 2 + 2 u ) f(u)=cos(π/2+2u) f(u)=cos(π/2+2u)
- 变量scale: f ( x ) = c o s ( π / 2 + 2 x ) f(x)=cos(π/2+2x) f(x)=cos(π/2+2x)与 f ( x ) = c o s ( π / 2 + 4 x ) f(x)=cos(π/2+4x) f(x)=cos(π/2+4x)的答案不同,解题思路一致
对于运算符:
- 相似替换: s i n sin sin换成 c o s cos cos
对于数字:
- 随机替换
习题结构增广
这个结构增广的意思是一道习题有几个平行的条件子句(题设),通过打乱顺序和随机插入无用信息,并不会改变习题整体意图。
知识层次感知排序 Knowledge Hierarchy-Aware Rank
还是用图1来讲这个KHAR是干什么用的
如图,
Q
1
Q_1
Q1与
Q
2
Q_2
Q2在数学上十分相似,属于一个解题思路,这是因为
Q
1
Q_1
Q1和
Q
2
Q_2
Q2共享相同的知识概念"三角函数",而
Q
1
Q_1
Q1和
Q
5
Q_5
Q5就大不相同,可见
Q
5
Q_5
Q5是求体积的属于几何学的范畴里。但是这里并不是说
Q
1
Q_1
Q1和
Q
2
Q_2
Q2是正样本对,
Q
1
Q_1
Q1和其他的
Q
3
Q_3
Q3、
Q
4
Q_4
Q4就一定要用负样本对去越学越远,虽然
Q
3
Q_3
Q3、
Q
4
Q_4
Q4的具体知识概念与Q1不同,但
Q
3
Q_3
Q3与
Q
1
Q_1
Q1更相似,这是因为
Q
3
Q_3
Q3与
Q
1
Q_1
Q1比
Q
4
Q_4
Q4与
Q
1
Q_1
Q1共享更深的知识概念。如图右,
Q
3
Q_3
Q3与
Q
1
Q_1
Q1共享"函数",
Q
4
Q_4
Q4与
Q
1
Q_1
Q1"共享代数","函数"比"代数"深一层。
通过上面这个公式来计算习题
q
i
q_i
qi、
q
j
q_j
qj的L层知识层次中的距离:KH-distance
公式(1)中的u为
q
i
q_i
qi、
q
j
q_j
qj最深的知识概念共享层
根据khd算出所有习题
q
i
q^i
qi与目标习题
q
q
q的距离,得到相似分排序
h
(
⋅
)
h(·)
h(⋅)表示相似度函数,可以用向量的点积来算
通过习题增广和KHAR模块,对于目标习题
q
q
q,我们可以在公式(2)中获得具有细粒度相似度排序的对比对,采用排序信息噪声对比估计损失(RINCE)作为损失函数:
L
r
a
n
k
=
∑
0
L
l
i
L_{rank} = \sum^L_0 l_i
Lrank=∑0Lli
Q
i
Q^i
Qi和
Q
j
Q^j
Qj来自公式(3)定义的第i、j层的习题集
q
+
q^+
q+是从目标习题
q
q
q增广而来的,因此$ khd(q, q^+) = 0$
实验部分
数据集有两个,SYSTEM1 和 SYSTEM2
- SYSTEM1:来自在线学习系统,智学
- SYSTEM2:从考试和教科书中收集高中数学问题,并由专家标记
两个数据集的知识层次都由教育专家定义,数学公式都用latex写的
评估任务:相似度预测、概念预测和难度估计
Baseline:BERT、DAPT-BERT、ConSERT、SCL、QuesNet、DisenQNet
QuesCo设置:
- 编码器:BERT-Base-Chinese
- 每种增强策略的应用概率:p = 0.3
- 8:2划分数据集
- 设备GPU:Tesla V100
实验结果