先週(2019/7/6)開催された「IM@S Engineer Talks」という、
アイドルマスターを好きなIT系エンジニアが集まって、
アイマスの話題を通じ、技術分野を超えた情報交換するLT会イベントで、
登壇してきました。
このエントリではその振り返りを、書こうと思います。

IM@S Engineer Talks 2019 | connpass
https://imas.connpass.com/event/134735/

当日のイベントの雰囲気は、以下のtogetterをご覧下さい。

#imastudy アイマスエンジニアトーク2019 in 東京 ツイートまとめ | togetter
https://togetter.com/li/1373719

会場はSpeeeさんでした。
昨年も会場を提供いただいていました、いつもありがとうございます。

データサイエンスアイドル「小日向美穂」と考える「つながり」

アイドルマスターに登場するアイドルを数人ピックアップして、
そのアイドル同士の共通点を探し出すために。
アイドルに関する文書を、
ロジスティック回帰と自然言語処理を用いて分析する
と言う内容でお話をしてきました。

発表資料

登壇資料は、SlideShareにアップしています。
# キャプチャした画像などは省略しています。

関連エントリ

発表は、本サイト内の以下のエントリと同じ内容で、
データサイエンスになじみが無いエンジニアでも分かるように、
補足説明やサンプルを追加した物になります。

「何つながりなのかな?」を探る自然言語処理 ~765PRO LIVE THEATERに通りがかる小日向美穂~ | takemikami’s note
https://takemikami.com/2019/02/21/765PRO-LIVE-THEATER.html

試行錯誤や問題点

全体的に、分析手法 → 分析事例 と言う流れで、
講義っぽく説明をしてしまったこともあり。
よくある機械学習の手法に、アイマスのデータを当てはめただけ、
と言うように捉えられてしまった面があったと反省しています。

変に機械学習に万能感を感じさせてしまうのは本意では無いので。
発表した手法に行き着くまでに
どういった検討・試行錯誤を行ったのか、
またどのような問題点があるのかを、ここで紹介しておこうと思います。

アイドルに関する文書

まず、アイドルに関する文書を用意する必要がありますが。
デレマスは、アイドル数が多すぎる、
アイドルによって文書の量に偏りがある、
私自身が全アイドルを把握しきれていないということで、
ミリマスを対象にしました。

公式の紹介文だけでは量が足りないが、
2次創作(ショートストーリーなど)のテキストを利用すると
意図しない共通点が出てきてしまうリスクが高い。
ということで、ミリシタの台詞、ニコニコ大百科のテキストを
利用しました。

ここでニコニコ大百科だけにしなかったのは、
公式で触れられている単語はなるべく拾いたかったと言う意図があります。
その結果、話し言葉・書き言葉が混在するテキストとなりましたが、
結果がおかしくなっている部分が出てきています。
以下の「七尾百合子x永吉昴」の結果に、
「ひょうきん」等の単語が出てきているのは、これが原因と考えられます。
Wikipedia(書き言葉)の分散表現では、
書き言葉で「オレ」はあまり使われないため、
「オレ」に近い言葉として「ひょうきん」が出てきます。
(昔のTV番組「オレたちひょうきん族」の影響)
しかし、話し言葉の「オレ」に対して
「ひょうきん」と言う言葉が近いと考えるのは違和感があります。

七尾百合子x永吉昴: オレ,なぜ,奇譚,たちひょうきん,ぼくらの,原題,マンガ,さらば,コンテンツアイコン,へようこそ,のことば,短篇,妄想,まんが,てれびくん

また、箱崎星梨花の特長を上手くとれていない問題もあります。
IDFで重み付けを調整しても、「イベント」「カード」など、
どのアイドルでも出てきそうな単語が並んでしまっています。
「ニコニコ大百科」の「箱崎星梨花」のページを読むと分かりますが、
他のアイドルと比較して、イベントやカードの解説や多いです。
このため箱崎星梨花の人物としての特徴が上手くとれていません。

箱崎星梨花: イベント(0.17), パパ(0.13), 最上(0.13), なる(0.11), カード(0.11), 春日(0.10), アイドル(0.09)

箱崎星梨花 | ニコニコ大百科 https://dic.nicovideo.jp/a/%E7%AE%B1%E5%B4%8E%E6%98%9F%E6%A2%A8%E8%8A%B1

