NIKKEI TECHNOLOGY AND CAREER

日経のデータサイエンティスト3名(+外部1名)で自然言語処理コンペに出た話

情報サービスユニットの増田です。普段は自然言語処理やBtoBプロダクトのユーザログの分析などを担当するデータサイエンティストとして仕事をしています。

本記事では、世界最大級のデータサイエンスコミュニティプラットフォームである「Kaggle」にて2-5月に開催されていた自然言語処理コンペティション「NBME - Score Clinical Patient Notes」 に弊社のデータサイエンティスト3名(ほか、外部の機械学習エンジニアの方1名)でチームを組んで参加した体験談を紹介します。

コンペティション概要

このコンペティションのホストであるNBME(National Board of Medical Examiners)は、米国で医師免許試験を実施している機関です。受験者はその免許試験において、仮想的な患者が発言した内容に基づきカルテを記述します。そのカルテの採点は現状人手で行っているため、NBMEでは効率化の観点から機械による高精度な自動採点の可能性を模索しています。

そこでNBMEは、「diminished appetite(食欲不振)」「Auditory-hallucination-once(1度の幻聴)」など症状の定義文を与えたときに、実際に答案に書かれたカルテの文中から該当箇所(文字の位置)を抽出するモデルの精度を競うというコンペを開催しました。

実際のカルテのデータにおいては、例えば「diminished appetite(食欲不振)」について言及している記述をカルテから探す場合、直接的に食欲について記載されていない場合もあり、“eating less”(少食になった)や“clothes fit looser”(服が緩くなった)のような間接的な表現や言い換えなどが使用されているケースが多く存在します。このため、ルールベースでフレーズの選択を行うことができないところがこのコンペの難しい点です。

解法概要

結果から述べますと、私たちのチームは1471チーム中27位の成績を収め、銀メダルを獲得することができました。

コンペ終了後にディスカッションページに投稿された解法の多くが示す通り、私たちのチームもDeBERTaなどパラメタ数の大きな言語モデルをファインチューニングするアプローチを採用しました。

性能を効果的に上げられた要因は次の3つです。

Masked Language Modeling(MLM)を用いた事前学習

コンペにおいて与えられたデータセットの中には、全く正解ラベルが付けられていないテキストサンプルが多数存在しました。単純な教師ありのアプローチではこれらのデータを使わずに学習をしますが、今回はその前段階としてMasked Language Modeling(MLM)とよばれる事前学習の手法を用いました。MLMではカルテの文章中の単語をランダムに虫食いさせ、モデルがその単語を予測できるように学習を進めます。その結果としてカルテの文章特徴をうまく掴んだモデルができるため、そうでないモデルに比べて高い精度を出しやすくなりました。

擬似ラベリング

前述の通り、カルテには正解ラベルのないデータが大量に存在していました。そこでもう1つのアプローチとして、そこそこ高い精度を確認できているモデルを使って擬似ラベリングを行うことで、正解ラベル付きのデータを増やすアプローチを採用しました。擬似ラベリングしたデータは、一般的にはその一部のみを本来の学習用データとして追加することも多いですが、今回のタスクでは全てを本来の学習に回した方が精度が良くなりました。

アンサンブル

こちらは機械学習コンペで定番の手法になっていますが、様々なアーキテクチャのモデルを複数学習させ、それらの重み付き和を最終的な予測値とするアンサンブルを行いました。具体的にはDeBERTa-v3-LargeやRoBERTa-Largeなどを含む4種類のモデルについて、Optunaという最適化ライブラリを用いて重みや閾値を調整しました。

Leaderboard
1471チーム中27位(上位1.9%)の戦績を収めた

コンペに参加して得られたこと

自然言語処理技術の向上

言うまでもないことかもしれませんが、今回のようにテキスト中からある話題に関連するフレーズを抽出するためのモデリング手法を習得しておくことで、業務で類似の課題に取り組むときの対応力が段違いに高まったことと思います。それだけでなく、たとえ直接業務で同じような問題に遭遇しなくても、PyTorchHugging Face Transformersなど各種ライブラリの使い方はもちろん、事前学習や擬似ラベリングなど手持ちのテキストデータをフル活用するための手法の有効性についても身をもって学ぶことができました。

社内メンバー同士の連携強化

今回参加したメンバーの中には、部署が異なるため互いにそれまで面識のなかった者もおりました。このコンペで定期的なチームミーティングを重ねることで、コンペ終了後も技術情報の共有などを活発に行うような関係性を構築できました。また、社内で切磋琢磨し合える仲間の存在をより強く意識することができ、各メンバーのモチベーション向上にもつながりました。

おわりに

本記事では、社内のデータサイエンティスト3名を含むチームでKaggleの自然言語処理コンペティションに参加した体験記についてお届けしました。

日本経済新聞社では、記事データなどの大規模なテキスト情報を処理してサービス・プロダクトに応用していく自然言語処理エンジニアを募集しております。少しでもご興味のある方はぜひ採用情報ページインターン情報ページをチェックしてみてください。

増田太郎
DATA SCIENTIST増田太郎

Entry

各種エントリーはこちらから

キャリア採用
Entry
新卒採用
Entry
短期インターン
Entry