SlideShare une entreprise Scribd logo
1  sur  53
言語処理のための仮説推論エンジン
Phillip
Kazeto Yamamoto, Naoya Inoue, Kentaro Inui
Tohoku Univ.
NLP2015
1
仮説推論って?
2
 観測に対する最良の説明を導く推論
 入力:背景知識 B, 観測 O :
– B : 一階述語論理の公理の集合
– O : 一階述語論理のリテラルの論理積集合
 出力: 解仮説 (説明) H* :
評価関数 E に対して最も評価が高くなる仮説
H* = arg max E(H)
H ∈ H
仮説推論
(Abduction)
3
仮説推論
(Abduction)
4
scientist(A)
chimp(B)
banana(C)
give(E1)
nsubj(E1,A)
...
観測 O 背景知識 B
scientist(x) ⇒ human(x)
chimp(x) ⇒ animal(x)
kill(e1) ∧ dobj(e1,x) ⇒ die(e2) ∧ nsubj(e2,x)
give(e1) ∧ dobj(e1,x) ∧ iobj(e1,y) ∧ food(y)
⇒ eat(e2) ∧ nsubj(e2,y) ∧ dobj(e2,x)
...
解仮説 H*
入力
評価関数 E
H* = arg max E(H)
H ∈ H
(∃e1,e2,x1,x2,y1,y2)
John(x1) ∧ go(e1, x1, x2) ∧ bank(x2) ∧ he(y1) ∧ get(e2, y1, y2) ∧ loan(y2)
loan(y2) ⇒ (∃e2, y1, y3) issue(e2, y3, y2, y1) ∧ financial_inst(y3)
Interpretation as Abduction
issue(e2, y3, y2, y1)
⇒ get(e2, y1, y2)
financial_inst(x2)
⇒ bank(x2)
issue(e2, x2, x3, x1)
⇒ go(e2, x1, x2)
John went to the bank. He got a loan.
観測
入力
[Hobbs+, ‘93]
背景知識(公理)
(∃e1,e2,x1,x2,y1,y2)
John(x1) ∧ go(e1, x1, x2) ∧ bank(x2) ∧ he(y1) ∧ get(e2, y1, y2) ∧ loan(y2)
loan(x3)
Interpretation as Abduction
issue(e2, y3, y2, y1)
financial_inst(x2)
issue(e1, x2, x3, x1)
John went to the bank. He got a loan.
観測
入力
[Hobbs+, ‘93]
仮説(説明)
e1=e2, x2=y3,
x3=y2, x1=y1
x3=y2
(∃e1,e2,x1,x2,y1,y2)
John(x1) ∧ go(e1, x1, x2) ∧ bank(x2) ∧ he(y1) ∧ get(e2, y1, y2) ∧ loan(y2)
loan(x3)
Interpretation as Abduction
issue(e2, y3, y2, y1)
financial_inst(x2)
issue(e1, x2, x3, x1)
John went to the bank. He got a loan.
観測
入力
[Hobbs+, ‘93]
仮説(説明)
e1=e2, x2=y3,
x3=y2, x1=y1
x3=y2
bank = 銀行
he = John
John が
bank へ行ったのは
loan を得るため
☺ 我々が期待する仮説推論の有用性
– 人間が解釈可能な説明を生成する
– 世界知識を利用するための統一的な方法を提供する
– NLPの様々なサブタスクを一つのモデルに集約できる
 機械学習と組み合わせたい
– 論理推論の強みと統計的学習の強みを自然な形で融合
 仮説推論のタスク適用に関する過去の取り組み
– 意図推定 [Ng+, ’92],含意関係認識 [Ovchinnikova+, ’11],
談話関係認識 [Sugiura+, ’12],共参照解析 [Inoue+, ‘12]
8
仮説推論
(Abduction)
☺ 我々が期待する仮説推論の有用性
– 人間が解釈可能な説明を生成する
– 世界知識を利用するための統一的な方法を提供する
– NLPの様々なサブタスクを一つのモデルに集約できる
 機械学習と組み合わせたい
– 論理推論の強みと統計的学習の強みを自然な形で融合
 仮説推論のタスク適用に関する過去の取り組み
