【前編】自然言語処理技術を用いた「テキストデータ」のビジネス活用の現在地

ビジネスで使える自然言語処理、使えない自然言語処理とは?

AIプラクティス部で各プロジェクトの成果物レビューを担当するかたわら、自然言語処理を研究している梅田義章です。自然言語処理への関わりは2005年からですので、今年で17年目になりました。その間に大きなブレイクスルーが何回かあり、現在に至っています。

他のAI応用と比較すると「自然言語処理のビジネス利用」は遅れていました。ビジネスの現場で活用の頻度が高まってきたのは最近のことです。理由は単純で、「ビジネスで使える段階でなかった」だけです。

「ビジネスで使える/使えない」とはどういうことでしょうか。

ルールベースであれ、機械学習であれ、AIの構築には手間も時間もお金(長いので、これら3つをあわせて「コスト」と呼びます)もかかります。10年くらい前までは、このコストが大変かかりました。複数のAIを組み合わせて目的を達成する必要があったからです。AIの各ステップには大きなコストがかかったにもかかわらず、コストを上回る価値を生み出すビジネス的な応用が少なかったのです。これが「ビジネスで使えない」の意味です。しかし後述する技術的ブレイクスルーの恩恵で、「AIを作成するコスト」が「AIが生み出す価値」を下回るようになりました。

そしてブレイクスルーのたびにコストが小さくなりながら、AIにできることも増えていきました。どんどん「ビジネスで使える」ようになってきたわけです。それでここ数年になって、日本でも先進的な企業が自然言語処理をビジネスに活用しはじめたということなのです。

2013年に起きた技術的ブレイクスルー

プログラミング言語やエスペラントなどを人工言語と言います。これらは極めてロジカルにできています。プログラミング言語がロジカルでなければコンピューターでは処理できませんし、エスペラントに例外的な複数形や不規則動詞などがあったら習得が難しくなり普及しません。

人工言語に対して自然言語はあまりロジカルとは言えません。今挙げた複数形や不規則動詞などのように文法は例外だらけですし、話し言葉になると「正しい文法」が守られているとは限りません。守られないので「正しい文法」が時代とともに変わっていきます。新しい言葉もたくさん出てきます。日本語に至っては、単語に分けるのが難しいという側面もあります。

それでも2005年の段階で、構文解析、意味解析、文脈解析などの研究はかなり進んでいました。ただ私が思うには、ビジネスで使える技術は形態素解析ぐらいでした。形態素とは、意味を持つ表現要素の最小単位を指す言語学の用語です。

日本語の形態素解析は、コンピューター上で日本語のかなから、かな漢字混じりの文章を構築する研究に伴って発展した分野です。検索エンジンには欠かせない技術ですし、日本語と関連したレコメンドエンジンでも使われています。スパムメールを見分ける際にも、特定の形態素がどれくらい含まれているかが判断基準になっています。ビジネス応用といっても、インフラ的な技術ですが、しかし日本語入力や検索はもはやビジネスに欠かせませんし、レコメンドなどは直接利益を生み出します。

大量データを決まった方法ですばやく処理するというコンピューターの利点を生かすことができたため、また得られる結果の精度も高かったため、形態素解析の活用は成功しました。しかし、他の分野は研究が進んでいたのにビジネスでは使えませんでした。コストが掛かる割に精度が低く、ビジネス応用ができなかったからです。

AIであろうと他のソフトウェアと同じくコンピューター上で動作します。コンピューターは元々数値を扱うことは得意ですが、文字列をそのまま扱うことは得意ではありません。

では言語を数値に変換すればいいのでは――そのような考え方を実現したブレイクスルーが2013年に起こりました。「単語の分散表現」と呼ばれる技術で、1つの単語を数10〜数100程度の次元のベクトルで表現することを言います。ベクトルとは数字の羅列で、(1, 0.2, 1.3)のように表現します。並べられた数字の個数を次元と言い、この例では3次元となります。

