SlideShare a Scribd company logo
1 of 51
Download to read offline
チャレンジ応募に向けた
参考アプローチの紹介
2020年9月9日
富士通研究所
★鵜飼孝典、松下京群
0 Copyright 2020 FUJITSU LABORATORIES LTD
ナレッジグラフ推論チャレンジ2020技術勉強会
本講演の目的
 ナレッジグラフ推論チャレンジへの応募のヒントを提供する
 想定する対象者
 人工知能、推論、ナレッジグラフに関する技術、知識を持っている
 ナレッジグラフ推論チャレンジにどう取り組んで、
応募すればよいかわからない
 例:ディープラーニングの技術を持っているんだけど、
 例:論理プログラムの知識を持っているんだけど、
 例:SPARQLのクェリーは書けるんだけど、
自分の持っている技術をどう適用すれば応募できるかわからない
1 Copyright 2020 FUJITSU LABORATORIES LTD
応募までのステップ
1. 課題設定
2. 方針(方式、解き方)設定
3. KGの補完、(変換)
4. 実装
Copyright 2020 FUJITSU LABORATORIES LTD2
課題設定
 「推論チャレンジ」では課題があいまいに設定されている
⇒ 課題設定を自分で詳細化し、補う必要がある
 チャレンジタスクの設定(推論チャレンジのHPより)
 対象とするナレッジグラフを用いて、事件の真相を推論(推理)し、
真相と判断した理由の説明と共に示す。
 タスクの正解としては、ホームズと同じ結論に辿り着けること。
(ホームズが解決した事件の真相を説明する)
Copyright 2020 FUJITSU LABORATORIES LTD3
審査基準
1.ホームズの推理を再現できるか?
2.説明が納得できるか?
3.技術的な工夫
 - 推論の仕方
 - 拡張した知識
4.評価観点
 - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の
提案?
 - 少ない知識をうまく使う vs. 多量の知識?
 - 複数の作品に共通的に適用できる手法を高く評価
5.書類審査+プレゼンで評価
4 Copyright 2020 FUJITSU LABORATORIES LTD
審査基準
1.ホームズの推理を再現できるか?
2.説明が納得できるか?
3.技術的な工夫
 - 推論の仕方
 - 拡張した知識
4.評価観点
 - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の
提案?
 - 少ない知識をうまく使う vs. 多量の知識?
 - 複数の作品に共通的に適用できる手法を高く評価
5.書類審査+プレゼンで評価
5 Copyright 2020 FUJITSU LABORATORIES LTD
• ホームズの推理を再現するのか?
• (一般的な)事件の真相を推論する
システム(人工知能)を作るのか?
審査基準
1.ホームズの推理を再現できるか?
2.説明が納得できるか?
3.技術的な工夫
 - 推論の仕方
 - 拡張した知識
4.評価観点
 - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の
提案?
 - 少ない知識をうまく使う vs. 多量の知識?
 - 複数の作品に共通的に適用できる手法を高く評価
5.書類審査+プレゼンで評価
6 Copyright 2020 FUJITSU LABORATORIES LTD
• 納得できる説明ってなに?
課題設定の例1
 全ての事件を解決する汎用AIを目指す
 小説を事件の記述と捉え、犯人をあてる
 納得できる説明を以下のように定義する
 犯罪発生の3要素に問題を分解
• 3要素:動機,機会,手段
 全ての要素を持つ人物を犯人であると結論付ける
7 Copyright 2020 FUJITSU LABORATORIES LTD
課題設定の例2
 個別タスクを解く専用AIを目指す
 例:事件を起こす動機を持った登場人物を特定する
 例:場所の状況を入力として密室トリックを解く
 例:踊る人形の暗号を解く
 (専用AIを組み合わせて、すべての事件を解く)
番外:ナレッジグラフ構築支援ツールによる応募
 自然言語文のトリプル化
 語彙統制→オントロジー作成
8 Copyright 2020 FUJITSU LABORATORIES LTD
課題設定の例3
 汎用の説明可能AIを目指す
 2019年にGNNExplainerというグラフニューラルネットワーク
の説明を生成するシステム(1)が提案された
 説明をサブグラフと特徴量として出力
 期待
• 登場人物に対して、動機や手段をしめすサブグラフを出力
9 Copyright 2020 FUJITSU LABORATORIES LTD
(1) https://papers.nips.cc/paper/9123-gnnexplainer-generating-explanations-for-graph-neural-networks
応募までのステップ
1. 課題設定
2. 方針(方式、解き方)設定
3. KGの補完、(変換)
4. 実装
Copyright 2020 FUJITSU LABORATORIES LTD10
課題設定
 全ての事件を解決する汎用AIを目指す
 小説を事件の記述と捉え、犯人をあてる
 納得できる説明を以下のように定義する
 犯罪発生の3要素に問題を分解
• 3要素:動機,機会,手段
 全ての要素を持つ人物を犯人であると結論付ける
11 Copyright 2020 FUJITSU LABORATORIES LTD
 3要素:動機,機会,手段
 それぞれの要素を持つ人物を検索するSPARQLを作成
 運営から与えられるKGでは不十分なので,KGを追加
 全ての要素を持つ人物を犯人であると結論付ける
方針設定の例1
Copyright 2020 FUJITSU LABORATORIES LTD12
 3要素:動機,機会,手段
 それぞれの要素を持つ人物をナレッジグラフ埋め込み技術を
用いてリンク予測
 運営から与えられるKGでは不十分なので,KGを追加
 全ての要素を持つ人物を犯人であると結論付ける
方針設定の例2
Copyright 2020 FUJITSU LABORATORIES LTD13
 3要素:動機,機会,手段
 それぞれの要素を持つ人物をGCNなどのグラフニューラル
ネットワーク技術を用いて予測
 運営から与えられるKGでは不十分なので,KGを追加
 全ての要素を持つ人物を犯人であると結論付ける
方針設定の例3
Copyright 2020 FUJITSU LABORATORIES LTD14
 3要素:動機,機会,手段
 それぞれの要素を持つ人物を検索するSPARQLを作成
 運営から与えられるKGでは不十分なので,KGを追加
 以下では、「まだらの紐」に適用した結果を使って説明
方針設定の例1の実装
Copyright 2020 FUJITSU LABORATORIES LTD15
動機
Copyright 2020 FUJITSU LABORATORIES LTD16
動機:概要と基本方針
 どのような人物が 動機 をもつか
 追加した知識,修正した知識
 殺人動機のオントロジ / 家族・友人関係のオントロジ /
登場人物の家族・友人関係 / 本文中から得られる知識
 期待する出力
Copyright 2020 FUJITSU LABORATORIES LTD
殺人の動機を持ってもおかしくない状況で,
対象が明確であれば殺害の動機を持つ
“犯人候補” は “動機” のために “対象” を殺す可能性がある
17
動機:追加した知識,修正した知識
 追加した知識,修正した知識
 犯罪白書を参考にした殺人動機のリスト
•追加した理由:殺人動機のタグ付けのため
•ex)
kgcf:rancor a kgcf:motivation_of_murder .
 家族・友人関係のナレッジ / 登場人物の家族・友人関係