また、箱崎星梨花に関しては「星梨花」が
「星」「梨花」(名字と名前)と形態素解析される問題もあったので、
ユーザ辞書を作って対処しています。

その他に、
ゲームのパラメータを説明する単語が多数現れる問題があったので。
tableタグ配下のテキストは無視して、
pタグ配下のテキストのみを対象として分析しています。

ストップワード辞書で不要な単語を弾く方が、
table内に記載されたアイドルの特徴を抽出できるので、
分析としては好ましい結果が得られると思いますが、
あまり手間をかけられなかったため、このようにしています。

共通の特徴を探す

アイドルの共通の特徴を探す方法として、
最終的には、
ロジスティック回帰で回帰係数を見るという方法に落ち着きました。

当初は、単語の共起を考えていました。
しかし、単語の共起で共通点を探そうとすると、
「紅茶」「緑茶」「珈琲」→「お茶」
といった、上位概念での共通点を見つけることが出来ません。

そこで「Wordnet」等を用いて、
上位概念をたどるという方法が考えられますが、
これも、どれだけ上位の概念まで辿ることが妥当かなど、
アルゴリズムを検討する必要があります。
適用しようとすると、かなり時間がかかりそうなので断念しました。

日本語Wordnet
http://compling.hss.ntu.edu.sg/wnja/

今回は断念しましたが、
Wordnetによる共通の特徴抽出は、
上手く実装できれば、
人間にはかなり理解しやすい結果が得られると思います。

Wordnetによる方法を断念した後、 単語の分散表現を使う方法を検討しました。
TF-IDF重み付けと、分散表現による単語の特徴行列の積から
アイドルの特徴行列を作るところまでは良かったのですが。

その後、全アイドルの重心を求め、
全アイドルの重心から各アイドルとの差分や、
全アイドルの重心から、ピックアップしたアイドル群の重心の差分など
を計算して、特徴をつかめないかを探っていました。

しかし、差分のベクトルからは、特徴らしい単語が得られない状態でした。
「望月杏奈」の場合、「ゲーム」と「アイドル」が特徴になりますが、
アイドルマスターの特徴も、「ゲーム」と「アイドル」です。
このような状態では「アイドルマスター」と「望月杏奈」を比較しても、
「望月杏奈」の代表的な特徴が抽出できません。

と、言った感じでいろいろと数字を見ていたのですが。
解こうとしている問題が「分類問題」という原点に立ち戻って考えると、
「回帰係数」を見ればよいと気づき。
ロジスティック回帰を使う方法に落ち着いた訳です。

分散表現の偏り

今回の分析で、単語の分散表現は、
Wikipediaをコーパスとした
Word2VecによるPretrainedのモデルを使用しました。

アイドル同士の共通点を示す単語は、
このモデルに含まれる約5万の単語から出していますが。
Wikipediaがサブカルに強いので、
ゲームなどサブカルに関する単語が
出てきやすい(出てきすぎる)と言う問題があります。
アイマスのデータを対象としているので、
ある程度サブカルには強い方が好ましいと思うのですが、
結果を見ると、(サブカル関連に)偏っている印象を受けます。

また、結果には書いていない例ですが、
「箱崎星梨花x菊地真」の組み合わせで共通の特徴を取ったときに、
海外のスポーツチームの名称が多数出てきました。
真の趣味「スポーツ全般」、星梨花の特技「アジリティのハンドラー」
に対してスポーツに関する特徴が得られたと思いますが。
一見、どのような特徴が共通しているのかわかりにくかったです。
Wikipediaが百科事典なので、固有名詞が出てきやすいのだと考えられます。

以上のように、
(発表では手法→適用とすらすら流しましたが)
いろいろと試行錯誤や調整も行っており、まだまだ未解決の課題も多いです。

機械学習を現実の問題に適用しようとすると、
既存の手法に単純に当てはめるだけで上手くいく訳では無く、
いろいろと考えたり、調整したりすることも多いと伝われば幸いです。

おわりに

今後のこと

もう少し調整して、納得感のある単語を返せるようになったら、
任意のアイドルを数人選んだらWordCloudを表示するWebサービスとして
公開しても面白いかなと考えています。
ニーズあるのか分からないですが。。

謝辞

最後になりましたが、スタッフのみなさまお疲れ様でした。
また、「登壇しませんか?」とお声がけ頂き、
登壇の機会を下さった、momenさんありがとうございます。