要するに単語を数字の羅列として表現するようになっただけなのですが、これがコンピューターにとっては大きなブレイクスルーだったのです。たとえば似たような単語かどうかは、ベクトルの中の数字がどれだけ似ているかで定量的に判断できます。それまでは、人間が目で見て、単語同士が似ているかどうかを調べていました。しかし人によって似ている度合いが違う定性的な評価であり、精度が低かったのです。定量的に判断できるということは誰がやっても同じということであり、もちろんコンピューターにもできるということです。

しかもその計算が、高校で習うレベルの数学、つまりコンピューターにとっては簡単な計算なので処理時間(=コスト)もほとんどかかりません。

「Transformer」で一気にビジネスに使えるようになった理由とは?

続くブレイクスルーは2016年に起こりました。

ご存知の方も多いと思いますが、深層学習(ディープラーニング)は、多層ニューラルネットワークという数理モデルをベースとしています。その一種にRNN(再帰型ニューラルネットワーク)というものがあります。これはニューラルネットワークを時系列データが扱えるように拡張したものです。

自然言語も基本的に前から後に流れる時系列データと捉えることができるため、Transformer以前の言語モデリングではRNNがよく使われていました。細かい説明は省きますが、2016年に「Attention付きSeq2Seqモデル」が登場し、RNNベースでの深層学習の精度が飛躍的に高まりました。

仕事や勉強でWebを使う人は、この頃からGoogle翻訳の精度が急に向上したことを憶えているのではないでしょうか。これはまさにAttention付きSeq2Seqモデルの恩恵です。

RNNベースでの深層学習や形態素の分散表現により、各分析タスクは前処理を含めて一気通貫で学習できるようになり、コストの大幅な削減につながりました。また、人間が時間を掛けて構築した以前のモデルより、深層学習任せのモデルの精度が高くなり、ビジネス上の適用範囲が増えました。

さらに大きなブレイクスルーが翌年の2017年に訪れます。「Transformer」です。

RNNには欠点があって、それは逐次処理しかできないということです。モデルの精度を高めるには、大量の学習データを使用することと学習時に与えるパラメータ数を増やすことが一般的です。逐次処理しかできなければ、精度を高めるために膨大な時間がかかることになります。

一方でソフトウェアの処理速度を飛躍的に高める方法としてよく採用されるのは、分散環境で同時に処理を行う並列計算です。Transformerは、Attention付きSeq2SeqモデルのAttentionの部分を利用したモデルです。逐次処理を必要とせず、並列処理が可能となっています。

Transformerモデルでは、RNNモデルと比較して計算量は膨大になりましたが、その分精度が大幅に向上し、ビジネス上の適用範囲が増えました。また、各種タスクに用いるモデルの基本部分を共通化できるため、複数用途に利用する際のコストが削減されています。

なおTransformerは、モデル構築のベースとなるモデルです。Transformerの仕組みを利用し、学習方法や一部の内部ロジックを改善したモデルが多数発表されています。最も有名なのがGoogleのBERTで、2018年に登場しました。その他にもGPT、XLNet、ALBERT、ELECTRAなどがTransformerモデルとしてよく知られています。

WRITER執筆者プロフィール

株式会社ブレインパッド

アナリティクス本部
AIプラクティス部
梅田 義章

北海道大学理学研究科修了、素粒子理論を専攻。ハンブルグ大学、アーヘン工科大学、台湾交通大学でのポスドク、前職データ分析会社を経て2013年にブレインパッド入社。社内ではレビュアーとして幅広い分析案件に対する提案、進行、納品の品質管理や技術支援を担当。また自然言語処理についての研究・開発を担当。

MAIL MAGAZINEメールマガジン

イベントやセミナーの開催予定、
最新特集記事の情報をお届けいたします。

TREND人気ワード・タグ

BEST PRACTICEベストプラクティス

ベストなDXへの入り口が見つかるメディア

DOORS

BrainPad

MAIL MAGAZINEメールマガジン

登録が完了しました。

メールマガジンのご登録ありがとうございます。
最新特集記事の情報をお届けしますので、
お楽しみにお待ちください。

MAIL MAGAZINEメールマガジン

登録エラーです。