当前位置:   article > 正文

论文笔记 | Learning Fine-Grained Expressions to Solve Math Word Problems_learning fine-grained bimanual manipulation with l

learning fine-grained bimanual manipulation with low-cost hardware

这篇文章是腾讯人工智能实验室发表在EMNLP 2017上的文章,基于细粒度的模板解数学应用题。

贡献点

  1. 学习问题文本到模板片段的映射,充分利用模板的信息。
  2. 为每个模板自动构建sketch。
  3. 实现了一个两阶段的系统,包括模板检索和对齐排序。

整体思路

总结下来,该工作主要分为三个部分:

1. 模板归纳 sketch for template

训练集中的题目包含文本和表达式。

  • 首先,把文本中的操作数映射到 n 1 , n 2 , . . . n_1, n_2, ... n1,n2,...,对表达式中的具体操作数也用 n 1 , n 2 , . . . n_1, n_2,... n1,n2,...来代替,转换成表达式模板。
  • 每个模板可能对应多个题目,将相同模板的题目归为一类。抽取其特征,包括单位、问题关键词、文本表达等来表征这个模板。这里的文本表达是对应于模板片段的,即细粒度的模板匹配。【如下图】
    在这里插入图片描述

2. 训练过程

有了每个模板对应的归纳特征,我们就想要对训练集中的数据进行训练。训练的过程分为两个部分,一部分是训练选择模板的正确性,另一部分是在选择候选的模板之后,将操作数填到模板中的位置正确性。对于这两个部分的训练,损失函数都是使用了Ranking SVM的方法。

定义选择模板的损失:
L = 1 2 ∣ ∣ v t ∣ ∣ 2 + C ∑ i l ( v t T f ( x i , t j ) + − v t T f ( x i , t l ) − ) L = \frac{1}{2}||v_t||^2 + C \sum_{i} l(v_t^T f(x_i, t_j)^+ - v_t^T f(x_i, t_l)^-) L=21vt2+Cil(vtTf(xi,tj)+vtTf(xi,tl))

其中的l(t) = max(0, 1-t)^2,+表示预测正确。这里的f(x_i, t_j)表示特征向量,特征是根据题目x_i和模板t_j来人工构造的。v_t^T表示可学习参数。所以上式的目标就是要使得题目x_i属于模板t_j的可能性大于属于其他模板的可能性。为每个题目选择可能性最大的top-n个模板作为候选模板。

定义操作数填到模板各位置上的损失:
L = 1 2 ∣ ∣ v a ∣ ∣ 2 + C ∑ i l ( v a T f ( x i , a k ) + − v a T f ( x i , a l ) − ) L = \frac{1}{2}||v_a||^2 + C \sum_{i} l(v_a^T f(x_i, a_k)^+ - v_a^T f(x_i, a_l)^-) L=21va2+Cil(vaTf(xi,ak)+vaTf(xi,al))

上式想要达到的目标就是尽可能的让操作数在模板的正确的位置上。

3. 测试过程

在参数v^T训练好之后,我们就可以利用这个模型,来判断测试集中的题目属于哪个模板的概率比较大。以及题目中的操作数应该如何填在模板的slot当中。

对应这两个问题,这里应该定义两个概率函数。

一个是计算题目x_i属于模板t_j的概率:
p ( t j ∣ x i ; v t ) = e x p ( v t ⋅ f ( x i , t j ) ) ∑ t j ′ ∈ T e x p ( v t ⋅ f ( x i , t j ′ ) ) p(t_j|x_i; v_t) = \frac{exp(v_t \cdot f(x_i, t_j))}{\sum_{t_j' \in T}exp(v_t \cdot f(x_i, t_j'))} p(tjxi;vt)=tjTexp(vtf(xi,tj))exp(vtf(xi,tj))

一个是确定该题目对应于模板的位置(对齐操作):

p ( a k ) = e x p ( v a ⋅ f ( x i , a k ) ) ∑ a k ′ ∈ A e x p ( v a ′ ⋅ f ( x i , a k ′ ) ) p(a_k) = \frac{exp(v_a \cdot f(x_i, a_k))}{\sum_{a_k' \in A}exp(v_a' \cdot f(x_i, a_k'))} p(ak)=akAexp(vaf(xi,ak))exp(vaf(xi,ak))

分析

这篇文章基于模板匹配来解决Math Word Problems,本质上还是属于相似度比较的范畴,即计算待解题目和训练集中的模板的相似度,找到相似度最高的模板,然后将题目文本中的操作数对应到解题模板中去。得到解题的表达式,最终得到结果。

文中的方法和他所比较的方法都存在一个问题,就是在一个模板对应的题目很少的情况下,最终得到的准确率结果就比较差。因为如果一个模板对应的题目很少,那么对于这个模板的训练就不足,那么久很难得到好的结果。

关于这一点,之前的文章中也有讲到混合模型,就是当相似度大于一个阈值的时候,就是用相似度比较的方法,当相似度小于阈值的时候,就是用端到端的深度学习方法。这篇文章为什么没有使用呢?

文章中值得借鉴的一点就是:对模板进行了细粒度的分析,对于模板中所出现的操作符及其对应的两个操作数,都会找一些与其对应的文本表达。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/517721
推荐阅读
相关标签
  

闽ICP备14008679号