Memory network (MemNN) & End to End memory network (MemN2N) & Dynamic memory network

  • 时间:
  • 浏览:0
  • 来源:万人炸金花棋牌_万人炸金花棋牌官网

The description, as well as the diagrams, on the end to end memory networks (MemN2N) are based on End-To-End Memory Networks, Sainbayar Sukhbaatar etc..

其中\(W\)是字典中的所有词,\(s_r\)是另外一一个多 计算\([q, m_{01}, m_{02}]\)和词\(w\)的匹配度。在大伙儿儿的例子中,最后的回答\(r\)是“office”。

$$ u = embedding_B(q) $$

回答一一个多 问句\(q\),首先通过打分函数\(s_0\)计算出与\(q\)最相关的说说\(m_{01}\)。因此将说说\(m_{01}\)与\(q\)结合起来形成新的问句\([q, m_{01}]\),因此定位最高分的下一一个多 说说\(m_{01}\)。最后形成另外一一个多 问句\([q, m_{01}, m_{02}]\)。此时大伙儿儿何必 是用该问句去查询下一一个多 句,却说通过以前打分函数定位一一个多 词\(w\)。以上述例子来说明该过程。

$$ \sum\limits_{\overline{r}\not=r}\max(0, \gamma - s_0(\left[x, m_{01}, m_{02}\right], r) + s_0(\left[x, m_{01}, m_{02}\right], \overline{r})) $$

用边缘损失函数训练\(U_0\)和\(U_r\)中的参数:

编码上述\(q, m_{01}, m_{02}\):



用第一一个多 词嵌入矩阵编码\(x_i\)为\(c_i\):

为了达到更好的效果,大伙儿儿分别用一一个多 词集编码\(q\),\(m_{01}\)和\(m_{02}\),即\(q\)中的词“Joe”编码为“Joe_1”,\(m_{01}\)中同样的词编码为“Joe_2”:

$$ q_t = GRU(v_t, q_{t-1}) $$

还也能用MemN2N作为语言模型。比如,解析“独立申明”:“We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.”,都不 每一句为一一个多 记忆项却说没一词为一项:

$$ c_i = emedding_C(x_i) $$

对于记忆规模较大的的系统,计算每个记忆的分数较昂贵。其它可选方案为,计算完词嵌入\(U_0\)后,运用K-clustering将词嵌入空间分为K类。因此将每个输入\(x\)映射到相应类中,并在类空间中进行推测而都不 在完整版记忆空间中。

$$ p_i = softmax(u^Tm_i) $$

以一句问句“where is the milk now?”过后刚开始英语 英语 英语 ,并用大小为\(V\)的词袋表示(其中\(V\)为词典大小)。简单地,用词嵌入矩阵\(B(dtimes V)\)转换上述向量为\(d\)维词嵌入。

$$ o = [q, m_{01}, m_{02}] = ["where is the milk now"," Joe left the milk."," Joe travelled to the office."] $$



这里,将所有步骤总结为一一个多 图:

与RNN之类,还也能堆叠多层形成简化网络。在每一层\(i\),有它当时人的嵌入矩阵\(A_i\)和\(C_i\)。层\(k + 1\)的输入为:

虚拟助理在回答单个问句时表现不赖,因此在多轮对话中表现差强人意,以下例子说明大伙儿儿面临着那此挑战:

首先,保存说说在记忆m中:

回答问句\(q\)“where is the milk now?”,大伙儿儿基于以下式子计算第一一个多 推断:

$$ h_i^t = g_i^tGRU(s_i, h_{i-1}^t) + (1 - g_i^t)h_{i-1}^t $$

上述语言模型的目的是预测第7个词。

$$ s_0(x, y)n = \Phi_x(x)^TU_0^TU_0\Phi_y(y) $$

$$ u^{k + 1} = u^k + o^k $$

$$ m_i = embedding_A(x_i) $$

$$ o_1 = \mathop{\arg\min}_{i=1,...,N}s_0(q, m_i) $$