• 追加した理由:親密な関係を持つ人物を判断するため
• ex)
kd:Roylott agrelon:hasChildInlaw kd:Helen .
 本文中にある記述(オリジナルのKGになかった部分)
• 追加した理由:動機の有無を判断する上で重要な記述だと考えたため
• ex)
kdf:_023 a kgc:Situation ;
kgc:source "村の人々はすっかりおびえてしまい,"@ja ;
kgc:subject kd:villager_of_Stoke_Moran ;
kgc:hasPredicate kd:beScared;
kgc:whom kd:Roylott .
Copyright 2020 FUJITSU LABORATORIES LTD18
 殺人の動機ごとに「殺人の動機を持ってもおかしくない状
況」と「どのような人物が対象になるか」を定義し,
SPARQLで表現
 例:親密な人が亡くなっていて,亡くなった原因となる人物の予測がつ
いている(怨恨)
動機:推論
Copyright 2020 FUJITSU LABORATORIES LTD
CONSTRUCT {
$this kgcf:hasMotivation kgcf:rancor ;
kgcf:want_to_kill ?killer .
} WHERE {
VALUES ?pred_of_think {kd:suspect} .
?subclass_of_scene rdfs:subClassOf kgc:Scene .
# 誰かが死んだシーン
?die_situation a ?subclass_of_scene ;
kgc:hasPredicate kd:die ;
kgc:subject ?dead_person .
# 死人と近い関係にあった人
?relation_of_close_person a kgcf:relation_of_family .
$this ?relation_of_close_person ?dead_person .
# 殺人犯に当たりがついているか
?think_situatoin a ?subclass_of_scene ;
kgc:hasPredicate ?pred_of_think ;
...
...
}
19
動機:実行例
$ cat output/merged.output.ttl
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott>
<http://kgchallenge.github.io/ontology/#hasMotivation>
<http://kgchallenge.github.io/data/#greed_for_money> ;
<http://kgchallenge.github.io/ontology/#want_to_kill>
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Julia> ,
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen> .
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen>
<http://kgchallenge.github.io/ontology/#hasMotivation>
<http://kgchallenge.github.io/data/#self_defence> ;
<http://kgchallenge.github.io/ontology/#want_to_kill>
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> .
<http://kgc.knowledge-graph.jp/data/SpeckledBand/villager_of_Stoke_Moran>
<http://kgchallenge.github.io/ontology/#hasMotivation>
<http://kgchallenge.github.io/data/#self_defence> ;
<http://kgchallenge.github.io/ontology/#want_to_kill>
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> .
【実行結果】
ロイロット は “金欲” のために ジュリア と ヘレン を殺す可能性がある
村人 は “自己防衛” のために ロイロット を殺す可能性がある
ヘレン は “自己防衛” のために ロイロット を殺す可能性がある
【要約】
【実行時間】 1.5s
【実行コマンド】
$ sh run_inference.sh
Copyright 2020 FUJITSU LABORATORIES LTD20
機会
Copyright 2020 FUJITSU LABORATORIES LTD21
機会:概要と基本方針
 どのような人物が 機会 をもつか
 追加した知識,修正した知識
 穴クラス / 庭に面した窓の知識 / 記述の統一・修正
 期待する出力
Copyright 2020 FUJITSU LABORATORIES LTD
事件当夜,ジュリアの部屋に移動可能な場所にいた人物は機会がある
ジュリアの部屋に行くことができた “犯人候補” は機会を持つ
22
機会:各々の初期位置取得
 事件当夜,各々がいた場所を以下の SPARQL で取得
Copyright 2020 FUJITSU LABORATORIES LTD
事件当夜,各々が居た場所
23
#穴で接続している
SELECT distinct ?x ?y ?hole ?scene1 WHERE {
?scene1 kgc:hasPredicate ?predexist .
?scene1 kgc:subject ?hole .
?hole rdf:type kgcf:Hole .
{ ?scene1 kgc:from ?x . ?scene1 kgc:to ?y .
} UNION {
?scene1 kgc:where ?x . ?scene1
kgc:where ?y .
} UNION {
?scene1 kgc:where ?x . ?scene1 kgc:to ?y .
}…}
穴で繋がっている空間を列挙
機会:移動できた空間の列挙
Copyright 2020 FUJITSU LABORATORIES LTD
#人が通れない
SELECT distinct ?x ?y ?hole ?being ?scene2 WHERE
{
?scene2 kgc:subject kd:man .
?scene2 kgc:hasPredicate ?prednotgo .
{ ?scene2 kgc:from ?x . ?scene2 kgc:to ?y .
… } UNION {
?scene2 kgc:where ?hole .
?hole rdf:type kgcf:Hole . }…}
”通れない”を表す述語
#穴の性質(鍵がかかっている,狭い,閉まっている)
SELECT distinct ?hole ?prop ?scene3 WHERE {
?scene3 kgc:hasProperty ?prop .
?scene3 kgc:subject ?hole .
?hole rdf:type kgcf:Hole .
filter(?prop in (kd:lock, kd:narrow, kd:close,
kd:small, kd:beSmall)) …}
#穴が障害物で塞がっている
SELECT distinct ?hole ?obstacle ?scene WHERE {
{ ?scene kgc:subject ?obstacle . ?scene
kgc:hasPredicate kd:exist . ?scene
kgc:where ?hole .
} UNION {
?scene kgc:subject ?hole . ?scene
kgc:hasPredicate kd:have . ?scene
kgc:what ?obstacle .
} ?hole rdf:type kgcf:Hole . ?obstacle
rdf:type kgc:Object . …}
穴で接続している空間を列挙 移動できない空間を列挙
移動できない空間を列挙
人が移動できる空間
SELECT distinct ?x ?y ?hole ?scene WHERE {
(穴で接続している)
MINUS {移動できない空間}
}
24
機会:全体
 事件当夜の各々の位置を SPARQL 取得
 移動可能な空間を列挙
 各々がJuliaの部屋に行けたのかを推論
Copyright 2020 FUJITSU LABORATORIES LTD
From <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen> man can go to:
http://kgc.knowledge-graph.jp/data/SpeckledBand/corridor
http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott
From <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott> man can go to:
http://kgc.knowledge-graph.jp/data/SpeckledBand/corridor
http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen
From <http://kgc.knowledge-graph.jp/data/SpeckledBand/garden_of_Roylott> man can go to:
<http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen> # Helen: Helen の寝室
<http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott> # Roylott: Roylott の寝室
<http://kgc.knowledge-graph.jp/data/SpeckledBand/garden_of_Roylott> # Roma: 屋敷の庭
移動できる空間
SELECT distinct ?x ?y ?hole ?scene WHERE {
(穴で接続している)
MINUS {移動できない空間}
}
ジュリアの部屋に行くことができた “None” は機会を持つ
誰もジュリアの部屋に
行けなかった
25
手段
Copyright 2020 FUJITSU LABORATORIES LTD26
手段:概要と基本方針
 どのような人物が 手段 をもつか
 追加した知識
 殺害方法オントロジー
 殺害オントロジーのクラスと推論チャレンジKGの各オブジェクトの関
