pei’s blog

情報系の大学を出たSE1年生。主にプログラミング(機械学習寄り)の話題を書いていきます。

久々に機械学習の論文読みました

From Social Media to Public Health Surveillance: Word Embedding based Clustering Method for Twitter Classification

という論文を読んだのでさらっと内容を紹介していきます。

 私は教師あり学習を使う機会が多く、教師なし学習が実際にどう用いられているのか知りたくて、とりあえずGoogle Scholarでテキトーに探してこの論文を読んで見ました。



内容

 ざっくりいうと「あるツイートが、指定したトピックに関連するかどうかを機械学習(クラスタリング)を用いて判別する」という内容です。

 この論文ではインフルエンザに関連するツイートかどうかを判別するという実験をしていました。

 クラスタリングとword2vecを知っていれば理解しやすい内容です。ちなみにデータセットは全て英語です。



手法

 基本的にはベクトル化はword2vec、類似度はコサイン類似度です。


  1. 1. ツイートの不要な情報の除去

  2.  ハッシュタグや@を除去


  3. 2. 単語を整形

  4.  URLやストップワードを除去、スペル間違えを修正、全て小文字に変換など...


  5. 3. 単語をベクトル化

  6.  word2vecを使ってベクトル化しています。word2vecは単語の意味を考慮しつつベクトル化表現する手法です(かなりざっくりですみません...)。
     詳しくはこちらを参照してください→自然言語処理に新風を巻き起こしたWord2Vecとは何か


  7. 4. クラスタリング

  8.  ツイート内の全単語を類似度の一番高いクラスタに追加する。クラスタを増やすかどうかは確率を用いたアルゴリズムを使用するが、だいたいクラスタ数は3〜5に収束する。


  9. 5. 分類

  10.  クラスタごとに単語ベクトルの平均を計算し、その平均ベクトルとベクトル化したトピックの類似度を計算。
     類似度が閾値より高ければそのトピックに関連したツイートだと判別する。閾値は0.5, 0.6が最適だった。



分類性能など

 インフルエンザに関連するツイートかどうかの分類性能を評価しています。テストデータは、関連するツイートが1200, そうでないツイートが1000個です。

 最適な閾値0.5, 0.6の結果は以下の通りです。各指標は詳しくはこちらを見てください→
抑えておきたい評価指標「正解率」「精度」「再現率」






精度 再現率 F値 正確性
閾値0.5 77.1% 95.7% 84.7% 84.6%
閾値0.6 96.2% 75.6% 84.6% 87.1%



感想

 閾値の決定は正解づけされたデータが必要でなので、やっぱり人の手が必要だな〜と感じました。

 英語の論文というとすごく難しそうだと思うかもしれませんが、そんなに難しいわけじゃないのでぜひみなさん読んでみてください!