Gunosyデータ分析ブログ

Gunosyで働くデータエンジニアが知見を共有するブログです。

BERTによるテキスト分類

はじめに

こんにちはGunosy Tech Labの森本です。グノシーのニュース記事を実験的にBERTでテキスト分類しましたので、その結果を共有します。 BERTはご存知の通りGoogle AIが発表した双方向Transformerであり、Pre-trainingできる特徴があります。自然言語処理の代表的なデータセットを用いたタスクやベンチマークで発表当時複数のstate-of-the-artを記録しました。 arxiv.org

本記事ではテキスト分類に着目して実験を行いました。 テキスト分類は昨今の深層学習の熱気とは別に従来より研究されている分野であり、代表的なライブラリを使用することで実サービス上でも安定度の高い稼働を実現できます。

f:id:moyomot:20191001110854p:plain

上図のようにグノシーにはエンタメ、スポーツのような様々なタブがあります。 これらタブにニュース記事を配置するときにテキスト分類が活躍します。 エンタメ、スポーツのような従来からあるタブでのテキスト分類は実績のある手法を採用してきました。

一方でグノシーのサービス上の課題も変化してきました。 最近ではアウトドアタブやおやつタブなどスポンサー企業と連携するタブやラグビーワールドカップなど時事性の強いイベントに合わせたラグビータブなどを提供しています。 これらのタブは複数の方法を用いて実現していますが、より低コストによりスピーディーに実現できないかというのが課題です。 具体的にはアノテーションしやすい環境を整備し、限られた教師データで十分な分類精度を担保したいというニーズです。 そこで事前学習できるBERTに注目し,一定の教師データ数でどの程度の分類精度になるかをグノシーのニュース記事で実験してみました。

実験設定

実験結果

  accuracy
BERT 0.77
GradientBoosting 0.38

f:id:moyomot:20191002101451p:plain

混合行列を用いたBERTによるテキスト分類結果

f:id:moyomot:20191002100143p:plain

混合行列を用いたGradientBoostingClassifierによるテキスト分類結果

f:id:moyomot:20191001141637p:plain

考察

  • ニュース記事タイトルのみを使用しましたが、BERTは事前学習モデルのおかげもありGradientBoostingClassifierより高精度になりました
  • 政治、経済、社会、国際タブ内の誤判定が目立ちますが、そもそもアノテーション自体難しくマルチラベル分類を実施するのが正しい姿と考えられます
    • 例えば外交系ニュースを政治として扱うか、国際として扱うかはシングルラベルのときアノテーションが難しい
  • コラムタブの誤判定も目立ちます、このタブもアノテーションが難しいという課題があります
    • ファッション、ビューティーなどの美容系記事をコラムと割り切ればアノテーションは容易になりますが、グルメ系コラム記事の扱いなどで誤判定が見受けられます
    • GradientBoostingClassifierでコラムの誤判定が多かった理由もこれが一因と考えられます
      • とはいえコラムに対する誤判定が多い...

おわりに

  • BERTによるニュース記事分類を実験し、一定の精度がでることを確認しました
  • とはいえ未検証の内容が多数あります
    • XLNetやRoBERTaとの比較実験
    • 深層学習以外の手法との比較実験
    • ニュースタイトルだけではなく本文など使用したときの精度測定
    • 適切な教師データ数を模索するために教師データ数の増減をさせて精度変化の測定
    • グノシーのニュース記事をコーパスとして事前学習モデルを生成し精度測定
  • 以上のように行うべき実験は多数あり、自然言語処理を用いたサービス改善でGunosyをさらに良くしていただける仲間を募集しています