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

  • 时间:
  • 浏览:1
  • 来源:大发时时彩代理—大发大发彩票app

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

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

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

初始化

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

其中\(s_i\)表示第\(i\)个搞笑的话,\(h_i^t\)表示解决搞笑的话\(i\)第\(t\)步的隐藏情况,其最后隐藏情况为\(m^prime\)

与RNN累似 ,能要能堆叠多层形成比较复杂网络。在每一层\(i\),有它我本人的嵌入矩阵\(A_i\)和\(C_i\)。层\(k + 1\)的输入为:

回答有有4个 问句\(q\),首先通过打分函数\(s_0\)计算出与\(q\)最相关的搞笑的话\(m_{01}\)。但是将搞笑的话\(m_{01}\)与\(q\)结合起来形成新的问句\([q, m_{01}]\),但是定位最高分的下有有4个 搞笑的话\(m_{01}\)。最后形成另外有有4个 问句\([q, m_{01}, m_{02}]\)。此时大伙并都不 用该问句去查询下有有4个 句,要是 通过从前打分函数定位有有4个 词\(w\)。以上述例子来说明该过程。

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



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

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

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

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

$$ c_i = emedding_C(x_i) $$

$$ \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})) $$

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

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..



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

计算输出:

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

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

搞笑的话由GRU解决,其中最后隐藏情况用于记忆模块。

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

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

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

$$ \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})) + $$

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

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



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

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

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

首先,保存搞笑的话在记忆m中:

$$ u = embedding_B(q) $$

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

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

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

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

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

Source

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

Joe went to the bathroom.

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

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

为哪些地方虚拟助理只有按照我的指令预订Caffé Opera?那是但是虚拟助理并都不 能记住大伙的对话,她要是 简单地回答大伙的什么的问题而不考虑向前谈话的上下午。但是,她所能做的要是 找到与词“First”相关的餐厅(一间地处First Street的餐厅)。记忆网络(Memory Networks)通过记住解决过的信息来解决该什么的问题。

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

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

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

$$ m_i = embedding_A(x_i) $$

大伙利用词袋法(bags of words)表示输入文本。首先,大伙以大小为\(left|Wright|\)现在现在但是刚开始。

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

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

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

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

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

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

考虑以下搞笑的话和问句“Where is the milk now?”:

完整代码在github

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



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

能要能用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.”,都不 每一句为有有4个 记忆项要是 没一词为一项:

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

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

训练

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

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

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