固有表現を解析する | 自然言語処理学研究室

自然言語処理学研究室 教授の渡辺です。自然言語処理学研究室では、自然言語の構文構造や意味を解析し、知識を自動的に抽出するといった研究をしています。また、機械翻訳や画像キャプション、要約など、文章や画像を入力として別の文章を生成したり、文法誤りの訂正など言語習得の支援などの研究を行っています。

NAIST Edgeでは最先端の研究を紹介する、ということですので、今回は固有表現を含む、名詞句の抽出技術について紹介したいと思います。固有表現は、人名や地名などの固有名詞や日付、時間などでして、このような表現をテキストから自動的に抽出するタスクは検索や質問応答などさまざまな自然言語処理のアプリケーションに利用されています。辞書があれば簡単にできるのでは、と思われますが、知識は日々更新されていますので、新しいニュースや科学技術論文が出るたびに辞書を更新するのは現実的ではありません。また、単純に名詞句を並べただけでは、と思われがちですが、GENIAコーパスと呼ばれる、生命科学の分野を対象とした論文のアブストラクトのデータを眺めますと「Employing the [EBV – transformed [human B cell line] ] SKW6.4 , we demonstrate …」のように入れ子構造になったものや「prostate cancer and brest cancer cells」などのように、並列構造になったものがあります。特に並列構造では、この例のように「prostate cancer cells」から「cells」が省略され、解析を難しくしています。単純に「and」があれば並列にすれば良い、というものではなく、「Nara Inatitute of Science and Technology」のように、「Science」と「Technology」が並列ですが「NAIST」全体で一つの固有表現になります。

この問題に対してよく使われているのが「系列ラベリング」という手法です。例えばある入力文「… an increase in Ca2+ -dependent PKC isoforms in monocytes」に対して、下図のように、各単語にBおよびI、E、Oといったラベルを割り当てる、というものでして、各ラベルがそれぞれ「開始」「内部」「終了」「固有表現以外」のラベルになります。この例の場合「Ca2+ -dependent PKC isoforms」が固有表現になります。深層学習の技術を用いることで、テキストの各単語に対してラベルを予測する問題、として考え、このようなラベルが付けられた学習データからモデルを学習できます。ところがこの手法では、学習データが存在することを前提としていまして、科学技術の全ての分野でそのようなデータが存在するとは限りません。また、並列構造を発見するためには複雑なラベルを割り当てる必要があります。

計算言語学の国際会議COLING 2020で本研究室の澤田が発表した、名詞句の並列構造を解析する手法では、特定の分野の学習データがなくとも、高精度に解析できることを示しました。本研究では、並列構造を取る名詞句は意味的に近いだろうと仮定し、まず、文の中で並列構造を取りそうな単語列を全て列挙します。その後でfastTextELMoBERTなどを利用して、各単語のベクトル表現を求め、単語単位のペアに対して、意味的に近いかどうかをベクトル間の距離により計算します。さらに単語列単位の近さは動的計画法に基づいた編集距離で求めます。右の図の例では、「the retinoid-induced differentiation program」と「not the RARE-medicated signal」との近さを計算しています。この例では、「the ↔ the」および「retinoid-induced ↔ RARE-medicated」「program ↔ signal」が近いと計算され、対応付けられていますが、「differentiation」および「not」が対応付けられていません。この手法により、ラベル付き学習データにより訓練されたモデルに匹敵する性能で並列構造を解析できます。

計算機でも処理しやすい論文は人間でも読みやすい論文でもあります。たとえ冗長になったとしても、専門用語を複雑に組み合わせるような構造をなるべく避けるよう心がけてください。複雑な構造が増えると私達の仕事が増えてしまい、困ってしまいます。

大学院の授業を翻訳する 〜 自ら使う音声自動翻訳技術へ | 知能コミュニケーション研究室

奈良先端大知能コミュニケーション研究室准教授の須藤です.今回は当研究室で開発している授業アーカイブ自動翻訳システムと,そこで用いられている深層学習の技術について簡単に紹介します.

プレスリリース:日本語授業映像に付ける英語字幕をAIで自動作成 深層学習技術活用のシステムを開発 ~留学生らの自習支援など国際化に期待~