– 意図推定 [Ng+, ’92],含意関係認識 [Ovchinnikova+, ’11],
談話関係認識 [Sugiura+, ’12],共参照解析 [Inoue+, ‘12]
9
仮説推論
(Abduction)
☹ 実問題上での解析精度において,
我々の期待を裏付けるような結果は
未だ得られていないのが現状
仮説推論を取り巻く問題
10
Search
Learning
Knowledge
仮説の候補を
どう探索するか
背景知識を
どう獲得するか
評価関数の
モデルパラメータを
どう調整/学習するか
仮説推論を取り巻く問題
11
Search
Learning
Knowledge
仮説の候補を
どう探索するか
背景知識を
どう獲得するか
評価関数の
モデルパラメータを
どう調整/学習するか
それなりの時間で解が導けないと
学習どころの話じゃない
仮説推論の計算量は
知識の規模に強く依存する
学習するためにはまず
正解を導くのに十分な量の知識が
既にあることが前提になる
最も重要!
実タスクにおける速度問題
12
B: 300,000+ axioms
O: 20 literals≧ 30 min.
7 min.
0.4 sec.
Mini-TACITUS
[Mulkar-Mehta+, ‘07]
MLNs-based
[Blythe+, ‘11]
ILP-based & CPI
[Inoue+, ‘12]
state-of-the-art
B: 1,000,000+ axioms
O: 30 literals
Who’s Phillip?
13
一階述語論理の仮説推論エンジンです
14
scientist(A) chimp(B) banana(C) give(E1)
hungry(E2)
nsubj(E1,A) dobj(E1,C) iobj(E1,B)
nsubj(E2,x)he(x)
A scientist gave a chimp a banana.
Because he was hungry.
eat(u1) nsubj(u1,x)
^
^
give(u2) dobj(u2,u3) iobj(u2,x)food(u3)
banana(u3)
C=u3
E1=u2
E1=u2
C=u3
E1=u2
B=x
世界で一番速いです
15
B: 300,000+ axioms
O: 20 literals≧ 30 min.
7 min.
0.4 sec.
Mini-TACITUS
[Mulkar-Mehta+, ‘07]
MLNs-based
[Blythe+, ‘11]
ILP-based & CPI
[Inoue+, ‘12]
世界で一番速いです
16
B: 1,000,000+ axioms
O: 30 literals≧ 30 min.
0.7 sec.
Phillip
[Yamamoto+, ‘14]
ILP-based & CPI
[Inoue+, ‘12]
柔軟にカスタマイズできます
17
観測背景知識
解仮説
入力
潜在仮説集合 ILP 問題
Generator
Solver
Converter
誰でもGitHubから利用可能です
18
github.com/kazeto/phillip
実問題にも適用し始めてます
19
高速な推論を実現するために
20
ILP based Abduction
[Inoue+, ‘11]
観測 背景知識
整数線形計画問題
ILPソルバー
解仮説
21
潜在仮説集合
(= 仮説候補に含まれうるリテラルの集合)
ILP-based abduction
john(x) ^
go(e) ^
nsubj(e,x)
...
go(e) => buy(...
buy(e) => sell(...
...
max. ax1 + bx2 + ...
s.t.
x1 + x2 >= 3
...
基本的なアイデア
 解仮説に含まれる可能性の低い推論を
潜在仮説集合を生成する段階で除外する
 解の候補の数が減ることによって
推論全体の計算量が軽減される
22
観測
背景知識

解仮説ILPソルバー
潜在仮説集合
入力
削る
削る
基本的なアイデア
 解仮説に含まれる可能性の低い推論を
潜在仮説集合を生成する段階で除外する
 解の候補の数が減ることによって
推論全体の計算量が軽減される
23
観測
背景知識
解仮説ILPソルバー
潜在仮説集合
入力

削る
削る
A*探索に基づく潜在仮説集合生成
[Yamamoto+, 14]
24
john(j) go_to(e1,j,s) store(s) buy(e2,j,b) book(b)
buy(e4,j,u1) book(u1) buy(e5,j,u2) food(u2) wood(b)
paper(b)
wood(u1)
paper(u1) apple(u2)
orange(u2)
banana(u2)
tomato(u2)
potato(u2)
carrot(u2)
peach(u2)
dictionary(u1)
comic(u1)burnable(u1) fruit(u2) vegetable(u2)
cedar(u1)
hinoki(u1)
cedar(u1)
hinoki(u1)
rabbit(u3) eat(e6,u3,u2)
pine(u1)
it_company(u2)
...
book_store(s) sell(e3,u1,b)
dictionary(b)
comic(b)
burnable(b)
grocery(s)
president(j)
musician(j)
man(j)
John went to the store and bought a book.観測
...
...
...
25
john(j) go_to(e1,j,s) store(s) buy(e2,j,b) book(b)
buy(e4,j,u1) book(u1) buy(e5,j,u2) food(u2) wood(b)
paper(b)
wood(u1)
paper(u1) apple(u2)
orange(u2)
banana(u2)
tomato(u2)
potato(u2)
carrot(u2)
peach(u2)
dictionary(u1)
comic(u1)burnable(u1) fruit(u2) vegetable(u2)
cedar(u1)
hinoki(u1)
cedar(u1)
hinoki(u1)
rabbit(u3) eat(e6,u3,u2)
pine(u1)
it_company(u2)
...
book_store(s) sell(e3,u1,b)
dictionary(b)
comic(b)
burnable(b)
grocery(s)
president(j)
musician(j)
man(j)
John went to the store and bought a book.
A*探索に基づく潜在仮説集合生成
[Yamamoto+, 14]
観測
解仮説に含まれる可能性がある
推論だけを効率的に探索
無矛盾性のチェック
相互排他
26
shoot(e)^nsubj(e,x)^dobj(e,y)
=> criminal(x)
shoot(e1) nsubj(e1,Tom) dobj(e1,u1)
have(e2) gun(u2) nsubj(e2,Tom) dobj(u2)
police(Tom)
criminal(Tom)
have(e1)^gun(y)^nsubj(e1,x)^dobj(e1,y)
=> shoot(e2)^nsubj(e2,x)^dobj(e2,z)
police(x) =>
have(e1)^gun(y)^nsubj(e1,x)^dobj(e1,y)
police(x) ⊥ criminal(x)
背景知識
 イベントやオブジェクトを変数で表す
 イベントやオブジェクト間の関係はそれぞれ
一つのリテラルで表現される
☺可変個の依存関係を記述できる
Neo-Davidsonian
27
“John loves Mary.”
john(x1)
mary(x2)
love(e)
nsubj(e, x1)
dobj(e, x2)
探索空間の爆発
28
die(e1) nsubj(e1,x) ... nsubj(e2,y) ... nsubj(e3,z) ...
kill(e1) ^ nsubj(e1,x) ^ dobj(e1,y)
=> die(e2) ^ nsubj(e2,y)
背景知識
kill(u1)
nsubj(u1,u2)
dobj(u1,x)
kill(u3)
nsubj(u3,u4)
dobj(u3,x)
e1=e2
kill(u5)
nsubj(u5,u6)
dobj(u5,x)
e1=e3
...
^ ^ ^
e1=e2
x=y
e2=e3
y=z
探索空間の爆発
29
die(e1) nsubj(e1,x) ... nsubj(e2,y) ... nsubj(e3,z) ...
kill(e1) ^ nsubj(e1,x) ^ dobj(e1,y)
=> die(e2) ^ nsubj(e2,y)
背景知識
kill(u1)
nsubj(u1,u2)
dobj(u1,x)
kill(u3)
nsubj(u3,u4)
dobj(u3,x)
e1=e2
kill(u5)
nsubj(u5,u6)
dobj(u5,x)
e1=e3
...
^ ^ ^
e1=e2
x=y
e2=e3
y=z
変数が一致することを
公理適用の条件として課す
変数が表すイベントが
互いに単一化可能でない場合は
それらの依存関係同士も単一化しない
実験
観測 背景知識
推論エンジン
1,111,790 個の公理
Resource:
WordNet
ClueWeb12 から抽出した共参照事例
観測25問
Winograd Schema Challengeに
含まれるテキストから生成
比較対象:
1. ILP+CPI [Inoue&Inui, '12]
2. Phillip
求解時間を比較
タイムアウト:
1800 sec.
30
結果
31
25問全てでタイムアウト 11問がタイムアウト
25問全てにおいて
60秒以内に推論終了
柔軟なカスタマイズ
32
従来システムの問題点
☹単一の評価関数のみを想定
– ユーザが評価関数を定義することが不可能
– ソースコードそのものを編集するしか無い
☹システム単体での利用のみを想定
– 他プログラムへの組み込みを考慮していない
☹推論の内部処理を扱える人が限られる
☹コミュニティが閉鎖的に
33
コンポーネント化された処理フロー
34
観測背景知識
解仮説
入力
潜在仮説集合 ILP問題
Generator
Solver
Converter
潜在仮説集合を
観測から生成
ILP問題の
最適解を導出
潜在仮説集合を
ILP問題へ変換
他プログラムへの組み込み
35
#include <phillip.h>
#include <binary.h>
class my_ilp_converter : public phil::ilp_converter_t
{ 略 };
class my_ilp_converter_generator : public
phil::bin::component_generator_t<phil::ilp_converter_t>
{ 略 }
int main()
{
using namespace phil;
bin::ilp_converter_library_t::instance()->add(
"mine", new my_ilp_converter_generator_t());
phillip_main_t phillip;
bin::execution_configure_t config;
bin::inputs_t inputs;
bin::prepare(argc, argv, &phillip, &config, &inputs);
bin::execute(&phillip, config, inputs);
}
Phillip
(lib/libphil.a)
組み込み先
他プログラムへの組み込み
36
#include <phillip.h>
#include <binary.h>
class my_ilp_converter : public phil::ilp_converter_t
{ 略 };
class my_ilp_converter_generator : public
phil::bin::component_generator_t<phil::ilp_converter_t>
{ 略 }
int main()
{
using namespace phil;
bin::ilp_converter_library_t::instance()->add(
"mine", new my_ilp_converter_generator_t());
phillip_main_t phillip;
bin::execution_configure_t config;
bin::inputs_t inputs;
bin::prepare(argc, argv, &phillip, &config, &inputs);
bin::execute(&phillip, config, inputs);
}
Phillip
(lib/libphil.a)
組み込み先
今後の展望
37
公理の ”柔らかな” 適用
 述語が一致していないと公理を適用できない
☺探索空間が爆発しないで済む
☹知識が足りなかったらその時点で終了
study(e1) ∧ nsubj(e1 x)
⇒ clever(e2) ∧ nsubj(e2 x)
clever(E1) nsubj(E1 X1) smart(E2) nsubj(E2 X2)
適用できる 適用できない
38
“ソフトな” 仮説推論
study(e1) ∧ nsubj(e1 x)
⇒ clever(e2) ∧ nsubj(e2 x)
smart(E) nsubj(E,X)
study(u1) ∧ nsubj(u1,X)
背景知識
単語間の類似度
smart ≒ clever
39
Winograd Schema Challenge
[Levesque+, '11]
 共参照解析の難しい問題を集めたデータセット
 人間なら簡単に読解できるが,
伝統的なNLP技術(選択選好・文脈類似度)では
殆ど解くことが出来ない
 Competition at AAAI-16 Symposia (prize: $25,000!)
☺推論システムのベンチマークとして有用
Ed shouted at Tim because he crashed the car.
Ed shouted at Tim because he was angry.
WSCへの適用
観測 背景知識
Phillip
2,300,000 個の公理
Resource:
WordNet
ClueWeb12から獲得した共参照事例
観測 560 問
Winograd Schema Challengeの
テストデータから生成
解析精度を調査
41
結果
問題数 560
正解 227
不正解 190
解無し 143
適合率 54.4 %
再現率 40.5 %
推論時間 31 min.
42
やりたい事は沢山
 パラメータの機械学習
– 学習アルゴリズムは既に提案されている
[Inoue+, ‘12] [Yamamoto, ‘13]
– 近く Phillip 上で実装,WSCで実験
– 外部ユーザ向けの機械学習用のパッケージも公開予定
 談話を論理でどう表現するか
– 否定,逆接,モダリティ,事実性,etc...
 知識の拡充,高精度化
– テリックや語の定義など
 更なる高速化
– より高度なグラフ探索手法の導入
43
まとめ
 従来システムより遥かに高速な推論エンジン
– ILP-based Abduction に基づいた実装
– 解候補を生成する段階で候補を出来る限り枝刈り
– 数百万規模の背景知識でも問題なく推論可能
 他プログラムへの組み込みや
ユーザによるカスタマイズを考慮した実装
– より多くの人が参入しやすい環境に
 実タスクへの適用を開始しつつある
– 種々の問題を実タスク上で検証できる段階に来た
 推論エンジンはGitHubからパブリックに利用可能
44
おもしろいよ,仮説推論
45
github.com/kazeto/phillip
Backup!!
46
Look up Axioms
Axiom database
eat(e)
Look up axioms which include
“eat” in the consequence
chimp(x) banana(y) nsubj(e,x) dobj(e,y)
... ⇒ eat(e)
... ⇒ eat(e)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ nsubj(e,x) ^ dog(x)
... ⇒ eat(e) ^ dobj(e,x)
... ⇒ eat(e) ^ dobj(e,x)
... ⇒ eat(e) ^ dobj(e,x) ^ meat(x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x) ^ fork(x)
... ⇒ eat(e) ^ for(e,x)
Pivot
47
... ⇒ eat(e)
... ⇒ eat(e)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ nsubj(e,x) ^ dog(x)
... ⇒ eat(e) ^ dobj(e,x)
... ⇒ eat(e) ^ dobj(e,x)
... ⇒ eat(e) ^ dobj(e,x) ^ meat(x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x)
... ⇒ eat(e) ^ with(e,x) ^ fork(x)
... ⇒ eat(e) ^ for(e,x)
Look up Axioms
Pattern database
eat(e)
Look up consequence patterns
which include “eat”
chimp(x) banana(y) nsubj(e,x) dobj(e,y)
{ eat }
{ eat, nsubj }
{ eat, nsubj, dog }
{ eat, dobj }
{ eat, dobj, meat }
{ eat, with }
{ eat, with, fork }
{ eat, for }
Pivot
{ eat }
{ eat, nsubj }
{ eat, nsubj, dog }
{ eat, dobj }
{ eat, dobj, meat }
{ eat, with }
{ eat, with, fork }
{ eat, for }
Axiom database
... ⇒ eat(e)
... ⇒ eat(e)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ nsubj(e,x)
... ⇒ eat(e) ^ dobj(e,x)
... ⇒ eat(e) ^ dobj(e,x)
Look up axioms which
correspond with the patterns
48
Category Table
 述語 p1, p2 について,リテラル (p1 x) からリテラル
(p2 x) を仮説する難しさを表現した行列
 仮説不可の場合は nil を返す
 実装的には,述語 p1, p2 を引数として,(p1 x) から
(p2 x) を仮説するためのコストを返すような仮想関数
 評価関数ごとにそれぞれ適した実装を選択できる
49
smart clever wise fool
smart 0
clever 0
wise 0
fool 0
Category Table
 述語 p1, p2 について,リテラル (p1 x) からリテラル
(p2 x) を仮説する難しさを表現した行列
 仮説不可の場合は nil を返す
 実装的には,述語 p1, p2 を引数として,(p1 x) から
(p2 x) を仮説するためのコストを返すような仮想関数
 評価関数ごとにそれぞれ適した実装を選択できる
50
smart clever wise fool
smart 0 0.1
clever 0
wise 0.1 0
fool 0
Knowledge Base
wise(e)
⇔ smart(e)
Category Table
 述語 p1, p2 について,リテラル (p1 x) からリテラル
(p2 x) を仮説する難しさを表現した行列
 仮説不可の場合は nil を返す
 実装的には,述語 p1, p2 を引数として,(p1 x) から
(p2 x) を仮説するためのコストを返すような仮想関数
 評価関数ごとにそれぞれ適した実装を選択できる
51
smart clever wise fool
smart 0 0.1
clever 0 nil
wise 0.1 0
fool nil 0
Knowledge Base
fool(e)
⊥ clever(e)
Category Table
 述語 p1, p2 について,リテラル (p1 x) からリテラル
(p2 x) を仮説する難しさを表現した行列
 仮説不可の場合は nil を返す
 実装的には,述語 p1, p2 を引数として,(p1 x) から
(p2 x) を仮説するためのコストを返すような仮想関数
 評価関数ごとにそれぞれ適した実装を選択できる
52
smart clever wise fool
smart 0 0.2 0.1 3.7
clever 0.2 0 0.15 nil
wise 0.1 0.15 0 4.2
fool 3.7 nil 4.2 0
Word Embeddings
演繹推論と仮説推論
演繹推論 仮説推論 仮説推論(現状)
公理を順方向に適用 ○ ○
公理を逆向きに適用 ○ ○
何も無いところから仮説 ○
53

Contenu connexe

Tendances

[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!KnowledgeGraph
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?Kouji Kozaki
 
ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介KnowledgeGraph
 
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けてThe Whole Brain Architecture Initiative
 
深層学習と音響信号処理
深層学習と音響信号処理深層学習と音響信号処理
深層学習と音響信号処理Yuma Koizumi
 
深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについてryosuke-kojima
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介KnowledgeGraph
 
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​SSII
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開KnowledgeGraph
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎Tetsutaro Watanabe
 
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live![part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!KnowledgeGraph
 
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)Ichigaku Takigawa
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明Satoshi Hara
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
時系列データ分析とPython
時系列データ分析とPython時系列データ分析とPython
時系列データ分析とPythonHirofumi Tsuruta
 
[ICML2019読み会in京都] Agnostic Federated Learning
[ICML2019読み会in京都] Agnostic Federated Learning[ICML2019読み会in京都] Agnostic Federated Learning
[ICML2019読み会in京都] Agnostic Federated LearningYamato OKAMOTO
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析Seiichi Uchida
 
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII
 

Tendances (20)

[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live![part 2]ナレッジグラフ推論チャレンジ・Tech Live!
[part 2]ナレッジグラフ推論チャレンジ・Tech Live!
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 
ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介
 
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて
第7回WBAシンポジウム:全脳確率的生成モデル(WB-PGM)〜世界モデルと推論に基づく汎用人工知能に向けて
 
深層学習と音響信号処理
深層学習と音響信号処理深層学習と音響信号処理
深層学習と音響信号処理
 
深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介
 
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
SSII2020TS: 機械学習モデルの判断根拠の説明​ 〜 Explainable AI 研究の近年の展開 〜​
 
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
Linked Open Data勉強会2020 前編:LODの基礎・作成・公開
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎
 
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live![part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
 
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
多数のグラフからの統計的機械学習 (2014.7.24 人工知能学会 第94回人工知能基本問題研究会 招待講演)
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
時系列データ分析とPython
時系列データ分析とPython時系列データ分析とPython
時系列データ分析とPython
 
[ICML2019読み会in京都] Agnostic Federated Learning
[ICML2019読み会in京都] Agnostic Federated Learning[ICML2019読み会in京都] Agnostic Federated Learning
[ICML2019読み会in京都] Agnostic Federated Learning
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析
 
第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo
 
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
 

Similaire à 言語処理のための仮説推論エンジン Phillip

[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介Deep Learning JP
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical ProgrammingMasahiro Sakai
 
Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Masahiro Sakai
 
自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08Masatoshi Yoshida
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門TanUkkii
 
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」Masatoshi Yoshida
 
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...Masatoshi Yoshida
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11Kenta Hattori
 
topology of musical data
topology of musical datatopology of musical data
topology of musical dataTatsuki SHIMIZU
 
若手研究者のための招待講演会
若手研究者のための招待講演会若手研究者のための招待講演会
若手研究者のための招待講演会Joe Suzuki
 
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)Taiji Suzuki
 
2013computer s1
2013computer s12013computer s1
2013computer s1munich1502
 
Hayashi tutorial ne2017
Hayashi tutorial ne2017Hayashi tutorial ne2017
Hayashi tutorial ne2017yukisachi
 
introductino to persistent homology and topological data analysis
introductino to persistent homology and topological data analysisintroductino to persistent homology and topological data analysis
introductino to persistent homology and topological data analysisTatsuki SHIMIZU
 

Similaire à 言語処理のための仮説推論エンジン Phillip (14)

[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical Programming
 
Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)Introduction to Categorical Programming (Revised)
Introduction to Categorical Programming (Revised)
 
自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08自由エネルギー原理と視覚的意識 2019-06-08
自由エネルギー原理と視覚的意識 2019-06-08
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門
 
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
 
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
感覚運動随伴性、予測符号化、そして自由エネルギー原理 (Sensory-Motor Contingency, Predictive Coding and ...
 
アルゴリズムとデータ構造11
アルゴリズムとデータ構造11アルゴリズムとデータ構造11
アルゴリズムとデータ構造11
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
 
若手研究者のための招待講演会
若手研究者のための招待講演会若手研究者のための招待講演会
若手研究者のための招待講演会
 
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
 
2013computer s1
2013computer s12013computer s1
2013computer s1
 
Hayashi tutorial ne2017
Hayashi tutorial ne2017Hayashi tutorial ne2017
Hayashi tutorial ne2017
 
introductino to persistent homology and topological data analysis
introductino to persistent homology and topological data analysisintroductino to persistent homology and topological data analysis
introductino to persistent homology and topological data analysis
 

言語処理のための仮説推論エンジン Phillip

Notes de l'éditeur

  1. 仮説推論とは、与えられた観測に対する説明を、背景知識を用いて生成する、論理推論の枠組みの一つである。 観測と背景知識を入力として受け取り、背景知識のもとで観測を説明できるような仮説の中で、もっとも評価関数の値が高くなるような仮説を解として出力する。
  2. 模式図としてはこんな感じ。
  3. HobbsらはInterpretation as Abductionにおいて、談話の解析を仮説推論として定式化できることが示した。 彼らによれば、入力文を論理式で表現したものを観測、世界知識を公理として仮説推論を行うことで、入力文に対する説明・解釈が仮説として得られる。
  4. 例えばこの例では、背景知識からこのような仮説が生成され、…(次ページ)
  5. bankの語義や、Johnとheの間の共参照、プラン認識などの非明示的な情報が、入力に対する説明・解釈として得られる。
  6. 我々が仮説推論に期待するアドバンテージとしては〜のようなことが挙げられる。 我々の期待としては、機械学習可能な仮説推論システムを構築することによって、論理推論の強みと統計的学習の強みを、自然な形で融合できるのではないかと考えている。 また、仮説推論を実タスクに適用する試みも、90年台から現在に至るまで、様々なタスクに対して行われてきた。
  7. しかしながら、これらの取り組みにおいて、我々の期待を裏付けるような結果は未だ得られていないのが現状です。
  8. これは何が原因なのだろうか。 仮説推論を取り巻く問題としては、大別してこの3つが挙げられる。 〜
  9. これらの問題の依存関係としてはこのようになっている。 学習をするためにはそれなりの解析速度が必要で、学習するためにはそれなりの規模の知識が必要で、大規模知識を用いて推論するためには上手に探索して高速に解くことが必要。結果として、探索がもっとも重要な問題ということになる。
  10. 実問題への仮説推論の適用という文脈において速度問題が如何に重大かということを示す例を示す。
  11. 以上のような状況を踏まえ、今回紹介するPhillipの特徴を述べる。
  12. 今回の発表で紹介するソフトウェアは、一階述語論理上での仮説推論を行うためのプログラムです。 これを使うとこんなことが出来ます。
  13. また、既存の仮説推論エンジンの中で最も効率的に解を導出することが出来ます。 これまでの state-of-the-art は井之上らのシステムでしたが…
  14. 我々のシステムでは,彼らが30分かけても解くことの出来ない問題を1秒足らずで解くことができます。
  15. また、カスタマイズ性に非常に優れた実装になっています。 推論の各フローは抽象化されており、ユーザによる評価関数の定義などを容易に行えます。
  16. そして、GitHub上で公開されているので、誰でも利用することが出来ます。 Windows, Unix, MacのいずれのOS上でも動きます。
  17. また、Phillipを用いて、Winograd Schema Challengeと呼ばれる共参照解析のデータセットへの仮説推論の適用を開始し始めています。 発表の後半でこの話も少しご紹介します。
  18. Phillipの内部が具体的にどうなっているかの説明をする。
  19. まず、Phillipでは、井之上らの ILP-based Abduction に基づいた実装を採用しています。 これは、仮説の候補に対する評価関数値をILP問題として表すことによって、外部の高速なILPソルバーを用いて高速に最適解を導出することが出来ます。
  20. Phillipでは、これに加えて様々な効率化の工夫を行っています。 それらの根底には、潜在仮説集合の規模を出来るだけ小さくすることによって、推論全体の計算量を軽減する、というアイデアがあります。
  21. Phillipでは、これに加えて様々な効率化の工夫を行っています。 それらの根底には、潜在仮説集合の規模を出来るだけ小さくすることによって、推論全体の計算量を軽減する、というアイデアがあります。
  22. 内部で実装されている工夫をいくつか紹介します。 まず、解仮説に含まれる可能性が低い推論を、A*探索に基づいた探索を導入することによって出来る限り除外しています。
  23. より具体的には、「解仮説に含まれる可能性があるのは、単一化を導く可能性のある推論だけだ」という前提を置いた上で、単一化を導かない推論を探索の段階で除外しています。
  24. また、探索の段階での無矛盾性のチェックも行っています。 例えばこの例では、新しく仮説される police(Tom) がその祖先である criminal(Tom) と排他関係にあることを探索の段階で検知し、この推論自体を行わないようにしています。
  25. また、NeoDavidsonian形式における探索空間の爆発を抑える工夫も行っています。 NeoDavidsonian形式というのはイベントを論理表現として記述する際の形式のひとつで〜。 この形式では、可変個の依存関係を記述できるため、NLPにおける推論ベースのシステムの多くにおいて、多少なりともこの表現形式が使われています。
  26. しかしながら、NeoDavidsonian形式が抱える問題として、関係を表すリテラルとして、同じ述語と異なる変数をもった多数のリテラルが出現するため、探索空間の爆発を引き起こしやすいという問題があります。 例えばこの例では〜
  27. これに対しPhillipでは、リテラル間の変数の一致関係を強く見に行くことによって、不適切な推論を起こらないようにする工夫を行っています。 たとえばこの例では、dieとは異なるイベントに対する格関係を表すリテラルについては公理を適用できないようにしていたり、 異なるイベントに対する格関係を表すリテラル同士では単一化できないようにしています。
  28. このような工夫によってどの程度の高速化の効果が得られるのかを、実験で確かめました。 〜
  29. 次に、カスタマイズ性に関してお話します。
  30. これを踏まえ、Phillipでは、推論のフローを3つに分割し、それぞれをコンポーネントとして自由に差し替えできるような実装を採用しています。 これにより、コードの再利用性、システムとしての柔軟性を、極めて高いレベルで確保できるようになっています。
  31. また、他プログラムとの連携や、ユーザ定義のコンポーネントをPhillip上で用いることも可能です。 例えばユーザが自分で定義した評価関数で仮説推論を行いたい場合には、ライブラリとしてコンパイルしたPhillipと、ごく少量のコーディングだけでそれを実現することが出来ます。
  32. この例では、もともとのコードに加えてユーザが新しく書き下す必要のあるのは青い部分だけです。 仮説の候補の生成や、ILPソルバーの利用など、他の大部分のコードについてはPhillip上の既存の処理を利用することができます。
  33. 最後に、現在我々が行っている取り組みについて少しお話します。
  34. まず仮説推論に限らず、一階述語論理の論理推論一般における問題として、シンボルが一致していないと公理を適用できないという問題がある。 〜 これにより、本来欲しい公理と殆ど似たような公理が知識に含まれているのに、表層が違うばかりに適用できない、という状況が生まれます。
  35. このような問題に対して我々は、述語間の類似性に関する知識を別に持っておくことで、公理を柔らかく適用できるような機能を実装しています。 ここには、公理の形で与えられた同義・上位下位などの知識のほか、WordEmbeddingから計算された類似度の知識が含まれています。 現在の最新版にはまだこの機能は追加されていませんが、近いうちに正式にリリースする予定です。
  36. また、従来システムより遥かに効率的な推論が可能になったことにより、実問題への適用もついに始まりました。 ここではWinograd Schema Challengeを対象としています。 〜
  37. 結果はこんな感じ。 チャンスレートに毛が生えたような結果ではあるものの、この規模の知識でこの量の問題をそれなりの時間で解析できるようになったという意味では非常に意味がある。
  38. このように、仮説推論を実問題の上で動かせるような状況がついに来た。 次のフェーズとしてやりたい事は沢山ある。
  39. 公理側からの「●●から○○をこのくらいのコストで仮説できる」という知識と、 分布意味論側の「●●と○○はこのくらい似てる」という知識を、 実数値の行列という統一した形にエンコードする。
  40. 公理側からの「●●から○○をこのくらいのコストで仮説できる」という知識と、 分布意味論側の「●●と○○はこのくらい似てる」という知識を、 実数値の行列という統一した形にエンコードする。
  41. 公理側からの「●●から○○をこのくらいのコストで仮説できる」という知識と、 分布意味論側の「●●と○○はこのくらい似てる」という知識を、 実数値の行列という統一した形にエンコードする。
  42. 公理側からの「●●から○○をこのくらいのコストで仮説できる」という知識と、 分布意味論側の「●●と○○はこのくらい似てる」という知識を、 実数値の行列という統一した形にエンコードする。