Dynamic Key-Value Memory Networks for knowledge Tracing
Memory-Augmented Neural Networks
MANN\text{MANN}MANN是一种用于多种NLP任务的网络结构,例如问答系统,自然语言翻译、单样本学习。
典型的模型包括两部分:存储信息的记忆矩阵和和外界进行读写交换的控制器。读写操作通过attention\text{attention}attention机制来实现。大多数之前的论文中使用相似的方法来计算读操作的权重。对于一个输入ktk_tkt,对每一个内存槽Mt(i)M_t(i)Mt(i)计算余弦相似度或者內积K[kt,Mt(i)]K[k_t,M_t(i)]K[kt,Mt(i)],之后经过Softmax\text{Softmax}Softmax层和一个正值的加强βt\beta_tβt,从而得到读权重wtr: wtr(i)=Softmax(βtK[kt],Mt(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=ezi∑jezj\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中的记忆矩阵被看做学生的对各个知识点的掌握状态。记忆MtM_tMt是一个N×MN×MN×M的矩阵,NNN表示记忆的位置(插槽id\text{id}id),而MMM表示每一个位置的向量维度。对于一个时间步ttt,输入进MANN\text{MANN}MANN的是联结嵌入向量vt=(qt,rt)v_t=(q_t,r_t)vt=(qt,rt),其中qtq_tqt是题目标签(知识点)集合,rt