knowledge base のバックアップ(No.17)


knowledge base (KB)
知識ベース
カテゴリCategory/Info

おもな知識ベース

  • Wikipedia
  • 知識グラフ
    • YAGO
    • DBpedia
    • BabelNet
    • NELL
    • Wikidata

知識グラフ (Knowledge Graph)

知識ベースの有力な方式は知識グラフ (knowledge graph) である。これは、「事実」を物事と物事をつなぐ「関係」で表す。多くの物事が「関係」でつながれるため、ネットワーク状になる。それぞれの「事実」は主語・述語・目的語のような形で表現される。
例えば、
【Japan】―(包含地域)―【Tokyo】
のような形であり、これをトリプルと呼ぶ。

知識グラフにはトリプルが多く含まれており、これらがつながることでグラフを形成する。

主語 (Subject)・述語 (Object)にあたるものはエンティティ (entity) あるいは頂点 (vertex) ・ノード(node)と呼ばれる。DBpedia、yago等の知識ベースでは、エンティティはURIで指し示されるリソースと、リテラル(数値・文字列等)がある。

述語 (predicate) は関係 (relation) ・プロパティ (property)とも呼ばれ、エンティティ同士をつないでその関係を示す。

事実 (Fact) は2つのエンティティとそれらをつなぐ関係 (relation) で成り立つ。

このとき知識グラフ全体は、エンティティの集合\( V \)、関係の集合\( R \)、事実の集合\( F \)からなる。

エンティティ (entity) のなかでも、エンティティを分類するためのエンティティであるクラス (Class) がある。rdfs:subClassOfといった述語で上下関係を示す。また、クラス分類の末端は、通常のエンティティであるインスタンス (instance) である。クラスとインスタンスはrdf:typeで接続される。

知識グラフの問題

知識グラフには、構築、補完、追加修正、利用の問題がある。

知識グラフ補完 (Knowledge Graph Completion)

知識グラフは不完全であることが多いため、他の関係から類推して補完する必要がある。これを知識グラフ補完 (Knowledge Graph Completion) という。
例えば、

  • 「長野市が日本に属している。」
  • 「長野市が長野県の県庁所在地である。」
  • 「長野県が日本に属している。」
  • 「水戸市が日本に属している。」
  • 「水戸市が茨城県の県庁所在地である。」
    という5つの事実から、
  • 「茨城県が日本に属している。」
    という事実を推測する問題である。

知識グラフの追加修正

日々情報は増えていくため、知識グラフを追加修正する需要がある。このとき、以下の複数の問題が発生する。

  • 新たな事実を追加する(ある関係でエンティティ同士を結ぶ)
  • 新たなエンティティを追加する
    • エンティティの重複を確認する
  • 新たな関係を追加する
  • 新たなクラスを追加する

知識ベース応答 (Knowledge Base Question Answering)

知識ベースは人間には読みにくく膨大であるため、利用のためには人間の発する質問に対して応答を返す機構が必要となる。

不確実知識ベース uncertain KGs (or UKGs)

これまで説明した知識グラフは、ある事実(トリプル)について、「存在する」か「存在しない」の2つの値しか持てなかった。しかし、トリプルに対して、信用スコアを付与する手法も提案されている。
これにより、トリプル同士が競合を起こしたとき、より信用度の高いトリプルを採用する等のことが可能となる。