word2vecが流行っていますね.僕も3ヶ月前くらいから触り始めました.これ,どうしても類似度に目がいくんですけど,よい類似度っていうのは目的によりけりなので一般的に評価しづらいです.なのでこの手の論文とかでもうまくいった例を幾つか載せて定性的に評価していることがあります.今回は,ベクトル表現学習の”上のタスク”である分類問題においてこの有効性を評価してみます.

今,「犬の名前なのか猫の名前なのかを分類する分類器を作りたい」人がいるとします.機械学習的なアプローチだと,犬の名前,猫の名前をいくつかピックアップしてデータを作り,学習させて評価します.コードは以下に載せておきます(もし試したい人がいたら,モデルはご自身のを!).

結果は以下のようになりました.

dog:110, cat:30 on training
best parameters: {'C': 10.0, 'gamma': 0.077426368268112694}
CV score: 0.942857142857
0.92
サセックス・スパニエルは犬です
スピノーネ・イタリアーノは犬です
ハバニーズは犬です
フィールド・スパニエルは犬です
ブラッコ・イタリアーノは犬です
ホファヴァルトは犬です
ベルジアン・グリフォンは犬です
ドレーファーは犬です
アメリカン・アキタは犬です
アメリカン・フォックスハウンドは犬です
コモンドールは犬です
イビザン・ハウンドは犬です
イングリッシュ・フォックスハウンドは犬です
スコティッシュ・ディアハウンドは犬です
カナーン・ドッグは犬です
クーバースは猫です
グレーター・スイス・マウンテン・ドッグは犬です
ハリアは犬です
ブラック・アンド・タン・クーンハウンドは犬です
ブラック・ロシアン・テリアは犬です
マンチカンは猫です
メインクーンは猫です
ラガマフィンは猫です
ラグドールは猫です
ロシアンブルーは犬です

CVスコアが0.94 で定量的にみてもうまく分類できていますね.ちなみにこのモデルだと,”マンチカン”と似ている単語TOP10は以下のようになります.

ヘラジカ 0.800116658211
ハサミムシ 0.790722727776
ゴールデン・レトリバー 0.780578136444
ホウセンカ 0.777512967587
グレート・デーン 0.774465680122
オカメインコ 0.769641637802
イソギンチャク 0.769312798977
スコティッシュフォールド 0.769262313843
ゲッカビジン 0.766306519508
リャマ 0.765630722046

ここまで見ると動物同士が似てしまっている,動物の分類には使えない!となりそうですが,世の中には強力な分類器が存在していますのであまり類似度だけをみて判断するのはよくなさそうです.

今回はword2vecで学習したベクトル表現を使って単語の分類問題に挑戦してみました.今回はなかなかうまくいったので,他の応用にも使えそうです!!


※この記事は WordPress に投稿した記事を変換したものです。一部不自然な表示があるかも知れません。ご了承ください。また、記事タイトル先頭の * は WordPress から移行した記事である印です。