ネットでword2vecというものを見つけた。
単語をいい感じに意味を表現するベクトルに変換してくれる魔法のツールだという。
なんじゃそりゃ!?
そして、それが流行りまくっているらしい……
ということで調べてみたんだけど、数式とか理屈をだーっと文章で書かれてもまっっったく頭に入ってこない。
そんななか、解説している動画を見つけたのでそれを見てみた。
【スライド公開☆】「ディープラーニングチュートリアル 応用編:言葉の『意味』表現〜word2vec〜」
これで全てが分かるかというと大変自信がないけど、それでも概要は見えてきた。
なるほど~
単語の共起を予測するモデルを作ったら、なんか単語の意味をいい感じに表現するベクトルができちゃった。
なんでかよくわからないけど、実用上そうなっちゃったんだから仕方ない、みたいな。
研究者も説明できないけどなぜかうまくいくという……どうやら機械学習界隈はそういう不可思議なことが多いらしい。
なんだか知能に近づいている感じがあるよね。
人間の脳みそも確固たる理屈で動いているというより、進化の結果「なんでうまくいくのかよくわからないけど、実用上なんとなかなっちゃう」みたいな変な構造で動いている気がしてならない。
目からうろこでなんだか楽しい気分になった。
それにしても驚くべきはその学習次元数。
1単語を1000次元で表現したら、一つの単語で2ベクトルあるので2000次元。
単語が10万個あったら、2億次元。
昔遺伝的アルゴリズムで音声フィルタっぽいものを作ろうとして、次元が広すぎてどうにもならなかった経験がある身としては、数百次元のあたりでもう学習きついんじゃないかと思うのだけれど。
それがその億の単位の次元を実用的に学習できるなんてどんなわけだい。
近似式でだいぶ高速化しているようだけど、それにしても凄い。
次元数が多いモデルなんて実用にならないと思ってたけど……全然そんなことないのね。
ニューラルネットワークもディープラーニングもそういう次元の問題はあるはずなのに実用的になっているし。
うーん、感覚が古いのだろうか。
今日の体重は65.0kg