金融、製造、法律、医療といった多様な領域で先進自然言語処理技術の応用事例をもつAlgoAnalytics社の事例をご紹介します。
AlgoAnalytics社は最先端のデータ分析や自然言語処理の適用力を武器にインド、シンガポールを拠点にグローバルな活動を行っており、日本でも、NTTデータ先端技術と連携し、先進自然言語処理や画像処理によるDX案件に数多く参画しています。

今回ご紹介する事例は、深層学習を利用した電子健康記録 (EHR)からの「医学用語」の抽出です。
EHRの解析は「検査や治療が必要な患者のスクリーニング」「疾患のモデル化(疾患の原因や発症メカニズムの特定など)」「薬剤関連の発見(副作用情報からの薬物の相互作用の発見など)」などを実現するため、生物医学研究にとって非常に重要です。
また、製薬会社などからのニーズの高い医学論文、特許、MRの日報などからの医学的知見の抽出するための技術としても注目されています。

この医学用語の抽出は、深層学習を利用しているため、その学習には大量の学習データ(どの部分が抽出対象であるか正解が付与されたテキストデータ)が必要です。
しかしながら正解付け作業(アノテーション)には、膨大なコストと時間がかかるため、十分な学習データを用意できず十分な抽出精度が確保できない問題がしばしば起こります。
本事例は、この問題を、アノテーション作業が不要な言語モデルの事前学習と学習済みの抽出モデルからの転移学習を組み合わせることで解決しています。

現在、医学用語のような固有表現抽出はTransformerと呼ばれる、より新しい深層学習技術が適用されるケースが多くなってきましたが、以下で紹介するAlgoAnalytics社の事例は現在でもしばしば発生する限られた量の教師ありデータしか確保できない状況において活用可能な普遍的アプローチと言えます。

医学用語の抽出

患者の臨床研究は、主に構造化されていないテキストで構成される診療情報提供書や退院概要などの電子健康記録 (EHR) に保存されます。
EHR データを解析する場合、医学的な概念と情報の抽出は大変ですが、重要な操作です。
固有表現抽出(Named Entity Recognition: NER)は自然言語処理(Natural Language Processing: NLP)における基本的なタスクであり、記述された単語列をあらかじめ定義された関心のあるエンティティに分類します。
生物医学の領域では、この技術は、病気、薬品、症状などの関心のあるエンティティを対象とします。
医療テキストは複雑であるため、そのようなエンティティを抽出するためには深層学習ベースの教師あり学習が用いられます。

Pythonは、ディープラーニングやNLPのためのライブラリが膨大で、人気があるため、このようなタスクを行うソリューションの開発に使用されています。
本事例はScispacyというPython製のパッケージを生物医学、科学そして医療関連のテキストの処理に使用しています。
Scispacyには、生物医学領域のデータで学習されたモデルが含まれており、固有表現抽出、係り受け解析、文分割などに利用することができます。[1]
Scispacy のモデルの学習データにはラベル付けされたエンティティなどのフリーで公開されているデータセットが使用されています。
病気、体の部位、薬品とのエンティティがそれぞれNCBI [2], AnatEM [3], and BC5CDR (BioCreative V CDR) [4]データセットにより個別に学習されています。

Scispacy はPython による最先端のNLPライブラリであるSpacy をベースに作成されています。
Spacy NER(Named Entity Recognition:固有表現認識)はサブワード特徴による新しいbloom embedding戦略を採用しており、大語彙を小さなhash tableで扱うことができます。
また、効率性を向上させるためにattentionメカニズムを備えた畳み込みニューラルネットワーク( Convolutional Neural Network :CNN) 層が用いられています。[5]

生物医学分野のエンティティが複雑で多様なものであることを考えると、限られた語彙による小規模なデータで学習することはモデルのスコープが制限される恐れがあります(語彙外単語:Out-Of-Vocabulary Words)。
このような問題を克服するために、本事例では拡張された語彙と学習済みのembeddingsを持つScispacyの生物医学領域向け事前学習モデルを利用した転移学習を用いることにより予測精度を大幅に向上させ、よりロバストなものにするためにScispacy のモデルをベースモデルにしました。

さらなる改善のために、実際の学習を開始する前に、言語モデルに単語のベクトルを学習させました。
事前学習には収集されたEHRのデータセットから得られたテキストコーパスをすべて結合して用いました。
この追加のステップでは、単語のベクトルが単語を囲む単語群に応じて文脈を反映するように学習します。
ニューラルネット層をランダムな値で初期化し、一から学習する代わりに、言語モデルから得られた学習済みのベクトルを用いてこのステップを始めます。
Scispacy の語彙拡張とembeddings、事前学習ベクトルを組み合わせた結果、事後学習の精度はF1スコアで10%から15%ほど向上しました。[6]

図1: NER タスクの全体的な流れ
図 2: エンティティ抽出結果

大規模言語モデルの出現により、生物医学領域では、より向上した性能とより詳細なエンティティ抽出が可能なTransformerベースのNERモデルが数多く利用できるようになりました。Transformerはテキスト入力/テキスト出力タスクを解くことを目的にした新たな深層学習アーキテクチャであり、学習時に遠く離れた文脈の依存性を簡単に理解することができます。BioBERTはBERT(事前学習モデルの一種)をベースに、一般/生物医学領域のデータセットによりファインチューニングしたものです。[7] 
BioGPTはマイクロソフトの研究者が開発した生成型Transformer言語モデルであり、生物化学に関する質問回答に特化したものです。 [8]

図 3: DistilBERT をベースに学習したBiomedical NER Modelからの出力例

DistilBERTはBERT (Bidirectional Encoder Representations from Transformers)をdistilling(蒸留)することで得られる小型で高速、低コストで軽量なtransfomer [9]

AlgoAnalytics社は本ソリューションを英国の大手医療機関向けに開発しました。
医療分野の科学研究には、数百万件に及ぶ医療記録、臨床報告書、研究論文などからなる豊富な文献があります。
生物医学データの大半は構造化されていないため、エンティティ抽出のようなアプリケーションは研究者や医療関係者が貴重な情報を抽出し、分析するのに役立ちます。
ここで使われている手法は、医療分野に限らず、保険、小売、法律、その他の分野にも拡張可能です。

まとめ

本日はAlgoAnalytics社の先進自然言語処理技術の応用事例をご紹介させていただきました。
NTTデータ先端技術では今後拡大が見込まれる大規模言語モデルを含め先進自然言語処理技術を活用した価値の創出にむけてさらに取り組みを強化していきます。

※記載されている会社名、団体名、商品名、またはサービス名は、各社の登録商標または商標です。