说说由GRU处里,其中最后隐藏情况表用于记忆模块。

其中\(overline{f}\),\(overline{f^prime}\)和\(overline{r}\)是真实标签外的其它可能性预测值。即当错误回答的分数大于正确回答的分数减\(gamma\)时增加边缘损失。

大伙儿儿利用词袋法(bags of words)表示输入文本。首先,大伙儿儿以大小为\(left|Wright|\)过后刚开始英语 英语 英语 。

用词袋法对问句“where is the milk now”编码:

其中\(U_0\)和\(U_r\)由边缘损失函数训练得到,\(phi(m_i)\)转换说说\(m_i\)为词袋表示。

"where is the milk now"=(...,1,0,0,1,1,0,1,0,0,1,...)

以下是构建嵌入\(A\),\(C\),\(m_i\),\(c_i\),\(p\),\(o\)和\(hat a\)的代码。

\(m_{02}\): Joe travelled to the office.

对于每个记忆项\(x_i\),用以前词嵌入矩阵\(A(dtimes V)\)转换为d维向量\(m_i\)。



通过计算\(u\)与每个记忆\(m_i\)的内积因此softmax得到其匹配度:

$$ \sum\limits_{\overline{f}\not=m_{02}}\max(0, \gamma - s_0(\left[x, m_{01}\right], m_{02}) + s_0(\left[x, m_{01}\right], \overline{f^\prime})) + $$

根据MemN2N论文中的描述,其不同有:

Joe went to the bathroom.

完整版代码在github

The description on the memory networks (MemNN) is based on Memory networks, Jason Weston etc.

大伙儿儿用词嵌入\(U\)转换\(3left|Wright|\)词袋编码的说说为大小为\(n\)的词嵌入表示。计算打分函数\(s_0\)和\(s_r\):

\(q\): Where is the milk now?

初始化

$$ \sum\limits_{\overline{f}\not=m_{01}}\max(0, \gamma - s_0(x, m_{01}) + s_0(x, \overline{f})) + $$

$$ o_2 = \mathop{\arg\max}_{i=1,...,N}s_0([q, m_{01}], m_i) $$

生成最终的答复\(r\):

训练

Source

\(m_{01}\): Joe left the milk.

计算输出:

$$ \hat a = softmax(W(o + u)) $$

计算损失,通过梯度修剪构建优化器

考虑以下说说和问句“Where is the milk now?”:

其中,\(s_0\)是计算输入\(x\)与\(m_i\)匹配分数的函数,\(o_1\)是记忆\(m\)中最佳匹配索引。这里\(m_{01}\)是第一一个多 推断中最好的匹配句:“Joe left the milk.”。

因此,基于\([q: "where is the milk now", m_{01}: "Joe left the milk."]\)

因此,每一句变换为大小为\(3left|Wright|\)的编码。



用矩阵\(W(Vtimes d)\)乘以\(o\)和\(u\)的和。结果传给softmax函数预测最终答案。

其中\(s_i\)表示第\(i\)个说说,\(h_i^t\)表示处里说说\(i\)第\(t\)步的隐藏情况表,其最后隐藏情况表为\(m^prime\)

其中\(m_{02}\)是“Joe traveled to the office.”。

结合问句和推导的结果记为\(o\):

为那此虚拟助理非要按照我的指令预订Caffé Opera?那是可能性虚拟助理何必 能记住大伙儿儿的对话,她却说简单地回答大伙儿儿的难题而不考虑向前谈话的上下午。因此,她所能做的却说找到与词“First”相关的餐厅(一间居于First Street的餐厅)。记忆网络(Memory Networks)通过记住处里过的信息来处里该难题。

$$ s_r(x, y)n = \Phi_x(x)^TU_r^TU_r\Phi_y(y) $$

$$ r = \mathop{\arg\max}_{w \in W}s_r([q, m_{01}, m_{02}], w) $$

$$ o = \sum\limits_{i}p_ic_i $$