はじめに ー 週末研究ノートとは?
個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。(有識者の方のアドバイスも、ちょっとというかかなり期待してます!笑)
どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。
今回のサマリ (TL; DR)
- PR 曲線で可視化
- LIME を使った可視化
- デフォルトでは、日本語には対応していないのでちょっと工夫する
- 単語集合をハイライトする方法とオリジナル文書をハイライトする方法で可視化する
環境
- Docker Desktop: 4.0.1(68347)
- コンテナのメモリ: 12G
- 自分の環境では、コンテナのメモリを 12GiB まで拡張した
- Docker: version 20.10.8
- docker-compose: version 1.29.2
- Python: 3.8.10
- GitHub リポジトリ
今回の週末研究ノート
今回は、前回正答率を評価したパイプラインを使って、可視化を試みます。
PR 曲線 を表示し、LIME による可視化を行い、簡易な解釈をつけました。
ldcc
PR Curves
- Recall - Precision グラフ
AP(Average Precision) は、かなりよく、特にコメントはない感じ。
- Threshold - Precision/Recall グラフ
livedoor-homme
、peachy
、dokujo-tsushin
あたりは、必要に応じて境界値を調整しても良さそう。一方で、smax
は、Precision と Recall が重なり過ぎている印象を受ける(実際、後の例で見るが、判定をチートしているとわかる。)
LIME による可視化
単語集合のハイライト
正判定のテキスト
movie-enter
まずは、movie-enter
について。
movie-enter
と判定した単語は、「映画」、「本作」、「劇場」などの単語であるが、どの単語もかなり影響度が小さいことがわかる。塵も積もれば山となるではないが、影響度がわずかなものが積み重なって予測結果に至ったと考えられる。
smax
次は、smax
について。
smax
は、「エスマックス」、「関連リンク」、「MAX」などのフッター情報をもとに判定していそうだとわかる、これは一般的には欲しい結果ではない(中身の内容で判定したいことが多いはずな)ので、フッターを除く前処理を入れて、再度学習し直す方が良いとわかります。
誤判定のテキスト
##### 正解: livedoor-homme / 予測: kaden-channel
予測では、誤答ラベル(kaden-channel
)の0.77 に対し、正答ラベル(livedoor-homme
)が 0.22 と、多少は正答ラベルの可能性も示唆している。「話題」という単語が kaden-channel
である強い理由になっていそうであり、逆に livedoor-homme
の強い否定の原因になっていそうとわかる。一つの仮説として考えられるのは、学習データの kaden-channel
には、「話題」という単語が多く、判定の強い原因になっている、と考えられる点である。この仮説を確認するには、「話題」という単語を除くことであるが、根本的な解決とは言い難いため、「話題」という単語で判断しないように学習を誘導する手法を考えた方がより汎用的で運用上も辞書管理をしなくてよくなりそうである。
##### 正解:livedoor-homme / 予測:movie-enter
オリジナル文書へのハイライト
前半は概ね似た結果なので、ハイライトのみ確認します。
正判定のテキスト
movie-enter
smax
誤判定のテキスト
##### 正解: livedoor-homme / 予測: kaden-channel
##### 正解:livedoor-homme / 予測:movie-enter
ライブドアニュースコーパス(ldcc)に関する結果HTMLはこちら
aozora
青空文庫の分類に対しても同じように見ていきます。
PR Curves
- Recall - Precision グラフ
- Threshold - Precision/Recall グラフ
AP(Average Precision)が低めなのが、NDC 915
、NDC 914
、NDC 913
です。
ちなみに、NDC の分類は、以下のようになっています。
911 詩歌 (1,689件)
915 日記.書簡.紀行 (656件)
913 小説.物語 (6,329件)
K913: 子ども・小学生向けの本
914 評論.エッセイ.随筆 (4,366件)
NDC 915
の 日記、NDC 914
の評論、エッセイ、NDC 913
の小説、物語の区別が難しいということのようです。確かに、物によっては区別難しそうだなという感じもするので、違和感がない結果です。
LIME による可視化
単語集合のハイライト
正判定のテキスト
NDC K913
NDC K913
子供向けの本であるが、「い」、「お」、「の」、「しまい」などの「ひらがな」が判定原因になっているように見える。今回の前処理では、名詞、動詞などに絞っているので、これらの「ひらがな」が妥当かは原文から判断する必要がある。
NDC 915
NDC 915
は、日記、書簡、紀行などで、「し」、「雨」、「下り」、「午後」などが主な判定原因になっているように見える。
誤判定のテキスト
##### 正解: NDC K913 / 予測: NDC 911
正解ラベルは、NDC 913
小説、物語であるが、予測は NDC 911
詩歌 で、若干 NDC 914
評論、エッセイ、随筆 と判定している。
NDC 911
と誤判定した原因は、「海」、「改」、「ページ」、「船」などの単語であり、それぞれ個別に見ると、確かに詩歌にも出そうであると考えられ、誤判定につながってそうな感じがする。
##### 正解: NDC 915 / 予測: NDC 914
誤答ラベル NDC 914
評論、エッセイ、随筆 が 0.59 に対して、正解ラベル NDC 915
日記、書簡、紀行の 0.41 と、惜しい結果になっている。
単語を見ると、「私」が 0.24 と他の単語よりも大きいことから、「私」という単語に引っ張られて、NDC 914
評論、エッセイ、随筆 と判定していると考えられる。
オリジナル文書へのハイライト
前半は概ね似た結果なので、ハイライトのみ確認します。
正判定のテキスト
NDC K913
原文を見ると、一部ふりがなの箇所もハイライトされていることから、子供向けの本にふりがながふってあり、ひらがなの多さが特徴として利用されている可能性が見て取れます。ふりがなを除く前処理をした後、どう判定されるか見てみたいところです。
NDC 915
誤判定のテキスト
##### 正解: NDC K913 / 予測: NDC 911
なぜ、勇者や少佐などが、NDC 911
詩歌 と判定されているのは違和感がありますね。どの学習データ(文書)の影響を受けているかを調査したいところです。
##### 正解: NDC 915 / 予測: NDC 914
青空文庫(aozora)に関する結果HTMLはこちら
今回のパイプライン
LIME を日本語に対応させるために、パイプラインを以下のように工夫した。
実際の Notebookのコードは、こちら
まとめ
- 可視化により、改善点やもう少し調査したい次のアクションが明確になる
- LIME を使う時に、日本語に対応させるため、パイプラインを工夫する必要がある
- レポーティングを想定し、HTML には、入力コードが表示されないように、工夫してみた