係
 期待する出力
Copyright 2020 FUJITSU LABORATORIES LTD
殺害方法を推論 → その殺害方法のための道具を持つ人は手段を持つ
ジュリアは “殺害方法” で殺害された.
“殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ.
27
追加した知識
 殺害方法オントロジー を作成し,被害者の状況などから,殺
害方法を特定
Copyright 2020 FUJITSU LABORATORIES LTD
鞭
斬殺
包丁
毒動物
殺害方法
嘔吐
毒蛇
傷跡
めまい
症状
症状症状
犯罪供用物
関連物
subClassOf
subClassOf
subClassOf
刃物
subClassOf
症状殺害方法
犯罪供用物 関連物
包丁斬殺
subClassOf
犯罪供用物
毒動物殺
毒蛇殺
subClassOf
毒殺
subClassOf
犯罪供用物
犯罪供用物
症状
症状 や 凶器(犯罪供用物) などが含まれる
28
手段:症状から殺害方法を特定
 コマンド
 結果
 実行時間
 1秒
Copyright 2020 FUJITSU LABORATORIES LTD
$ ./apache-jena-3.9.0/bin/sparql --data=data/all.ttl ¥
--query=query.txt --results=JSON
・・・
"results": {
"bindings": [
{
"situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/73" } ,
“symptom”: { “type”: “uri” , “value”: “http://kgchallenge.github.io/ontology/めまい" } ,
"symptom_status": { "type": "literal" , "value": "true" } ,
"killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" }
} ,
{
"situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/72" } ,
"symptom": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/青白い" } ,
"symptom_status": { "type": "literal" , "value": "true" } ,
"killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" }
} ,
{
"situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/104" } ,
"symptom": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/傷跡" } ,
"symptom_status": { "type": "literal" , "value": "false" } ,
"killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" }
}
]
・・・
「めまい」から
「毒殺」を推論
「青白い」から
「毒殺」を推論
「傷跡がない」から
「毒殺」を推論
「症状」から「殺害方法」を推論
29
手段:殺害方法から手段を持つ人物を特定
 コマンド
 結果
 実行時間
 10秒
