Dynamic Key-Value Memory Networks for knowledge Tracing
Memory-Augmented Neural Networks
MANN \text{MANN} MANN是一种用于多种NLP任务的网络结构,例如问答系统,自然语言翻译、单样本学习。
典型的模型包括两部分:存储信息的记忆矩阵和和外界进行读写交换的控制器。读写操作通过 attention \text{attention} attention机制来实现。大多数之前的论文中使用相似的方法来计算读操作的权重。对于一个输入 k t k_t kt,对每一个内存槽 M t ( i ) M_t(i) Mt(i)计算余弦相似度或者內积 K [ k t , M t ( i ) ] K[k_t,M_t(i)] K[kt,Mt(i)],之后经过 Softmax \text{Softmax} Softmax层和一个正值的加强 β t \beta_t βt,从而得到读权重 w t r : w t r ( i ) = Softmax ( β t K [ k t ] , M t ( i ) ) w_t^r:\ w^r_t(i)= \text{Softmax}(\beta_tK[k_t],M_t(i)) wtr: wtr(i)=Softmax(βtK[kt],Mt(i)),其中 Softmax = e z i ∑ j e z j \text{Softmax}=\frac{e^{z_i}}{\sum_je^{z_j}} Softmax=∑jezjezi。对于写过程,注意力机制用于管理记忆的内容和位置。此外一种单纯的、基于内容的写入器在 [ 1 ] [1] [1]中被提出,称为 least recently used access (LRUA) module \text{least recently used access (LRUA) module} least recently used access (LRUA) module,它会向最近使用过的记忆槽或者最近最多使用的记忆槽写入。
由于循环写入或者写出的原因, MANN \text{MANN} MANN可以看做一种特殊的 RNN \text{RNN} RNN。然而 MANN \text{MANN} MANN和普通的卷积 RNNs \text{RNNs} RNNs不同。在于以下几点:
- 传统的 RNN \text{RNN} RNN模型使用单一的隐藏状态向量临时信息编码,而 MANN \text{MANN} MANN使用额外的记忆矩阵,使得其能够存储更多的信息。
- 传统 RNN \text{RNN} RNN状态之前的转换是非结构化并且全局化的,而 MANN \text{MANN} MANN的读写操作可以实现局部状态的改变。
- 传统 RNN \text{RNN} RNN参数数目依赖于隐层状态的大小,而 MANN \text{MANN} MANN可以通过增加记忆插槽来增加参数数量,结果是影响计算的效率。
Memory-Augmented Neural Network for Knowledge Tracing
为了解决 Knowledge Tracing \text{Knowledge Tracing} Knowledge Tracing的问题, MANN \text{MANN} MANN中的记忆矩阵被看做学生的对各个知识点的掌握状态。记忆 M t M_t Mt是一个 N × M N×M N×M的矩阵, N N N表示记忆的位置(插槽 id \text{id} id),而 M M M表示每一个位置的向量维度。对于一个时间步 t t t,输入进 MANN \text{MANN} MANN的是联结嵌入向量 v t = ( q t , r t ) v_t=(q_t,r_t) vt=(qt,rt),其中 q t q_t qt</