知識表現:コンピュータに「意味のつながり」を持たせる
第二次人工知能ブームを支えた知識表現の考え方を学びます。基礎層では、言葉のつながりを点と線の網として表す意味ネットワークと、is-a・has-a・part-of という線の種類と向きの区別をつかみます。深掘り層では、網の編み方をそろえる約束ごとであるオントロジーと、厳密さを取るヘビーウェイト・効率を取るライトウェイトという2つの立場、Web 全体を知識の網に変えるセマンティック Web、あらゆる常識を書きためようとした Cyc プロジェクト、そしてデータから知識を掘り出すデータマイニングまで説明できるようになります。
ねらい
このレッスンでは、コンピュータに世界の知識を持たせようとした、知識表現(ちしきひょうげん)の考え方を学びます。
基礎
言葉のつながりを点と線の網として表す意味ネットワークと、線の種類と向きを区別する3つの関係をつかみます。
1. 言葉のつながりを点と線の網で表す意味ネットワーク
コンピュータに言葉の意味を持たせる方法として、まず思い浮かぶのは、辞書のように定義の文章を書きこむことです。ところが、この方法は出発点でつまずきます。機械にとっては定義の文章もまた文字の並びであり、その中に出てくる言葉の意味がやはり分からないからです。言葉を言葉で説明するかぎり、意味の分からない文字列が増えるだけで、どこまでいっても意味にたどり着けません。
そこで研究者たちは発想を変えました。意味そのものを教えこむことはできなくても、言葉どうしのつながりなら、機械が扱える形に書き表せるという発想です。概念を点として置き、関係のある概念どうしを線で結びます。「犬」の点から「動物」の点へ、「犬」の点から「しっぽ」の点へ、というように線を引いていきます。こうしてできあがる点と線の網で知識を表す方法を意味ネットワークといいます。
この網には、定義の文章にはない力があります。線をたどれるという力です。「犬」から「動物」へ、「動物」から「生き物」へと線がつながっていれば、機械は線をたどって「犬は生き物である」という事実にたどり着けます。だれも直接そう書きこんでいなくても、つながりから新しい知識を導けるのです。
ポイント
知識表現とは、言葉のつながりをコンピュータが扱える形に書き表すことです。意味ネットワークは、概念を点、関係を線とする網で知識を表し、線をたどると書かれていない事実も導けます。
2. 線の種類と向きを区別する is-a・has-a・part-of の関係
もし網の線が1種類しかなかったらどうなるかを考えると、次の工夫の必要性が見えてきます。「犬と動物」「犬としっぽ」を同じただの線で結んだ網では、「一種である」と「持っている」の区別がつきません。この網をたどった機械は、「しっぽ」から「犬」を経て「動物」へ進み、「しっぽは動物の一種である」という誤った結論を導きかねません。誤解なくたどれる網にするには、線に種類と向きが要ります。意味ネットワークでは、代表的な線として is-a の関係・has-a の関係・part-of の関係を区別します。
is-a の関係は、「犬は動物の一種である」のように、あるものが別のものの一種であることを表します。主語の犬は種類の側に立ち、結ばれる動物は大きなくくりの側に立ちます。この線は網の背骨にあたります。上位に「動物は呼吸する」と書いてあれば、線をたどって「犬も呼吸する」と導けるという具合に、上位の性質を下位に受け継がせる推論の通り道になるからです。
has-a の関係は、主語が属性や部品を保持する側に立つ関係です。「犬はしっぽを持つ」と書くとき、主語の犬は持ち主の側にいます。
part-of の関係は、主語が全体の一部を構成する側に立つ関係です。「しっぽは犬の一部である」と書くとき、主語のしっぽは部分の側にいます。
2つの例を見比べると、has-a と part-of は、犬としっぽという同じ結び付きを反対の側から書いた関係だと分かります。どちらの関係になるかを決めるのは、結び付きの中身ではなく、主語をどちら側に立てるかという向きです。向きを取り違えて「犬はしっぽの一部である」と書いてしまっても、機械は変だと気づけません。機械は書かれた線を疑わず、そのままたどるからです。だからこそ、線の種類と向きの規律が、誤解なくたどれる網の生命線になります。
| 関係 | 表すこと | 主語が立つ側 | 例 |
|---|---|---|---|
| is-a の関係 | 一種である | 種類の側 | 犬は動物の一種である |
| has-a の関係 | 持っている | 属性や部品を保持する側 | 犬はしっぽを持つ |
| part-of の関係 | 一部である | 全体の一部を構成する側 | しっぽは犬の一部である |
ポイント
has-a と part-of の見分けは、主語がどちら側に立つかで決まります。主語が持ち主なら has-a、主語が部分なら part-of です。
ここまでの要点
- 知識表現は、言葉の意味そのものではなく、言葉どうしのつながりをコンピュータが扱える形に書き表す考え方です。
- 意味ネットワークは概念を点、関係を線とする網で、線をたどると書かれていない事実も導けます。
- 線には is-a・has-a・part-of という種類があり、主語がどちら側に立つかという向きまで区別して初めて、機械は網を誤解なくたどれます。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「言葉のつながりを種類と向きのある網にして機械に持たせる」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、この網を大勢で編むための約束ごとと、約束ごとをめぐる2つの立場、そして網を Web の広さへ、データの規模へと広げた試みを見ていきます。
3. だれが編んでも1枚につながる網にするオントロジー
知識の網は、1人で編み切れる大きさではありません。大勢の人が手分けして編み、別々に編まれた網をあとからつなぐことになります。すると今度は、書き手ごとのばらつきが問題になります。ある人は「イヌ」と書き、別の人は「犬」と書きます。同じ結び付きに「持つ」と「備える」という別の言葉をあてる人もいれば、has-a と part-of の向きの流儀がゆれる人もいます。機械にとって、表記の違う言葉は別の点であり、種類や向きの違う線は別の関係です。ばらばらの流儀で編まれた網は、つないでも1枚の網になりません。
そこで、網を編み始める前に、編み方の約束ごとを明文化しておくという考えが生まれました。どんな概念を認め、概念どうしをどの関係で結んでよいかという決まりを整理して体系化したものをオントロジーといいます。もともとは哲学で「存在とは何か」を問う言葉でしたが、人工知能の分野では、知識を書き表すための共通の約束ごとという意味で使われます。
オントロジーの定義として広く使われているのが、研究者トム・グルーバーによる「概念化の明示的な仕様」という言葉です。世界をどんな概念で切り分けてとらえるかという頭の中の整理を概念化といいます。グルーバーの定義は、この概念化を各自の暗黙の了解のままにせず、だれもが参照できる明示的な仕様書として書き出したものがオントロジーである、と述べています。
4. 厳密さと効率で分かれる2つのオントロジー
オントロジーの研究には、約束ごとをどこまで厳密に作りこむかをめぐって、2つの立場があります。
1つはヘビーウェイトオントロジーと呼ばれる立場です。重量級という名のとおり、対象の世界をどうとらえるべきかという哲学的な検討まで重ねながら、概念の意味や関係の決まりを人手で厳密に作りこみます。できあがる網は正確な推論に耐えます。その代わり、構築にかかる手間は膨大になります。
この重い立場をとことん突き進めた取り組みが、Cyc プロジェクト(サイク)です。人間が当たり前に持っている常識のすべてをコンピュータに書きこもうという構想で、1984年に始まりました。「人は同時に2つの場所にいられない」といった、当たり前すぎて普段はだれも言葉にしない知識まで、1つずつ書きこんでいきます。この作業は数十年たった今も終わっていません。Cyc プロジェクトは、常識の量が途方もないこと、そして厳密な網を人手で編み切ることの難しさを身をもって示し続けています。
もう1つはライトウェイトオントロジーと呼ばれる立場です。軽量級の名のとおり、完全に正しい網を編み切ることは目指しません。実用に足る網を効率よく手に入れることを優先し、コンピュータに大量の文章データを読ませて概念どうしの結び付きを自動で取り出す、という作り方とも組み合わせます。
IBM が開発した質問応答システムのワトソンは、ウィキペディアなどの大量の文章から知識を取り出すこの軽い行き方を活用して、クイズ番組で人間のチャンピオンに勝ちました。日本で大学入試の突破を目指した東ロボくんも、同じ系譜に立つ取り組みです。この2つのプロジェクトの中身は、専門家の知識を機械に写し取るエキスパートシステムと質問応答の話の中でくわしく見ていきます。
| 立場 | 網の作り方 | 特徴 | 代表的な取り組み |
|---|---|---|---|
| ヘビーウェイトオントロジー | 概念の意味や関係の決まりを人手で厳密に作りこむ | 正確にたどれる網になるが、構築の手間が膨大になる | Cyc プロジェクト |
| ライトウェイトオントロジー | 厳密さより効率を優先し、データから結び付きを自動で取り出す | 粗さは残るが、大規模な知識を現実的な手間で作れる | ワトソン、東ロボくん |
理解の確認
オントロジーは、大勢で編んでも1枚につながる網にするための、編み方の約束ごとです。その約束ごとを哲学的な厳密さで作りこむのがヘビーウェイトオントロジー、効率を優先してデータから半ば自動で作るのがライトウェイトオントロジーで、Cyc プロジェクトは重い立場の、ワトソンや東ロボくんは軽い立場の代表にあたります。
5. Web 全体を知識の網に変えるセマンティック Web
オントロジーの考え方を世界最大の情報のたまり場である Web へ広げようという構想があります。Web を発明したティム・バーナーズ=リーが提唱したセマンティック Web です。セマンティックとは「意味の」という意味です。
ふつうの Web ページは、人が読んで理解するための文書です。機械にとっては文字の並びにすぎず、そこに書かれた店の名前と営業時間の区別もつきません。セマンティック Web は、ページの中身に機械が読み取れる意味の目印を付け、Web 全体を人と機械の両方がたどれる知識の網に変えようとする構想です。
この意味の目印は、共通の規格として具体化されています。文書の中身に「ここは店の名前」「ここは営業時間」といった目印を付ける書き方の土台になるのが、XML という記法です。意味のつながりそのものは、RDF(Resource Description Framework)という枠組みで書きます。RDF は1つの事実を主語・述語・目的語の3つ組で表し、この3つ組をトリプルと呼びます。たとえば「このページの著者は田中さんである」という事実なら、主語「このページ」、述語「著者は」、目的語「田中さん」という組になります。主語と目的語が意味ネットワークの点、述語が線にあたるので、トリプルは網の線1本を Web の共通規格に写した形といえます。さらに、概念の定義や関係の決まり、つまりオントロジーそのものを Web 上で記述するための言語として、OWL(Web Ontology Language)が定められています。
6. データの山から知識を掘り出すデータマイニングとウェブマイニング
ここまでは、知識の網を人がどう編むか、編み方をどうそろえるかという話でした。見方を変えると、世の中には、だれかが知識として編んだわけではない生のデータが毎日たまり続けています。この生のデータの山から役に立つ知識を掘り出そうという行き方をデータマイニングといいます。マイニングとは、鉱山を掘って鉱物を取り出すことです。大量のデータを鉱山に見立て、価値ある知識という鉱物を掘り出す、というたとえになっています。
たとえば、店の販売記録という大量のデータからは、「ある商品と別の商品が一緒に買われやすい」という規則性を掘り出せます。だれも網に書きこんでいない、だれも気づいていなかった知識をデータそのものが教えてくれるのです。
Web 上の膨大なデータに対してデータマイニングを行うのがウェブマイニングです。ページの中身、ページどうしのリンクのつながり、利用者がたどった閲覧の履歴など、Web には掘るべき鉱脈が幾重にも重なっています。ライトウェイトオントロジーの立場が頼りにした「データから結び付きを自動で取り出す」技術も、こうしたマイニングに支えられています。
人が知識を1つずつ書きこむ行き方は、Cyc プロジェクトが示したとおり、量の壁に突き当たります。データに知識を語らせる行き方は、その壁の向こうへ進む道を開きました。この流れの先に、判断のルールそのものをデータから機械が見つけ出す機械学習が待っています。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。