一般的に word2vec でアナロジーとして出されるのは、王-男+女=女王とかパリ-フランス+日本=東京とかだけど、変なものツッコんでみるとどうなるか。
word2vec playgroundで、王にとっての味噌は、奴隷にとっての?とやると、
Word | Cosine distance |
---|---|
牛肉 | 0.6801432967185974 |
豚肉 | 0.6772129535675049 |
ラム酒 | 0.6700943112373352 |
砂糖 | 0.6672976016998291 |
麦粉 | 0.6637889742851257 |
アユカケにとってのカマキリは、カジカにとっての?ってやると
Word | Cosine distance |
---|---|
噛みつく | 0.7448679208755493 |
芋虫 | 0.7420085668563843 |
擬態 | 0.7364585399627686 |
サソリ | 0.7280563712120056 |
エリマキトカゲ | 0.7233718633651733 |
とでてくる。因みにカマキリはアユカケの別名で、カジカはそれらを包含する概念で、カジカの別名(と言っても指す範囲は微妙に異なるが)はゴリとかドンコとか言ってほしかったわけだ。もちろん、カマキリは蟷螂の方のカマキリが居るので、word2vec にマイナーな方のカマキリの意味を認識させるのは無理なの分かっててやってるんだけど。
前者は王にとっての味噌は「食べ物である」ということが認識されているような挙動が見られる。なんで奴隷にとっての牛肉ってなんか贅沢品っぽいので、全体としては「???」と思わなくもないが、後者の意味不明感よりはマシだろう。
同じことをLODは答えられるのだろうか。
select distinct ?o where { <http://ja.dbpedia.org/resource/フランス> ?p <http://ja.dbpedia.org/resource/パリ>. <http://ja.dbpedia.org/resource/日本> ?p ?o. FILTER (?p != <http://dbpedia.org/ontology/wikiPageWikiLink>) }
と入れれば、(Entity Linking 済みの)東京都という答えが返ってくる。
しかし、王の項目に男であることは書かれていない。それはRDFの限界というよりも百科事典たろうとする Wikipedia という元ソースの性格による部分も多く、また日本語と英語の不対応の問題がある。日本語の王は女も含みうるが、Kingは女を含み得ず、Queen が女王と妃を兼ねた概念で、呼び分けるなら 王妃を queen consort 、女王を queen regnant とするという違いがあるので、英語の場合ほど答えがハッキリしないのだ。
ちなみに word2vec でも男にとっての王は女にとっての?とやると
Word | Cosine distance |
---|---|
諸王 | 0.7480988502502441 |
皇帝 | 0.7333675622940063 |
妃 | 0.724446713924408 |
423年 | 0.7229735255241394 |
442年 | 0.7198507785797119 |
となっている。プログラム上、同じ「王」が出ないようになっている気がするので、まあやはりこれは問題が悪いと思われる。
LOD で王にとっての味噌が奴隷にとって何かを答えるのはお手上げで、そこで「何となく」答えが出せてしまうのが word2vec の強みでも弱みでもある。Cosine distance を見る限りそんなに自信なさげでもないので、"unknown" と答えるのが難しいというのが弱みだろう。LOD は unknown と答えることはできる。
一方で、カマキリの例は専門のLODでは上手く答えてくれる(と思ってリンク貼ろうと思ったらサーバに不具合があったので後で)。
実例はこのくらいにして、それおれが捉える関連性の違いを2つ挙げる。1つは表記だけに頼らず、URIによるdisambiguation が可能だという点(ただしこれは私が主に作っている names-based の LOD に関してはそういうメリットは基本的には期待できない。単にデータベースの対象とするドメインが限定されることによるメリットとして現れるだけだ)、もう1つは、確実性の低いものを大量に積み上げる vs 確実性の高いものを1つ書く、というアプローチの違い。
後者の方に関しては、機械学習から離れるにしたがって(文系だとか、年代が上だとか)「確実性の高いものを1つ書く」ということを称揚したがる傾向にあると感じている。もちろん、本当に正解が1つの事柄に関して書くのならばそのアプローチは有効だろうが、transdisciprinally なデータ活用において、たいていの場合、正解は一つではなく、それを相対化する見地を提供するという意味でも「確実性の低いものを大量に積み上げる」ことによって見えてくる像というものは重要だと思う。「ある人がこれが正しいと言っています」というのは、それにいかなるロジックを伴わせても、そのロジックが誰にも等しく実行できるレベルに定式化されていない限り、主観でしかありえない。だから、LOD的な記述では quad の4項目に provenance を入れることが大事だと思っている。一方で「確実性の低いものを大量に積み上げる」場合は、その積み上げ方やロジックが確実に共有可能なように定式化されるのが常だ。ただし、その妥当性を測るのが難しいとか、積み上げ方や分析の仕方に自由度があるという問題はある。
(後で追記する)
参考:
さらにもう一つ。コーパスだけあれば分散的意味表現が学習できるが、辞書を全く使わないのはもったいない。両方使ってより正確な意味表現が学習できないか?という問題を解決した(AAAI-2015)。特にコーパスが不完全なとき、辞書(オントロジー)が役に立つ。#tmutalks
— Mamoru Komachi (@mamoruk) December 16, 2015
これちゃんと読まなきゃ。