论文笔记 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)方法,它可以降低常见词(不重要的)的权重,整个习题的文本表示为:

\[E_i = \frac{1}{|s_i|}\sum_{w\in s_i}\frac{a}{a+p(w)}f(w)\tag{1} \]

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} = \frac{n_{11}n_{00}-n_{01}n_{10}}{\sqrt{n_{1*}n_{01}n_{*1}n_{*0}}} \]

\(\phi_{i,j}\)处于-1和1之间,越高说明j对i的影响越大,选择Phi的原因在于它解释性强,且对两个变量不等的情况进行了显式的惩罚

另外就是考虑习题文本上的关系,这里直接用余弦相似度:

\[sim_{i,j}=\frac{E_iE_j}{||E_i||_2||E_j||_2} \]

最终

\[A_{i,j}=\begin{cases} \phi_{i,j}+sim_{i,j},& \phi_{i,j}+sim_{i,j}>\theta\\ 0,& otherwise \end{cases} \]

θ是控制矩阵稀疏度的阈值

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的记忆能力,是可训练参数
最终可以得到关系系数:

\[\mathbf{R}=softmax(\mathbf{R}^E+\mathbf{R}^T) \]

相关性越高,该值越大

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为激活函数的全连接层,得到预测结果(是否能答对该习题)

\[p=\sigma(\mathbf{FW+b}) \]

posted @ 2021-02-20 16:15  MengHD  阅读(1018)  评论(0)    收藏  举报