论文笔记 RKT : Relation-Aware Self-Attention for Knowledge Tracing
1 摘要
提出了一种关系感知型的自注意力机制RKT,引入该机制来整合上下文信息,上下文信息包括习题间的关系以及学生的遗忘行为, 习题间关系通过习题文本和学生表现来建模, 学生遗忘行为通过指数衰减核函数建模。
2 模型方法
每个交互为三元组\((e_i,r_i,t_i)\),问题定义为给定过去的交互历史\(X=\{x_1,...x_{n-1}\}\),预测学生在习题\(e_n\)上的表现。为了能够准确预测,本文的思想是找到\(e_n\)和之前的交互的关系,这种关系受两种因素影响:(1)下一个习题和之前习题的关系,(2)距离过去的交互经过的时间。本文提出的模型将这种关系作为上下文信息整合到注意力权重当中,修改后的注意力权重用于计算以往交互的加权和作为关于第\(n\)个交互的输出。
2.1 习题表示
首先从习题的文本中学习语义表示,使用word embedding,学习一个函数\(f:M\rightarrow \mathbb{R}^d\), 将字典M中的单词映射到d维向量, 随后整个习题文本的表示是由每个单词的加权和得到的,使用Smooth Inverse Frequency(SIF)方法,它可以降低常见词(不重要的)的权重,整个习题的文本表示为:
a是可训练参数,\(s_i\)是第\(i\)的习题,p(w)是词频
note:由于很多题目中存在一些数学符号,它本身带有很丰富的信息,不能舍弃,本文采用了一个特别的处理,将其转化为TEX编码,比如\(\sqrt{x}\)转为’sqrt x',
2.2 习题关系矩阵计算
构建习题关系矩阵(exercise relation matrix),\(A\in \mathbb{R}^{E×E}\),\(A_{i,j}\)表示习题j对习题i的重要性。该值的计算由两部分:(1)学生表现数据(2)文本内容。前者计算在解决习题j为解决习题i所获得的知识的相关性,后者衡量语义相似度。

首先建立一个如图所示的表,(习题j出现在i之前),如果有多次j在i之前,取最后一次。根据这个表计算Phi系数,常用来衡量二值变量的关系,具体为
\(\phi_{i,j}\)处于-1和1之间,越高说明j对i的影响越大,选择Phi的原因在于它解释性强,且对两个变量不等的情况进行了显式的惩罚
另外就是考虑习题文本上的关系,这里直接用余弦相似度:
最终
θ是控制矩阵稀疏度的阈值
2.3 个人关系建模
习题关系建模:直接由上一节的\(A\)得到,\(\mathbf{R}^E=[\mathbf{A_{e_n,e_1},A_{e_n,e_2},...,A_{e_n,e_n-1}}]\)
遗忘行为建模:引入一个核函数,建模过去的习题在时间间隔层面上的影响,给定时间序列\(\mathbf{b}=(t_1,...,t_{n-1})\),学生在\(t_n\)尝试下一习题,则\(\Delta_i=t_n-t_i\),那么可以得到\(\mathbf{R}^T=[exp(-\Delta_1/S_u),...,exp(-\Delta_{n-1}/S_u)\),\(S_u\)表示学生u的记忆能力,是可训练参数
最终可以得到关系系数:
相关性越高,该值越大
2.4 输入层
原始输入为三元组\((e_j,r_j,t_j)\),首先获得习题的文本表示,然后,把\(r_j\)扩展为\(\mathbf{r}_j=[r_j,r_j,...,r_j]\in\mathbb{R}^d\),拼接到习题表示之后,然后,定义position向量\(\mathbf{P}\in\mathbb{R}^{l×2d}\),最终原始输入表示为\(\hat{\mathbf{x}}_j=[E_{e_j}\oplus\mathbf{r}_j]+\mathbf{P}_j\)
2.5 关系感知的自注意力层
先计算注意力权重




2.6 预测层
经过一个以sigmoid为激活函数的全连接层,得到预测结果(是否能答对该习题)

浙公网安备 33010602011771号