読者です 読者をやめる 読者になる 読者になる

Drafts

@cm3 の草稿置場 / 少々Wikiっぽく使っているので中身は適宜追記修正されます。

word2vec が捉えている意味の関連性と、RDF が記述する意味の関連性の関係

一般的に 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は答えられるのだろうか。

ja.dbpedia.orgに、

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 を入れることが大事だと思っている。一方で「確実性の低いものを大量に積み上げる」場合は、その積み上げ方やロジックが確実に共有可能なように定式化されるのが常だ。ただし、その妥当性を測るのが難しいとか、積み上げ方や分析の仕方に自由度があるという問題はある。

(後で追記する)

参考:

これちゃんと読まなきゃ。