Copyright 2020 FUJITSU LABORATORIES LTD
@prefix ns1: <http://kgchallenge.github.io/ontology/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> ns1:has_method _:N4d22fac28dc54a74b43608c6d7d7f4b0,
_:N770af8f4248749609dca09966a72f106 .
_:N4d22fac28dc54a74b43608c6d7d7f4b0 a ns1:毒動物殺 .
_:N770af8f4248749609dca09966a72f106 a ns1:毒蛇殺 .
[] a rdf:Statement ;
ns1:has_reason [ ns1:reason_situ <http://kgc.knowledge-graph.jp/data/SpeckledBand/390> ;
ns1:related_reason <http://kgc.knowledge-graph.jp/data/SpeckledBand/whip> ] ;
rdf:object _:N770af8f4248749609dca09966a72f106 ;
rdf:predicate ns1:has_method ;
rdf:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> .
[] a rdf:Statement ;
ns1:has_reason [ ns1:reason_situ <http://kgc.knowledge-graph.jp/data/SpeckledBand/390> ;
ns1:related_reason <http://kgc.knowledge-graph.jp/data/SpeckledBand/whip> ] ;
rdf:object _:N4d22fac28dc54a74b43608c6d7d7f4b0 ;
rdf:predicate ns1:has_method ;
rdf:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> .
$ python person_detecter.py result.json output.ttl rule.conf
「毒蛇殺,毒動物殺」を行うための「whip」を
「ロイロット」が持っていたことを推論
「殺害方法」から 「道具」 をもつ「犯人候補」を推論
ジュリアは “毒動物殺,毒蛇殺” で殺害された.
“殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ.
30
結論
Copyright 2020 FUJITSU LABORATORIES LTD31
結論・まとめ
 動機
 機会
 手段
 以上から,本事件の結論を以下のように推論(人手)
Copyright 2020 FUJITSU LABORATORIES LTD
ジュリアの部屋に行くことができた “None” は機会を持つ
誰もジュリアの部屋に
行けなかった
ロイロット は “金欲” のために ジュリア と ヘレン を殺す可能性がある
村人 は “自己防衛” のために ロイロット を殺す可能性がある
ヘレン は “自己防衛” のために ロイロット を殺す可能性がある
ロイロットが金欲のために,毒蛇を用いて,ジュリアを殺害
ジュリアは “殺害方法” で殺害された.
“殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ.
32
 3要素:動機,機会,手段
 それぞれの要素を持つ人物を検索するSPARQLを作成
 動機オントロジー、手段オントロジーを追加
 他の小説に適用、SPARQLの拡張をおこなって、応募してみてはいかがでしょ
うか?
 まだらのひも : ジュリアの死因を探る
• 誰がどんな理由で殺したのか?
• どうやって殺したのか?
 踊る人形:キュービット氏と妻の死因を探る
• 誰がどんな理由で殺したのか?
• どうやって殺したのか?
 花婿失踪事件:ホズマーの失踪の原因を探る
• 誰がどんな理由で失踪させたのか?
• どうやって失踪させたのか?
 悪魔の足:ブレンダとモーティマーの死因を探る
• 誰がどんな理由で殺したのか?
• どうやって殺したのか?
 背中の曲がった男:ジェームズの死因を探る
• 誰がどんな理由で殺したのか?
• どうやって殺したのか?
応募への道筋1
Copyright 2020 FUJITSU LABORATORIES LTD33
むずかしさ
 SPARQLを作れば解けるわけではない
 ナレッジグラフが不完全
 例:時刻情報が欠けている
 例:もともとの小説も描写が不十分
→ github に issue や PRを送る
 ナレッジグラフが統制されていない
 語彙、Situationの表現
→ github に issue や PRを送る
 あやまった知識を入れるかどうか?
 まだらの紐
• 蛇を飼いならすことができる
• 小説に説明される蛇の毒は見つかっていない
34 Copyright 2020 FUJITSU LABORATORIES LTD
 3要素:動機,機会,手段
 それぞれの要素を持つ人物をナレッジグラフ埋め込み技術を
用いてリンク予測
 運営から与えられるKGでは不十分なので,KGを追加
 全ての要素を持つ人物を犯人であると結論付ける
方針設定の例2
Copyright 2020 FUJITSU LABORATORIES LTD35
拡大ナレッジグラフの学習と犯人予測
Copyright 2019 FUJITSU LABORATORIES LIMITED
動機オントロジー
金銭:遺産、財産
うらみ:義憤、怨恨
手段オントロジー
毒殺:毒、毒蛇
刺殺:ナイフ、やり
小説ナレッジグラフ
全体のグラフ埋め込みを学習
登場人物 ?path1 ?motivation 動機
登場人物 ?path2 ?mean 手段 各登場人物に関連する動機、手段を予測
各登場人物に関連する動機、手段に関連するシーンを根拠として出力
36
動機オントロジー、手段オントロジーの拡張
 動機辞書→動機オントロジー
 うらみ instanceOf 動機
 金銭 instannceOf 動機
 お金 relatedWith 金銭
 殺人方法辞書→手段オントロジー
 毒殺 relatedWith 蛇
 刺殺 relatedWith ナイフ
 射殺 relatedWith 銃
Copyright 2019 FUJITSU LIMITED37
全体構成図(拡大ナレッジグラフ)
Copyright 2019 FUJITSU LABORATORIES LIMITED
動機辞書
うらみ、金銭、
動機オントロジー
金銭:遺産、財産
うらみ:義憤、怨恨
Wikipediaの単語ベクトル
Wordnetのグラフベクトル
手段オントロジー
毒殺:毒、毒蛇
刺殺:ナイフ、やり
殺人方法辞書
毒殺、刺殺
Wikipediaの単語ベクトル
Wordnetのグラフベクトル
ワードネット 小説ナレッジグラフ
38
小説ナレッジグラフの拡張例
 シーン2
 タイプ シチュエーション
 ソース 「ヘレンは怖がっている」
 ソース 「Helen is scared」
 動詞(状態) 恐れている
 主語 ヘレン
 <http://kgc.knowledge-graph.jp/data/SpeckledBand/2>
 rdf:type kgc:Situation;
 kgc:source "ヘレンは怖がっている"@ja ;
 kgc:source "Helen is scared"@en ;
 kgc:hasPredicate <http://kgc.knowledge-graph.jp/data/SpeckledBand/beScared> ;
 kgc:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen>.
Copyright 2019 FUJITSU LIMITED39
拡張グラフ
40 Copyright 2020 FUJITSU LABORATORIES LTD
シーン2
ヘレン
怖がっている
wordnet:word-scared
動機
防衛、護身
小説ナレッジグラフ Wordnet 動機オントロジー
拡張グラフ
41 Copyright 2020 FUJITSU LABORATORIES LTD
シーン2
ヘレン
怖がっている
wordnet:word-scared
動機
防衛、護身
リンク予測、スコア
説明
容疑者ごとに動機を予測する
 ヘレン hasMotivation ?motivation .
 うらみ (0.4)
 金銭(0.3)
 :
 ロイロット hasMotivation ?motivation .
 愛(0.6)
 うらみ(0.3)
 :
Copyright 2019 FUJITSU LABORATORIES LIMITED42
動機につながるシーンを検索する
 Select ?s ?word where {
 ?s kgc:subject ロイロット.
 ?s :relatedWith ?word .
 ?word :relatedWith 愛.
 }
 kd:113 kgc:source "ロイロット博士はヘレンとパーシィ・
アーミティッジの結婚に反対しない。"@ja , " Roylott is not
opposed to the marriage between Helen and Persie
Armitage."@en ;
kgc:relatedWith wn31instances:word-marriage
 結婚というキーワードで、愛ゆえに殺すという動機を示して
いる
Copyright 2019 FUJITSU LABORATORIES LIMITED43
容疑者ごとに手段を予測する
 ロイロット hasMean ?mean .
 毒殺(0.6)
 絞殺(0.3)
 :
Copyright 2019 FUJITSU LABORATORIES LIMITED44
手段につながるシーンを検索する
 Select ?s ?word where {
 ?s ?p ロイロット.
 ?s :relatedWith ?word .
 ?word :relatedWith 毒殺.
 }
 kd:84 kgc:source "事件当夜,ロイロットはジュリアにブ
ランデーを飲ませた"@ja , "On death day of Julia, Roylott
gave Julia a drink of brandy"@en ;
kgcf:relatedWord wn31instances:word-a , wn31instances:word-drink ,
wn31instances:word-give , wn31instances:word-brandy ,
wn31instances:word-on , wn31instances:word-death , wn31instances:word-
day .
 飲み物で毒殺を示唆する文を出力した
Copyright 2019 FUJITSU LABORATORIES LIMITED45
事件の結論:まだらのひも
 以下のような可能性が出力された(スコア順)
 ロイロットが財産目的、うらみで殺した
• 手段としては、毒殺(ブランデーに毒)、絞殺(寝室のひも)などが考えら
れる
 村人がうらみで殺した
• 手段としては、絞殺(寝室のひも)などが考えられる
 ヘレンが財産目当て、あるいは恨み、愛ゆえに殺した
• 手段としては、絞殺(寝室のひも)などが考えられる
 村人がうらみで殺したという可能性は、ロイロットが嫌われ
ていたというシーンが出力されるので、うらみを持つ相手を
学習しなかったということを意味する
 今後、動機の対象を適切に判断できるような仕組みを組み込
む必要がある
Copyright 2019 FUJITSU LABORATORIES LIMITED46
5つとも解けたのか?
 まだらのひもについては、
 容疑者としては、ロイロット、ヘレン
 手段としては、ロイロットの毒殺、ロイロット、ヘレンの寝室にあるひ
も(ロープ)による絞殺
が候補として上位に出力された
 花嫁失踪事件については、登場人物が少なく、メアリーと
ジェイムズの両方が同じように誘拐犯人として推論された。
 他の3つについても登場人物ほぼ全てが同じように低いスコ
アで推論され、動機は、愛、金銭が出力され、手段としては、
決定的なものは出力されなかった。
Copyright 2019 FUJITSU LABORATORIES LIMITED47
提案
 追加する背景知識の整備
 リンク予測を行うモデル、アルゴリズムの改良
48 Copyright 2020 FUJITSU LABORATORIES LTD
応募までのステップ
1. 課題設定
2. 方針(方式、解き方)設定
3. KGの補完、(変換)
4. 実装
ご紹介した課題設定や解き方を再利用して、ご自身の技術を適
用して、ご応募してみてはいかがでしょうか
Copyright 2020 FUJITSU LABORATORIES LTD49
Copyright 2019 FUJITSU LABORATORIES LTD

More Related Content

More from Takanori Ugai

コロナ禍における研究会のデザインに向けて
コロナ禍における研究会のデザインに向けてコロナ禍における研究会のデザインに向けて
コロナ禍における研究会のデザインに向けてTakanori Ugai
 
第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料Takanori Ugai
 
ナレッジグラフ推論チャレンジ2020最終審査
ナレッジグラフ推論チャレンジ2020最終審査ナレッジグラフ推論チャレンジ2020最終審査
ナレッジグラフ推論チャレンジ2020最終審査Takanori Ugai
 
.ニューノーマルを見据えた研究会デザインに向けて
.ニューノーマルを見据えた研究会デザインに向けて.ニューノーマルを見据えた研究会デザインに向けて
.ニューノーマルを見据えた研究会デザインに向けてTakanori Ugai
 
Lodc kgrc 2020 Meeting
Lodc kgrc 2020 MeetingLodc kgrc 2020 Meeting
Lodc kgrc 2020 MeetingTakanori Ugai
 
推論チャレンジ2019発表資料
推論チャレンジ2019発表資料推論チャレンジ2019発表資料
推論チャレンジ2019発表資料Takanori Ugai
 
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~Takanori Ugai
 
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Takanori Ugai
 
Visualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapVisualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapTakanori Ugai
 

More from Takanori Ugai (10)

コロナ禍における研究会のデザインに向けて
コロナ禍における研究会のデザインに向けてコロナ禍における研究会のデザインに向けて
コロナ禍における研究会のデザインに向けて
 
第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料第52回SWO研究会チュートリアル資料
第52回SWO研究会チュートリアル資料
 
ナレッジグラフ推論チャレンジ2020最終審査
ナレッジグラフ推論チャレンジ2020最終審査ナレッジグラフ推論チャレンジ2020最終審査
ナレッジグラフ推論チャレンジ2020最終審査
 
.ニューノーマルを見据えた研究会デザインに向けて
.ニューノーマルを見据えた研究会デザインに向けて.ニューノーマルを見据えた研究会デザインに向けて
.ニューノーマルを見据えた研究会デザインに向けて
 
Lodc kgrc 2020 Meeting
Lodc kgrc 2020 MeetingLodc kgrc 2020 Meeting
Lodc kgrc 2020 Meeting
 
推論チャレンジ2019発表資料
推論チャレンジ2019発表資料推論チャレンジ2019発表資料
推論チャレンジ2019発表資料
 
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~
第2回ナレッジグラフ推論チャレンジ2019勉強会 ~ 同一事件 A CASE OF IDENTITY ~
 
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
Practical use of Knowledge Graph with Case Studies using Semantic Web Publish...
 
Nober application
Nober applicationNober application
Nober application
 
Visualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored MapVisualizing Stakeholder Concerns with Anchored Map
Visualizing Stakeholder Concerns with Anchored Map
 

ナレッジグラフ推論チャレンジ2020技術勉強会

  • 2. 本講演の目的  ナレッジグラフ推論チャレンジへの応募のヒントを提供する  想定する対象者  人工知能、推論、ナレッジグラフに関する技術、知識を持っている  ナレッジグラフ推論チャレンジにどう取り組んで、 応募すればよいかわからない  例:ディープラーニングの技術を持っているんだけど、  例:論理プログラムの知識を持っているんだけど、  例:SPARQLのクェリーは書けるんだけど、 自分の持っている技術をどう適用すれば応募できるかわからない 1 Copyright 2020 FUJITSU LABORATORIES LTD
  • 3. 応募までのステップ 1. 課題設定 2. 方針(方式、解き方)設定 3. KGの補完、(変換) 4. 実装 Copyright 2020 FUJITSU LABORATORIES LTD2
  • 4. 課題設定  「推論チャレンジ」では課題があいまいに設定されている ⇒ 課題設定を自分で詳細化し、補う必要がある  チャレンジタスクの設定(推論チャレンジのHPより)  対象とするナレッジグラフを用いて、事件の真相を推論(推理)し、 真相と判断した理由の説明と共に示す。  タスクの正解としては、ホームズと同じ結論に辿り着けること。 (ホームズが解決した事件の真相を説明する) Copyright 2020 FUJITSU LABORATORIES LTD3
  • 5. 審査基準 1.ホームズの推理を再現できるか? 2.説明が納得できるか? 3.技術的な工夫  - 推論の仕方  - 拡張した知識 4.評価観点  - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の 提案?  - 少ない知識をうまく使う vs. 多量の知識?  - 複数の作品に共通的に適用できる手法を高く評価 5.書類審査+プレゼンで評価 4 Copyright 2020 FUJITSU LABORATORIES LTD
  • 6. 審査基準 1.ホームズの推理を再現できるか? 2.説明が納得できるか? 3.技術的な工夫  - 推論の仕方  - 拡張した知識 4.評価観点  - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の 提案?  - 少ない知識をうまく使う vs. 多量の知識?  - 複数の作品に共通的に適用できる手法を高く評価 5.書類審査+プレゼンで評価 5 Copyright 2020 FUJITSU LABORATORIES LTD • ホームズの推理を再現するのか? • (一般的な)事件の真相を推論する システム(人工知能)を作るのか?
  • 7. 審査基準 1.ホームズの推理を再現できるか? 2.説明が納得できるか? 3.技術的な工夫  - 推論の仕方  - 拡張した知識 4.評価観点  - すべての小説を同じ仕組みで解ける vs. 個別タスクに特化した手法の 提案?  - 少ない知識をうまく使う vs. 多量の知識?  - 複数の作品に共通的に適用できる手法を高く評価 5.書類審査+プレゼンで評価 6 Copyright 2020 FUJITSU LABORATORIES LTD • 納得できる説明ってなに?
  • 8. 課題設定の例1  全ての事件を解決する汎用AIを目指す  小説を事件の記述と捉え、犯人をあてる  納得できる説明を以下のように定義する  犯罪発生の3要素に問題を分解 • 3要素:動機,機会,手段  全ての要素を持つ人物を犯人であると結論付ける 7 Copyright 2020 FUJITSU LABORATORIES LTD
  • 9. 課題設定の例2  個別タスクを解く専用AIを目指す  例:事件を起こす動機を持った登場人物を特定する  例:場所の状況を入力として密室トリックを解く  例:踊る人形の暗号を解く  (専用AIを組み合わせて、すべての事件を解く) 番外:ナレッジグラフ構築支援ツールによる応募  自然言語文のトリプル化  語彙統制→オントロジー作成 8 Copyright 2020 FUJITSU LABORATORIES LTD
  • 10. 課題設定の例3  汎用の説明可能AIを目指す  2019年にGNNExplainerというグラフニューラルネットワーク の説明を生成するシステム(1)が提案された  説明をサブグラフと特徴量として出力  期待 • 登場人物に対して、動機や手段をしめすサブグラフを出力 9 Copyright 2020 FUJITSU LABORATORIES LTD (1) https://papers.nips.cc/paper/9123-gnnexplainer-generating-explanations-for-graph-neural-networks
  • 11. 応募までのステップ 1. 課題設定 2. 方針(方式、解き方)設定 3. KGの補完、(変換) 4. 実装 Copyright 2020 FUJITSU LABORATORIES LTD10
  • 12. 課題設定  全ての事件を解決する汎用AIを目指す  小説を事件の記述と捉え、犯人をあてる  納得できる説明を以下のように定義する  犯罪発生の3要素に問題を分解 • 3要素:動機,機会,手段  全ての要素を持つ人物を犯人であると結論付ける 11 Copyright 2020 FUJITSU LABORATORIES LTD
  • 13.  3要素:動機,機会,手段  それぞれの要素を持つ人物を検索するSPARQLを作成  運営から与えられるKGでは不十分なので,KGを追加  全ての要素を持つ人物を犯人であると結論付ける 方針設定の例1 Copyright 2020 FUJITSU LABORATORIES LTD12
  • 14.  3要素:動機,機会,手段  それぞれの要素を持つ人物をナレッジグラフ埋め込み技術を 用いてリンク予測  運営から与えられるKGでは不十分なので,KGを追加  全ての要素を持つ人物を犯人であると結論付ける 方針設定の例2 Copyright 2020 FUJITSU LABORATORIES LTD13
  • 15.  3要素:動機,機会,手段  それぞれの要素を持つ人物をGCNなどのグラフニューラル ネットワーク技術を用いて予測  運営から与えられるKGでは不十分なので,KGを追加  全ての要素を持つ人物を犯人であると結論付ける 方針設定の例3 Copyright 2020 FUJITSU LABORATORIES LTD14
  • 16.  3要素:動機,機会,手段  それぞれの要素を持つ人物を検索するSPARQLを作成  運営から与えられるKGでは不十分なので,KGを追加  以下では、「まだらの紐」に適用した結果を使って説明 方針設定の例1の実装 Copyright 2020 FUJITSU LABORATORIES LTD15
  • 17. 動機 Copyright 2020 FUJITSU LABORATORIES LTD16
  • 18. 動機:概要と基本方針  どのような人物が 動機 をもつか  追加した知識,修正した知識  殺人動機のオントロジ / 家族・友人関係のオントロジ / 登場人物の家族・友人関係 / 本文中から得られる知識  期待する出力 Copyright 2020 FUJITSU LABORATORIES LTD 殺人の動機を持ってもおかしくない状況で, 対象が明確であれば殺害の動機を持つ “犯人候補” は “動機” のために “対象” を殺す可能性がある 17
  • 19. 動機:追加した知識,修正した知識  追加した知識,修正した知識  犯罪白書を参考にした殺人動機のリスト •追加した理由:殺人動機のタグ付けのため •ex) kgcf:rancor a kgcf:motivation_of_murder .  家族・友人関係のナレッジ / 登場人物の家族・友人関係 • 追加した理由:親密な関係を持つ人物を判断するため • ex) kd:Roylott agrelon:hasChildInlaw kd:Helen .  本文中にある記述(オリジナルのKGになかった部分) • 追加した理由:動機の有無を判断する上で重要な記述だと考えたため • ex) kdf:_023 a kgc:Situation ; kgc:source "村の人々はすっかりおびえてしまい,"@ja ; kgc:subject kd:villager_of_Stoke_Moran ; kgc:hasPredicate kd:beScared; kgc:whom kd:Roylott . Copyright 2020 FUJITSU LABORATORIES LTD18
  • 20.  殺人の動機ごとに「殺人の動機を持ってもおかしくない状 況」と「どのような人物が対象になるか」を定義し, SPARQLで表現  例:親密な人が亡くなっていて,亡くなった原因となる人物の予測がつ いている(怨恨) 動機:推論 Copyright 2020 FUJITSU LABORATORIES LTD CONSTRUCT { $this kgcf:hasMotivation kgcf:rancor ; kgcf:want_to_kill ?killer . } WHERE { VALUES ?pred_of_think {kd:suspect} . ?subclass_of_scene rdfs:subClassOf kgc:Scene . # 誰かが死んだシーン ?die_situation a ?subclass_of_scene ; kgc:hasPredicate kd:die ; kgc:subject ?dead_person . # 死人と近い関係にあった人 ?relation_of_close_person a kgcf:relation_of_family . $this ?relation_of_close_person ?dead_person . # 殺人犯に当たりがついているか ?think_situatoin a ?subclass_of_scene ; kgc:hasPredicate ?pred_of_think ; ... ... } 19
  • 21. 動機:実行例 $ cat output/merged.output.ttl <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> <http://kgchallenge.github.io/ontology/#hasMotivation> <http://kgchallenge.github.io/data/#greed_for_money> ; <http://kgchallenge.github.io/ontology/#want_to_kill> <http://kgc.knowledge-graph.jp/data/SpeckledBand/Julia> , <http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen> . <http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen> <http://kgchallenge.github.io/ontology/#hasMotivation> <http://kgchallenge.github.io/data/#self_defence> ; <http://kgchallenge.github.io/ontology/#want_to_kill> <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> . <http://kgc.knowledge-graph.jp/data/SpeckledBand/villager_of_Stoke_Moran> <http://kgchallenge.github.io/ontology/#hasMotivation> <http://kgchallenge.github.io/data/#self_defence> ; <http://kgchallenge.github.io/ontology/#want_to_kill> <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> . 【実行結果】 ロイロット は “金欲” のために ジュリア と ヘレン を殺す可能性がある 村人 は “自己防衛” のために ロイロット を殺す可能性がある ヘレン は “自己防衛” のために ロイロット を殺す可能性がある 【要約】 【実行時間】 1.5s 【実行コマンド】 $ sh run_inference.sh Copyright 2020 FUJITSU LABORATORIES LTD20
  • 22. 機会 Copyright 2020 FUJITSU LABORATORIES LTD21
  • 23. 機会:概要と基本方針  どのような人物が 機会 をもつか  追加した知識,修正した知識  穴クラス / 庭に面した窓の知識 / 記述の統一・修正  期待する出力 Copyright 2020 FUJITSU LABORATORIES LTD 事件当夜,ジュリアの部屋に移動可能な場所にいた人物は機会がある ジュリアの部屋に行くことができた “犯人候補” は機会を持つ 22
  • 24. 機会:各々の初期位置取得  事件当夜,各々がいた場所を以下の SPARQL で取得 Copyright 2020 FUJITSU LABORATORIES LTD 事件当夜,各々が居た場所 23
  • 25. #穴で接続している SELECT distinct ?x ?y ?hole ?scene1 WHERE { ?scene1 kgc:hasPredicate ?predexist . ?scene1 kgc:subject ?hole . ?hole rdf:type kgcf:Hole . { ?scene1 kgc:from ?x . ?scene1 kgc:to ?y . } UNION { ?scene1 kgc:where ?x . ?scene1 kgc:where ?y . } UNION { ?scene1 kgc:where ?x . ?scene1 kgc:to ?y . }…} 穴で繋がっている空間を列挙 機会:移動できた空間の列挙 Copyright 2020 FUJITSU LABORATORIES LTD #人が通れない SELECT distinct ?x ?y ?hole ?being ?scene2 WHERE { ?scene2 kgc:subject kd:man . ?scene2 kgc:hasPredicate ?prednotgo . { ?scene2 kgc:from ?x . ?scene2 kgc:to ?y . … } UNION { ?scene2 kgc:where ?hole . ?hole rdf:type kgcf:Hole . }…} ”通れない”を表す述語 #穴の性質(鍵がかかっている,狭い,閉まっている) SELECT distinct ?hole ?prop ?scene3 WHERE { ?scene3 kgc:hasProperty ?prop . ?scene3 kgc:subject ?hole . ?hole rdf:type kgcf:Hole . filter(?prop in (kd:lock, kd:narrow, kd:close, kd:small, kd:beSmall)) …} #穴が障害物で塞がっている SELECT distinct ?hole ?obstacle ?scene WHERE { { ?scene kgc:subject ?obstacle . ?scene kgc:hasPredicate kd:exist . ?scene kgc:where ?hole . } UNION { ?scene kgc:subject ?hole . ?scene kgc:hasPredicate kd:have . ?scene kgc:what ?obstacle . } ?hole rdf:type kgcf:Hole . ?obstacle rdf:type kgc:Object . …} 穴で接続している空間を列挙 移動できない空間を列挙 移動できない空間を列挙 人が移動できる空間 SELECT distinct ?x ?y ?hole ?scene WHERE { (穴で接続している) MINUS {移動できない空間} } 24
  • 26. 機会:全体  事件当夜の各々の位置を SPARQL 取得  移動可能な空間を列挙  各々がJuliaの部屋に行けたのかを推論 Copyright 2020 FUJITSU LABORATORIES LTD From <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen> man can go to: http://kgc.knowledge-graph.jp/data/SpeckledBand/corridor http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott From <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott> man can go to: http://kgc.knowledge-graph.jp/data/SpeckledBand/corridor http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen From <http://kgc.knowledge-graph.jp/data/SpeckledBand/garden_of_Roylott> man can go to: <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Helen> # Helen: Helen の寝室 <http://kgc.knowledge-graph.jp/data/SpeckledBand/bedroom_of_Roylott> # Roylott: Roylott の寝室 <http://kgc.knowledge-graph.jp/data/SpeckledBand/garden_of_Roylott> # Roma: 屋敷の庭 移動できる空間 SELECT distinct ?x ?y ?hole ?scene WHERE { (穴で接続している) MINUS {移動できない空間} } ジュリアの部屋に行くことができた “None” は機会を持つ 誰もジュリアの部屋に 行けなかった 25
  • 27. 手段 Copyright 2020 FUJITSU LABORATORIES LTD26
  • 28. 手段:概要と基本方針  どのような人物が 手段 をもつか  追加した知識  殺害方法オントロジー  殺害オントロジーのクラスと推論チャレンジKGの各オブジェクトの関 係  期待する出力 Copyright 2020 FUJITSU LABORATORIES LTD 殺害方法を推論 → その殺害方法のための道具を持つ人は手段を持つ ジュリアは “殺害方法” で殺害された. “殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ. 27
  • 29. 追加した知識  殺害方法オントロジー を作成し,被害者の状況などから,殺 害方法を特定 Copyright 2020 FUJITSU LABORATORIES LTD 鞭 斬殺 包丁 毒動物 殺害方法 嘔吐 毒蛇 傷跡 めまい 症状 症状症状 犯罪供用物 関連物 subClassOf subClassOf subClassOf 刃物 subClassOf 症状殺害方法 犯罪供用物 関連物 包丁斬殺 subClassOf 犯罪供用物 毒動物殺 毒蛇殺 subClassOf 毒殺 subClassOf 犯罪供用物 犯罪供用物 症状 症状 や 凶器(犯罪供用物) などが含まれる 28
  • 30. 手段:症状から殺害方法を特定  コマンド  結果  実行時間  1秒 Copyright 2020 FUJITSU LABORATORIES LTD $ ./apache-jena-3.9.0/bin/sparql --data=data/all.ttl ¥ --query=query.txt --results=JSON ・・・ "results": { "bindings": [ { "situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/73" } , “symptom”: { “type”: “uri” , “value”: “http://kgchallenge.github.io/ontology/めまい" } , "symptom_status": { "type": "literal" , "value": "true" } , "killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" } } , { "situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/72" } , "symptom": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/青白い" } , "symptom_status": { "type": "literal" , "value": "true" } , "killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" } } , { "situation": { "type": "uri" , "value": "http://kgc.knowledge-graph.jp/data/SpeckledBand/104" } , "symptom": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/傷跡" } , "symptom_status": { "type": "literal" , "value": "false" } , "killing": { "type": "uri" , "value": "http://kgchallenge.github.io/ontology/毒殺" } } ] ・・・ 「めまい」から 「毒殺」を推論 「青白い」から 「毒殺」を推論 「傷跡がない」から 「毒殺」を推論 「症状」から「殺害方法」を推論 29
  • 31. 手段:殺害方法から手段を持つ人物を特定  コマンド  結果  実行時間  10秒 Copyright 2020 FUJITSU LABORATORIES LTD @prefix ns1: <http://kgchallenge.github.io/ontology/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xml: <http://www.w3.org/XML/1998/namespace> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> ns1:has_method _:N4d22fac28dc54a74b43608c6d7d7f4b0, _:N770af8f4248749609dca09966a72f106 . _:N4d22fac28dc54a74b43608c6d7d7f4b0 a ns1:毒動物殺 . _:N770af8f4248749609dca09966a72f106 a ns1:毒蛇殺 . [] a rdf:Statement ; ns1:has_reason [ ns1:reason_situ <http://kgc.knowledge-graph.jp/data/SpeckledBand/390> ; ns1:related_reason <http://kgc.knowledge-graph.jp/data/SpeckledBand/whip> ] ; rdf:object _:N770af8f4248749609dca09966a72f106 ; rdf:predicate ns1:has_method ; rdf:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> . [] a rdf:Statement ; ns1:has_reason [ ns1:reason_situ <http://kgc.knowledge-graph.jp/data/SpeckledBand/390> ; ns1:related_reason <http://kgc.knowledge-graph.jp/data/SpeckledBand/whip> ] ; rdf:object _:N4d22fac28dc54a74b43608c6d7d7f4b0 ; rdf:predicate ns1:has_method ; rdf:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Roylott> . $ python person_detecter.py result.json output.ttl rule.conf 「毒蛇殺,毒動物殺」を行うための「whip」を 「ロイロット」が持っていたことを推論 「殺害方法」から 「道具」 をもつ「犯人候補」を推論 ジュリアは “毒動物殺,毒蛇殺” で殺害された. “殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ. 30
  • 32. 結論 Copyright 2020 FUJITSU LABORATORIES LTD31
  • 33. 結論・まとめ  動機  機会  手段  以上から,本事件の結論を以下のように推論(人手) Copyright 2020 FUJITSU LABORATORIES LTD ジュリアの部屋に行くことができた “None” は機会を持つ 誰もジュリアの部屋に 行けなかった ロイロット は “金欲” のために ジュリア と ヘレン を殺す可能性がある 村人 は “自己防衛” のために ロイロット を殺す可能性がある ヘレン は “自己防衛” のために ロイロット を殺す可能性がある ロイロットが金欲のために,毒蛇を用いて,ジュリアを殺害 ジュリアは “殺害方法” で殺害された. “殺害方法” を行うための “道具” をもつ “犯人候補” は手段を持つ. 32
  • 34.  3要素:動機,機会,手段  それぞれの要素を持つ人物を検索するSPARQLを作成  動機オントロジー、手段オントロジーを追加  他の小説に適用、SPARQLの拡張をおこなって、応募してみてはいかがでしょ うか?  まだらのひも : ジュリアの死因を探る • 誰がどんな理由で殺したのか? • どうやって殺したのか?  踊る人形:キュービット氏と妻の死因を探る • 誰がどんな理由で殺したのか? • どうやって殺したのか?  花婿失踪事件:ホズマーの失踪の原因を探る • 誰がどんな理由で失踪させたのか? • どうやって失踪させたのか?  悪魔の足:ブレンダとモーティマーの死因を探る • 誰がどんな理由で殺したのか? • どうやって殺したのか?  背中の曲がった男:ジェームズの死因を探る • 誰がどんな理由で殺したのか? • どうやって殺したのか? 応募への道筋1 Copyright 2020 FUJITSU LABORATORIES LTD33
  • 35. むずかしさ  SPARQLを作れば解けるわけではない  ナレッジグラフが不完全  例:時刻情報が欠けている  例:もともとの小説も描写が不十分 → github に issue や PRを送る  ナレッジグラフが統制されていない  語彙、Situationの表現 → github に issue や PRを送る  あやまった知識を入れるかどうか?  まだらの紐 • 蛇を飼いならすことができる • 小説に説明される蛇の毒は見つかっていない 34 Copyright 2020 FUJITSU LABORATORIES LTD
  • 36.  3要素:動機,機会,手段  それぞれの要素を持つ人物をナレッジグラフ埋め込み技術を 用いてリンク予測  運営から与えられるKGでは不十分なので,KGを追加  全ての要素を持つ人物を犯人であると結論付ける 方針設定の例2 Copyright 2020 FUJITSU LABORATORIES LTD35
  • 37. 拡大ナレッジグラフの学習と犯人予測 Copyright 2019 FUJITSU LABORATORIES LIMITED 動機オントロジー 金銭:遺産、財産 うらみ:義憤、怨恨 手段オントロジー 毒殺:毒、毒蛇 刺殺:ナイフ、やり 小説ナレッジグラフ 全体のグラフ埋め込みを学習 登場人物 ?path1 ?motivation 動機 登場人物 ?path2 ?mean 手段 各登場人物に関連する動機、手段を予測 各登場人物に関連する動機、手段に関連するシーンを根拠として出力 36
  • 38. 動機オントロジー、手段オントロジーの拡張  動機辞書→動機オントロジー  うらみ instanceOf 動機  金銭 instannceOf 動機  お金 relatedWith 金銭  殺人方法辞書→手段オントロジー  毒殺 relatedWith 蛇  刺殺 relatedWith ナイフ  射殺 relatedWith 銃 Copyright 2019 FUJITSU LIMITED37
  • 39. 全体構成図(拡大ナレッジグラフ) Copyright 2019 FUJITSU LABORATORIES LIMITED 動機辞書 うらみ、金銭、 動機オントロジー 金銭:遺産、財産 うらみ:義憤、怨恨 Wikipediaの単語ベクトル Wordnetのグラフベクトル 手段オントロジー 毒殺:毒、毒蛇 刺殺:ナイフ、やり 殺人方法辞書 毒殺、刺殺 Wikipediaの単語ベクトル Wordnetのグラフベクトル ワードネット 小説ナレッジグラフ 38
  • 40. 小説ナレッジグラフの拡張例  シーン2  タイプ シチュエーション  ソース 「ヘレンは怖がっている」  ソース 「Helen is scared」  動詞(状態) 恐れている  主語 ヘレン  <http://kgc.knowledge-graph.jp/data/SpeckledBand/2>  rdf:type kgc:Situation;  kgc:source "ヘレンは怖がっている"@ja ;  kgc:source "Helen is scared"@en ;  kgc:hasPredicate <http://kgc.knowledge-graph.jp/data/SpeckledBand/beScared> ;  kgc:subject <http://kgc.knowledge-graph.jp/data/SpeckledBand/Helen>. Copyright 2019 FUJITSU LIMITED39
  • 41. 拡張グラフ 40 Copyright 2020 FUJITSU LABORATORIES LTD シーン2 ヘレン 怖がっている wordnet:word-scared 動機 防衛、護身 小説ナレッジグラフ Wordnet 動機オントロジー
  • 42. 拡張グラフ 41 Copyright 2020 FUJITSU LABORATORIES LTD シーン2 ヘレン 怖がっている wordnet:word-scared 動機 防衛、護身 リンク予測、スコア 説明
  • 43. 容疑者ごとに動機を予測する  ヘレン hasMotivation ?motivation .  うらみ (0.4)  金銭(0.3)  :  ロイロット hasMotivation ?motivation .  愛(0.6)  うらみ(0.3)  : Copyright 2019 FUJITSU LABORATORIES LIMITED42
  • 44. 動機につながるシーンを検索する  Select ?s ?word where {  ?s kgc:subject ロイロット.  ?s :relatedWith ?word .  ?word :relatedWith 愛.  }  kd:113 kgc:source "ロイロット博士はヘレンとパーシィ・ アーミティッジの結婚に反対しない。"@ja , " Roylott is not opposed to the marriage between Helen and Persie Armitage."@en ; kgc:relatedWith wn31instances:word-marriage  結婚というキーワードで、愛ゆえに殺すという動機を示して いる Copyright 2019 FUJITSU LABORATORIES LIMITED43
  • 45. 容疑者ごとに手段を予測する  ロイロット hasMean ?mean .  毒殺(0.6)  絞殺(0.3)  : Copyright 2019 FUJITSU LABORATORIES LIMITED44
  • 46. 手段につながるシーンを検索する  Select ?s ?word where {  ?s ?p ロイロット.  ?s :relatedWith ?word .  ?word :relatedWith 毒殺.  }  kd:84 kgc:source "事件当夜,ロイロットはジュリアにブ ランデーを飲ませた"@ja , "On death day of Julia, Roylott gave Julia a drink of brandy"@en ; kgcf:relatedWord wn31instances:word-a , wn31instances:word-drink , wn31instances:word-give , wn31instances:word-brandy , wn31instances:word-on , wn31instances:word-death , wn31instances:word- day .  飲み物で毒殺を示唆する文を出力した Copyright 2019 FUJITSU LABORATORIES LIMITED45
  • 47. 事件の結論:まだらのひも  以下のような可能性が出力された(スコア順)  ロイロットが財産目的、うらみで殺した • 手段としては、毒殺(ブランデーに毒)、絞殺(寝室のひも)などが考えら れる  村人がうらみで殺した • 手段としては、絞殺(寝室のひも)などが考えられる  ヘレンが財産目当て、あるいは恨み、愛ゆえに殺した • 手段としては、絞殺(寝室のひも)などが考えられる  村人がうらみで殺したという可能性は、ロイロットが嫌われ ていたというシーンが出力されるので、うらみを持つ相手を 学習しなかったということを意味する  今後、動機の対象を適切に判断できるような仕組みを組み込 む必要がある Copyright 2019 FUJITSU LABORATORIES LIMITED46
  • 48. 5つとも解けたのか?  まだらのひもについては、  容疑者としては、ロイロット、ヘレン  手段としては、ロイロットの毒殺、ロイロット、ヘレンの寝室にあるひ も(ロープ)による絞殺 が候補として上位に出力された  花嫁失踪事件については、登場人物が少なく、メアリーと ジェイムズの両方が同じように誘拐犯人として推論された。  他の3つについても登場人物ほぼ全てが同じように低いスコ アで推論され、動機は、愛、金銭が出力され、手段としては、 決定的なものは出力されなかった。 Copyright 2019 FUJITSU LABORATORIES LIMITED47
  • 50. 応募までのステップ 1. 課題設定 2. 方針(方式、解き方)設定 3. KGの補完、(変換) 4. 実装 ご紹介した課題設定や解き方を再利用して、ご自身の技術を適 用して、ご応募してみてはいかがでしょうか Copyright 2020 FUJITSU LABORATORIES LTD49
  • 51. Copyright 2019 FUJITSU LABORATORIES LTD