Ateam Tech Blog

エイチームのエンジニアたちによるテックブログ

日本語の自然言語処理コンペの取り組みの紹介

こんにちは。エイチームライフデザイン技術開発室の鈴木です。普段は自然言語処理技術のWebメディアへの応用について研究開発をしています。

データサイエンスコミュニティとして有名なKaggleには機械学習技術を用いたいろいろなコンペがあり、中には自然言語処理を題材としたものもあります。ですが自然言語処理は対象が英語なのか日本語なのか、言語によって手法に差が出てきます。 私は最近、日本のデータサイエンスコミュニティNishikaにて日本語の自然言語処理技術を中心としたコンペに取り組んできましたので、その内容を紹介します。

Fake News Detection

Nishika - Fake News detection

これは2022年4月から6月に開催されていたコンペで、本物のニュース記事と、言語モデルで生成された虚偽のニュース文章とを分類するコンペです。

本物のニュースの例(label==0

中日新聞によると、コナミカップ・プロ野球アジアシリーズ2007の決勝戦・日本の中日ドラゴンズ対韓国リーグのSKワイバーンズの試合が11月11日東京ドームであり、中日が6-5で勝ってアジアシリーズ初優勝を決めるとともに、大会が創設された2005年の千葉ロッテ、2006年の北海道日本ハムに次ぎ、日本のチームが3年連続してアジアチャンピオンを獲得した。 (以下略)

普通のニュースですね。 次に、フェイクニュースの例(label==1)を見てみましょう。

ウォーカー氏は50年、娘のステファニーさんが妊娠中に死去したと報じられていた。亡くなった後、ブッシュ大統領とブッシュ前米国大統領事館前ですれ違ったのが、ジョージ・ウルフ氏とジョージ・ケリー氏の2人。ウルフ氏はウルベス氏(現・ヘンリー・マンシーナ元首相)から「彼はもうすぐ来る」と言われている。ハリウッドは世界で唯一ウルベス氏の名が歴史から消えた存在であり、ウルベス氏自身でさえもウルベス氏の死に気づいていない。

一見、それらしい文章に見えます。 しかし読んでみると意味が通っておらず、誰が亡くなったニュースなのかがよく分かりません。唐突に出るハリウッドや、冒頭の「50年」が何のことなのか不明だったり、よく読むと色々おかしいことに気付きます。 ですが文法としては通っているきれいな文になっており、特定の言い回しの繰り返しなどもありません。 こういった虚偽的な内容と、本物のニュース記事とを分類するコンペになっています。

特徴としては、与えられるデータがこの本文とIDのみでした。投稿日時やタイトルのような他に使える情報は情報が一切無く、自然言語処理の技術のみで挑戦するコンペでした。1

実際にコンペに取り組みにあたって、まず Bag of Words(BoW) という手法を試しました。これは自然言語処理の中では古典的な部類に入る手法で、文章の中に単語が何回出現するかという情報をもとにベクトル化するものです。BoWでベクトルを作り、ロジスティック回帰などの手法を使って文書分類ができます。 例えばニュース記事のカテゴリ分類のように、ラベル毎に単語の出現率に偏りがあるようなケースには有効に作用すると思います。

BoWをベースにした手法で改善が見られなくなってきてから、 BERT のモデルを用いた手法に切り替えました。BERTは2018年に発表された比較的新しい自然言語処理モデルであり、様々なタスクを高い精度で解けます。 BERTの事前学習モデルをいくつか試し、スコアの高かったrinna/japanese-roberta-baseをベースにしてモデルを構築し、BoWによる結果とアンサンブルをして提出しました。結果は500人中24位で銀メダルでした。

Hate Speech Detection

Nishika - ヘイトスピーチ検出

これは2022年10月から開催されたコンペです。インターネット掲示板の投稿内容を対象に、投稿がヘイトスピーチに該当するかどうかをラベル付けされたデータを用いて、ヘイトスピーチにあたる投稿を検出するコンペです。

ヘイトスピーチとは、「本邦外出身者に対する不当な差別的言動の解消に向けた取組の推進に関する法律(ヘイトスピーチ対策法)」には以下のように述べられています。

本邦の域外にある国又は地域の出身であることを理由として、適法に居住するその出身者又はその子孫を、我が国の地域社会から排除することを煽動する不当な差別的言動

インターネットの掲示板等から、こういった差別的な投稿を自動検知して削除することに役立てるためのコンペになっています。

日本語を対象とした分類問題という点においては、先ほどのFake News Detectionと似ています。ですが、Hate Speech Detectionはインターネット掲示板の投稿が対象ということで、分類対象の文章にスラングや略称などが多く使われており、また少し違った特性になっていました。

取り組んだアプローチはFake News Detectionの時と同様、まずBoWで作ったモデルをベースラインとして構築したあと、BERTで様々なモデルを試しました。今回はku-nlp/roberta-large-japanese-char-wwmのスコアが高かったため、こちらのモデルを調整して提出しました。本稿執筆時点(2022年12月21日)では結果精査中ですが、625人中41位で銀メダル圏内となっています。

まとめ

日本語を対象とした自然言語処理コンペへの取り組みを紹介しました。コンペに参加することで、他の人のコードや解法を見て学ぶ事があったり、自然言語処理技術の実社会への応用の可能性を感じる事ができました。これからもコンペ等を通して日本語の自然言語処理が盛り上がっていくと良いなと思います。

紹介した解法のうち、BoWによる具体的なコードなどはNishikaのdiscussionsに投稿しました。BERT等のディープラーニングモデルを用いた方法のほうが現在は主流であり、コンペでの成績も高くなります。ですがBoWのような方法は実装も比較的シンプルで仕組みも理解しやすいですし、高性能なGPU等を用意しなくても短時間でモデルを構築できます。実際のケースにおいては十分に使える場面があると思っています。


  1. コンペ開始当初はデータがID順に並んでいた問題があり自然言語処理を使わなくても満点を出せましたが、ただちに修正されました