Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ナレッジグラフの基礎
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
S. Egami
December 21, 2022
Technology
14k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ナレッジグラフの基礎
ナレッジグラフ推論チャレンジ【実社会版】技術勉強会
で発表した資料
S. Egami
December 21, 2022
More Decks by S. Egami
See All by S. Egami
大規模言語モデルを用いたSPARQLクエリ生成の予備的実験
ease112
2
300
ナレッジグラフ推論チャレンジ2023〜生成AI時代のナレッジグラフ構築技術〜の紹介
ease112
0
950
ナレッジグラフを探索するSPARQL
ease112
2
12k
【LODチャレンジ2022最優秀賞】Patient Locational Ontology-based Data (PLOD)
ease112
0
180
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
ease112
0
230
Other Decks in Technology
See All in Technology
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
3
780
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
370
水を運ぶ人としてのリーダーシップ
izumii19
3
710
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
120
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
200
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.3k
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
460
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
150
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.1k
When Platform Engineering Meets GenAI
sucitw
0
150
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
180
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
23
7k
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
150
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Six Lessons from altMBA
skipperchong
29
4.3k
Optimizing for Happiness
mojombo
378
71k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Speed Design
sergeychernyshev
33
1.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Transcript
江上周作 産業技術総合研究所 ⼈⼯知能研究センター データ知識融合研究チーム ナレッジグラフの基礎 技術勉強会 2022/11/15 オンライン
ナレッジグラフ(知識グラフ)とは • 実世界の知識を蓄積し,伝達することを⽬的とした「データのグ ラフ」であり,そのノードは関⼼のあるエンティティを表し, エッジはこれらのエンティティの間の様々な関係を表す • その「データのグラフ」は,グラフベースのデータモデルに準拠 し、エッジラベル付き有向グラフ、異種グラフ、プロパティグラ フなどがある •
引⽤︓A. Hogan, et al. Knowledge Graphs, ACM Computing Survey, vol.54, no.4, pp. 1–37, ACM, 2021 • ナレッジグラフは、情報を取得してオントロジーに統合し、推論 器を適⽤して新しい知識を導き出す • 引⽤︓Ehrlinger et al. Towards a Definition of Knowledge Graphs, SEMANTiCS (Posters, Demos, SuCCESS), vol.48, pp.1–4, CEUR, 2016
ナレッジグラフの記述⽅法 Webでナレッジグラフを共有するための標準形式
RDF(Resource Description Framework)とは すべての情報を ・主語(リソース) ・述語(プロパティ) ・⽬的語(リソースorリテラル) の三組み(トリプルという)で記述する⽅法を提供 4
結局RDFはなにか その実体は、ラベル付き有向グラフ (※) 5 主語︓Aさ ん ⽬的語︓⽝ 述語︓好き このようにグラフ形式で図⽰したものをRDFグラフと呼ぶ 情報
「Aさんは⽝が好き」 (※)厳密にはRDFは枠組みなので、RDFの枠組みに従ったデータがラベル付き有向グラフ
URIで識別可能な全ての事物 ・⼈物,書籍,イベントなどの実世界の物事 ・趣味,嗜好,信頼性などの事柄など… 6 リソースとは
リソースとは つまり、事物に⼀意なURIを割り当ててしまえば、 RDFでそれはリソースとして認識される 7 Aさん 「Aさん」という事物に 「http://example.com/terms/Aさん」 というURIを与えよう http://example.c om/terms/Aさん
これがリソース ※本当はブラウザでアクセスできることが望ましいが とりあえず今は重複がなければこれでよい(後で紹介)
プロパティとは プロパティにも⼀意なURIを割り当てる 8 主語︓Aさん ⽬的語︓⽝ 述語︓好き これ http://example.com/terms/好き
リテラルとは ⽂字列や数値のこと. プロパティを持たない. URIを割り当てない. 9 主語︓Aさん 述語︓年齢 20
↑これを XML, Turtle, JSON-LD等で書くことができる。 記述⽅法が異なるが、結局RDFグラフとして図⽰する と全部同じになることが特徴︕(= 情報の統⼀化) 10 主語︓Aさん ⽬的語︓⽝
述語︓好き (相互変換ツールも充実している) データフォーマット
RDFのシリアライゼーションフォーマット • RDFはリソースをURIで識別し,主語・述語・⽬的語のトリプ ル形式で関係を記述するデータモデルである • リソースを説明するメタデータが付与される ラベル付き有向グラフの形でリソースを表現できることはわかった が、具体的にコンピュータでどのような形式で処理をするの︖ nN-triples, Turtle,
RDF/XML, RDF/JSON, RDFa, JSON-LD など様々なシリアライゼーション(変換)フォーマットが存在 11 相互に変換可能 https://www.easyrdf.org/converter
N-Triples • <URI>をスペースで分けて並べる最も原始的な記法。 • トリプルはピリオドで区切る。 • 拡張⼦は.ntとすることが多い • CSVからの変換が楽 <http://ja.dbpedia.org/resource/電気通信⼤学>
<http://www.w3.org/2000/01/rdf-schema#la bel> “電気通信⼤学” . <http://ja.dbpedia.org/resource/電気通信⼤学> <http://dbpedia.org/ontology/country> <htt p://ja.dbpedia.org/resource/⽇本> . 12
RDF/XML <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <rdf:Description rdf:about=“http://example.com/terms/Aさん">
<http://example.com/terms/好き> <rdf:Description rdf:about=“http://example.com/terms/⽝" /> </http://example.com/terms/好き> </rdf:Description> </rdf:RDF> 【名前空間】 以降で⻘⽂字部分を「rdf:」 に省略できる(カプセル化) 緑⽂字はリソースを記 述する決まり⽂句 名前空間定義してないからURIを フルスペルで書いてる XMLタグの⼊れ⼦構造でRDFグラフを記述している︕ ファイルの拡張⼦は「.rdf」とするのが慣習。 XMLエディタで開きたい場合は「.xml」
Terse RDF Triple Language (Turtle) 14 XML形式は幅広いシステムで利⽤可能だけど⻑い︕ @prefix ex: <http://example.com/terms/>
. <http://example.com/terms/Aさん> ex:好き ex:⽝ , ex:猫 ; ex:誕生日 “2012-01-01T00:00:00”^^xsd:dateTime . 【名前空間】 以降で⻘⽂字部分を「ex:」 に省略できるよ ピリオド忘れずに︕ 省略しない場合は< >で URIをくくる ファイルの拡張⼦は「.ttl」とするのが慣習。 対応しているシステムが限られるが記述が楽︕ 同じプロパティの値が複数 ある場合はカンマで列挙可 リテラル値のデータ型
その他のシリアライゼーション︓JSON-LD { "@context": { "dbo": "http://dbpedia.org/ontology/", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
}, “@id”: “http://ja.dbpedia.org/resource/電気通信⼤学", "dbo:country": { "@id": "http://ja.dbpedia.org/resource/⽇本" }, “rdfs:label”: “電気通信⼤学" } 15 • JSONでのデータ交換や、HTMLのscriptタグへの埋め込みに利⽤されている • 拡張⼦は.jsonや.jsonld
トリプルの連鎖の例 uni:H6053 uni:⼤学 uni:電気通信⼤学 uni:名 前 電気通信⼤学 uni:科⽬名 システム設計 学特論1
uni:本 部所在 地 東京都調布市調 布ケ丘1-5-1 @prefix uni: <http://www.mydomain.org/uni-ns/> . uni:H6053 uni:科⽬名 “システム設計学特論1" ; uni:⼤学 uni:電気通信⼤学 . uni:電気通信⼤学 uni:名前 "電気通信⼤学" ; uni:本部所在地 "東京都調布市調布ケ丘1-5-1" . 16 ◯はリソース □はリテラル
W3C RDF Validation Service • RDF/XML⽂書またはRDF/XML⽂書が置かれたURLを⼊⼒すると, ⽂書の妥当性の確認やトリプルの視覚化を⾏ってくれるサービス • URL: http://www.w3.org/RDF/Validator/
• ⽇本語を含むトリプルを視覚化したい場合には,「Graph format」を「SVG-embedded」または「SVG-link」とする • SVG(Scalable Vector Graphics)は,XMLをベースとした2次元ベクターイ メージ⽤の画像形式の⼀つ • より⾒やすい⽇本語サイト • https://www.kanzaki.com/works/2009/pub/graph-draw 17
クラスとインスタンス 18 ex:江上周作 ex:⼈間 rdf:type 「江上周作」は実在する。 ⼈間を具体化させたものの⼀例。 ⼈間クラスのインスタンスという。 「⼈間」さんは実在しない。 概念,カテゴリ,グループのニュアンス。
こういうのをクラスという
クラスとインスタンス 19 rdfs:Class ex:⼈間 rdf:type 「ex:⼈間」を普通のリソースではなくクラスとして定 義する︕ 「rdfs」は「http://www.w3.org/2000/01/rdf-schema#」 RDFSはクラスを定義するための⽤語をRDFで提供している。 ↑アクセスしてみるとRDFSのTurtleが⾒れる
書きたい情報「ex:⼈間はクラスである」 クラスの指定には「rdf:type」を使う決まり
インスタンスの定義⽅法 • クラスのインスタンスを定義するためには,rdf:typeプロパティを ⽤いる • リソースがクラスであることを定義するためにも,rdf:typeプロパティを⽤ いた • クラスのインスタンスの集合のことをクラスの外延と呼ぶ •
例︓ex:太郎(インスタンス)はex:Person(クラス)である ex:太郎 rdf:type ex:Person . ex:太郎 ex:Person rdf:type
クラスの階層関係 21 ex:哺乳類 ex:⼈間 rdfs:subClassOf 「ex:⼈間」を「ex:哺乳類」のサブクラスとして 定義する 書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」 階層関係を意味するプロパティとして rdfs:subClassOfが⼀般的に使⽤される。
哺乳類もクラスとして予め定義していると想定 (図は省略)
クラスの階層関係 22 ex:哺乳類 ex:⼈間 rdfs:subClassOf 「ex:⼈間」を「ex:哺乳類」のサブクラスとして 定義する 書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」 哺乳類もクラスとして予め定義していると想定 (図は省略)
この定義をした上で 「ex:Aさん rdf:type ex:⼈間 .」と書くと, 「ex:Aさん rdf:type ex:哺乳類 .」を 記述しなくても当然導ける=【推論可能】
プロパティ 23 rdf:Property ex:兄弟 rdf:type 「ex:兄弟」をプロパティとして定義する 書きたい情報「ex:兄弟はプロパティである」
プロパティの階層関係 24 ex:親族 ex:兄弟 「ex:兄弟」を「ex:親族」のサブプロパティ として定義する︕ 書きたい情報「ex:兄弟はex:親族のサブプロパティである」 rdfs:subPropertyOf 兄弟プロパティを使って「A ex:兄弟
B .」と書くと, 「A ex:親族 B .」が当然導ける=【推論可能】 親族もプロパティとして予め定義していると想定 (図は省略)