Learning to automatically solve algebra word problems
-
Upload
naoaki-okazaki -
Category
Documents
-
view
3.126 -
download
5
description
Transcript of Learning to automatically solve algebra word problems
Learning to Automatically Solve Algebra Word Problems
Nate Kushman, Yoav Artzi,Luke Zettlemoyer, and Regina Barzilay
ACL-2014, pages 271–281.論文 著者発表スライド コード データ
読み手: 岡崎直観 (東北大学) (@chokkanorg)
ACL2014読み会 @PFI
※但し書きがある場合を除き,スライド中の図・表はZettlemoyer (2014) の引用
解きたいタスク: 代数文章問題(=自然言語で書かれた問題を自動的に解く)
チャレンジ
• 文を超えた処理が必要• 2番目の式に対応する文
• 明示されない意味的関係• 1番目の式を立てるには,子供料金で入場した人,大人料金で入場した人の間に重なりが無いことを認識しておく必要がある
2014-07-12 Learning to Automatically Solve Algebra Word Problems 2
解き方: 数式のテンプレートに文章中の要素を埋め込む
必要なタスク 数式テンプレートの自動獲得,テンプレートの選択,選択したテンプレートへの埋め込み
2014-07-12 Learning to Automatically Solve Algebra Word Problems 3
本研究の設定
• データセット(514問題,1616文)• Algebra.comの問題と答え
• 手作業で背景知識が必要な問題は削除 (!),珍問題も削除 (!!)• 数式からテンプレートを導出
• 各テンプレートが6問以上使われるように問題を削除 (!!!)
• 問題・答え・数式による教師有り学習(半教師有りも実験)
2014-07-12 Learning to Automatically Solve Algebra Word Problems 4
{"lSolutions": [15, 9],"lEquations": [“3.0*novelists=5.0*poets”, "novelists+poets=24.0"],"sQuestion": "A writing workshop enrolls novelists and poets in a ratio of 5
to 3. There are 24 people at the workshop. How many novelists are there? How many poets are there?",
"iIndex": 2598},
数式テンプレートの導出
• 学習データに含まれる数式をテンプレート化• 変数を未知数スロット𝑢𝑢𝑖𝑖に置換• 問題文中にも出現している数値
を数値スロット𝑛𝑛𝑗𝑗に置換• 問題文中に出現していない数値を定数として残す
• パーセントは問題のタイプとして割り切って扱う (!)
• 数式処理システムを使い,
数式の形を共通化しておく• 𝑏𝑏 − 𝑗𝑗 = 3と𝑏𝑏 = 𝑗𝑗 + 3は同じ
2014-07-12 Learning to Automatically Solve Algebra Word Problems 5
テンプレートの選択と問題文からの埋め込みはjointで行う• 問題𝑥𝑥: 単語列𝑤𝑤1, … ,𝑤𝑤𝑘𝑘(𝑘𝑘単語)
• 導出𝑦𝑦 ∈ 𝑌𝑌: タプル(𝑇𝑇, 𝑝𝑝, 𝑎𝑎)• 𝑇𝑇: 採用した数式テンプレート• 𝑝𝑝: 問題𝑥𝑥と数式テンプレート𝑇𝑇の間のアライメント(𝑤𝑤, 𝑠𝑠)• 𝑎𝑎: この導出による解(数式ソルバで求める)
• 問題𝑥𝑥に対する導出𝑦𝑦の良さは対数線形モデルで推定
• 𝑝𝑝 𝑦𝑦 𝑥𝑥;𝜃𝜃 = exp(𝜃𝜃�𝜙𝜙(𝑥𝑥,𝑦𝑦))∑𝑦𝑦′∈𝑌𝑌 exp(𝜃𝜃�𝜙𝜙(𝑥𝑥,𝑦𝑦𝑦))
• 解𝑎𝑎に至るすべての導出の確率の和(周辺確率)• 𝑝𝑝 𝑎𝑎 𝑥𝑥;𝜃𝜃 = ∑𝑦𝑦∈𝑌𝑌 s.t. AN 𝑦𝑦 =𝑎𝑎 𝑝𝑝(𝑦𝑦|𝑥𝑥;𝜃𝜃)
• 問題𝑥𝑥の解: argmax𝑎𝑎
𝑝𝑝 𝑎𝑎 𝑥𝑥; 𝜃𝜃
2014-07-12 Learning to Automatically Solve Algebra Word Problems 6
𝜃𝜃: パラメータベクトル𝜙𝜙(𝑥𝑥,𝑦𝑦): 素性ベクトル
AN 𝑦𝑦 : 導出𝑦𝑦の解
𝑠𝑠: テンプレートのスロット
テンプレートへの埋め込み(アライメント)• 数式テンプレートの各スロットに問題文中の要素を割り当て
• 未知数スロット𝑢𝑢𝑖𝑖: 名詞
• 数値スロット𝑛𝑛𝑗𝑗: 数値
• 未知数スロットは厳密には𝑢𝑢𝑖𝑖𝑐𝑐と書くが𝑐𝑐の説明は省略
• 同じ名詞を複数のスロットに割り当てたり,変数が同じスロットを別々の名詞(=共参照)に割り当てることもできる
2014-07-12 Learning to Automatically Solve Algebra Word Problems 7
L-BFGSによるバッチ学習
• 最大化する目的関数(対数尤度)• 𝑂𝑂 = ∑𝑖𝑖 ∑𝑦𝑦∈𝑌𝑌 s.t. V 𝑦𝑦 =1 log 𝑝𝑝(𝑦𝑦|𝑥𝑥𝑖𝑖; 𝜃𝜃)
• V 𝑦𝑦 = 1となる条件により半教師有り学習も可能• 教師有り: 導出𝑦𝑦による数式が訓練事例と一致• 半教師有り:導出𝑦𝑦による答えが一致(数式は問わない)
• 目的関数の勾配を利用し,L-BFGSで最大化する• 𝜕𝜕𝑂𝑂𝜕𝜕𝜃𝜃𝑗𝑗
= ∑𝑖𝑖 𝐸𝐸 �𝑝𝑝(𝑦𝑦|𝑥𝑥𝑖𝑖,V 𝑦𝑦 =1) 𝜙𝜙𝑗𝑗 𝑥𝑥𝑖𝑖 ,𝑦𝑦 − 𝐸𝐸𝑝𝑝(𝑦𝑦|𝑥𝑥𝑖𝑖,V 𝑦𝑦 =1) 𝜙𝜙𝑗𝑗 𝑥𝑥𝑖𝑖 ,𝑦𝑦
• 問題に対して全ての導出𝑌𝑌を求めるのは大変• ビーム探索: 各テンプレートに対し,各スロットをビーム幅𝑘𝑘でモデルのスコアの高い順に埋めていく
2014-07-12 Learning to Automatically Solve Algebra Word Problems 8
素性は4種類
2014-07-12 Learning to Automatically Solve Algebra Word Problems 9
問題のトピックから数式テンプレートを選ぶ例: “chemist”という単語を含むと「割合」に関する問題
問題で問われている内容が未知スロットに割り当てる例: “how many children …”という問いなら,”tickets for chidren”は未知スロットになる可能性が高い
例: “two kinds of tickets”の”two”を数値スロットに割り当てないようにする
例: 数値スロットに定数0.01が掛けられているなら,%と対応しやすい
http://people.csail.mit.edu/nkushman/papers/acl2014-talk.pdf
答えが変な数値になっていないか
実験結果
2014-07-12 Learning to Automatically Solve Algebra Word Problems 10
• 数式と答えが与えられた5つの問題のみを訓練に用いた場合(5EQ)の性能は低い
• 5EQに加え,他の問題の答えを与える半教師有り学習の設定にすると向上(5EQ+ANS)
• 数式と答えを全て用いると7割くらいの精度
• 学習データ中における数式テンプレートの頻度が低い問題でも5割くらいの正解率
• 数式テンプレートの頻度が高い問題では,8割を超える正解率←似たような問題が出ているのでは?
失敗した事例
2014-07-12 Learning to Automatically Solve Algebra Word Problems 11
絵(painting)が二次元でwidthとheightが対応するという知識
コスト・売値・利益などの商売に関する知識
“twice of one of them”: 2𝑥𝑥という式を立てるのが難しい
“if you double both numbers”や“the sum”の解釈が難しい
知識が必要(約25%)
構成的な意味解釈が必要(約50%)
終わりに
• 結論• 代数文章問題の解法を自動的に学習• このタスクに関する初めての研究を報告した
• 今後の課題• 構成的な意味解釈から数式を立てる方法• 幾何,物理,化学などの問題ドメインへの対応• 文章からコンピュータプログラムの自動生成への応用
• コメント• NIIの松崎さんの素晴らしいアプローチも論文化されてます
• Takuya Matsuzaki, Hidenao Iwane, Hirokazu Anai, Noriko H. Arai. The Most Uncreative Examinee: A First Step toward Wide Coverage Natural Language Math Problem Solving. AAAI-2014.
2014-07-12 Learning to Automatically Solve Algebra Word Problems 12