大学教育の国際化の進展と留学生の増加により,情報科学領域でも約半数の授業は英語で行われています.日本語で行われる授業については英語のスライド資料を利用するなどしていますが,日本語が分からない学生は資料だけで授業内容を理解しなければなりません.他方,本学では講義室の授業映像を録画・保存し,学内で閲覧できる「授業アーカイブシステム」を運用しています.私たちは,知能コミュニケーション研究室で取り組んでいる技術によって日本語の授業を英語に翻訳し,授業アーカイブシステムで字幕として見せることで日本語が分からなくても授業アーカイブシステムを用いて復習・自習できるような仕組みを作っています.日本語および英語の字幕が表示された授業アーカイブはこのような画面で表示されます.

このシステムは,授業で話される日本語を文字起こしする「音声認識」と,日本語を英語に自動的に翻訳する「機械翻訳」の二つの技術で実現されています.それぞれ長い歴史を持つ技術ですが,最近の深層学習(ディープラーニング)技術によって大きく性能が向上しました.今回は須藤の専門である機械翻訳(コンピュータを用いて自動的に翻訳を行う技術をこう呼びます)の技術を紹介します.

深層学習技術で用いられる計算の仕組みをニューラルネットワークと呼びます。詳細な説明は省きますが、ニューラルネットワークでは単語や音声、画像といった処理の対象をすべて数値を使って表します。数値といっても一つの数ではなく、数百個の数を使ったベクトルという形で表します。模式的な例として、X軸・Y軸を用いた2次元の平面で単語を表した例を次の図に示します。

この図では、man、woman、king、queenという単語が、2次元の平面上の別々の点として書かれています。それぞれの点には対応するX,Yの2つの数があり、この例では2つの数を使って単語を表現していると言えます(実際の研究では500次元、1000次元等より複雑な空間を使います)。さらにこの図では、manとwomanを結ぶ矢印つきの線とkingとqueenを結ぶ線がとてもよく似ています。このmanとwomanを結ぶ線は、manの座標をv(man)、womanの座標をv(woman)と表すとv(woman) – v(man)と書くことができます。それを使うとqueenの座標 v(queen) がkingの座標 v(king)を使ってv(king) – v(man) + v(woman)と表すことができるのです。実際には多少誤差があって完全に等しくなることはないのですが、単語をベクトル(座標)で表すときの例としてよく用いられます。

ニューラルネットワークを使った機械翻訳のことをニューラル機械翻訳と呼びます。単語を数で表現する考え方を上で説明しましたが、ニューラル機械翻訳では一つの単語だけでなく、複数の単語の並びや文もベクトルで表現します。ニューラル機械翻訳の処理を非常に単純に表現した図を以下に示します。

日本語を英語に翻訳しようとするときに、まず日本語の単語をベクトルに変換して、そのベクトルを一つずつコンピュータに読み込ませます。読み込ませるときには、今持っているベクトル(左下の青い四角)と新しく読み込むベクトル(「入力単語のベクトル表現」と書かれたもの)にある決まった計算をして、新しいベクトルを求めます。例えば、「機械」という単語を読み込み終わった時点では、そのベクトルは「これ」「は」「機械」という3つの単語を読み込んで記憶できると考えてください。すべての単語を読み込み終えると、今度は英語に翻訳した文を出すために、英語の単語を一つずつ読み出します。読み出す仕組みもベクトルを用いた計算によるもので、ベクトルにある決まった計算をして、英語の単語に対応するベクトルと、これから出力する単語の情報を持つベクトルの二つを得ます。この処理を繰り返して、単語に対応するベクトルを一つ一つ単語に変換することで、最終的に英語の文が得られるというわけです。

上の説明で「決まった計算をして」と書きましたが、当然正しい結果が得られるように計算をする必要があります。ベクトルの中の数に対する掛け算や足し算を組み合わせて、ベクトルから別のベクトルを得るような計算をするのですが、ここでどういう数(パラメータ,と呼びます)を掛けたり足したりすれば正しい結果が得られるのか、を対訳(異なる言語の同じ意味の文の組,例えば日本語と英語)を使って調整するのです。その方法の詳細はここでは説明しませんが、最初はランダムな値から始め、正しい翻訳結果が出てくるようにするにはこのパラメータの値を大きくすればよいのか、小さくすればよいのか、を調べながら、少しずつ調整をしていくのです。

このようにして、機械翻訳や音声認識は大量のデータを使って、正しい結果が得られるパラメータの値を「学習」することで実現されています。このようにデータから何かの問題の解き方をコンピュータが身につけるための技術を「機械学習」と呼びます。機械翻訳や音声認識はその一例ですが、最近のコンピュータはそうした技術によって様々なことができるようになってきているのです。