第7章 自然言語処理のためのリカレント・ネットワーク 自然言語処理のためのリカレント・ニューラル・ネットワーク
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第5章では、テキストをトークン化してシーケンス化し、文章をテンソルのような数列に変換してニューラルネットワークに入力する方法を説明した。 第6章では、それをさらに拡張して、埋め込みを調べた。埋め込みとは、似たような意味を持つ単語をクラスタリングして、センチメントを計算できるようにする方法である。これは、皮肉分類器を構築して見たように、実にうまく機能した。つまり、文章は単なる単語の集まりではなく、多くの場合、単語の出現順序が全体の意味を決定する。また、形容詞は傍らに置かれる名詞の意味を加えたり変えたりすることがある。例えば、blueという単語は、skyと同様にセンチメントの観点からは無意味かもしれないが、それらを組み合わせてblue skyとすると、通常は肯定的な明確なセンチメントを示す。最後に、雨雲、ライティングデスク、コーヒーマグのように、ある名詞が他の名詞を修飾することがある。
このようなシーケンスを考慮に入れるには、モデル・アーキテクチャに再帰を組み込むという、 追加のアプローチが必要である。この章では、このためのさまざまな方法を見ていく。シーケンス情報をどのように学習し、この情報をどのように使用して、テキストをより理解しやすいモデルの一種、リカレント・ニューラル・ネットワーク(RNN)を作成できるかを探る。
再帰の基礎
リカレンス(再帰) がどのように機能するかを理解するために、まず、この本でこれまで使われてきたモデルの限界を考えてみよう。最終的に、モデルの作成は図7-1のようになる。データとラベルを提供し、モデルのアーキテクチャを定義すると、モデルはデータをラベルに当てはめる規則を学習する。これらの規則は、アプリケーション・プログラミング・インターフェース(API)として利用できるようになり、将来のデータに対して予測されたラベルを返してくれるようになる。
図7-1. モデル作成の高レベルビュー
しかし、ご覧の通り、データは丸ごと一括されている。粒度は関係なく、データが発生するシーケンスを理解する努力もない。つまり、blueと skyという単語は、"Today I am blue, because the sky is gray. "という文章と、"Today I am happy, and there's a beautiful blue sky. "という文章において、異なる意味を持たないということだ。私たちにとっては、これらの言葉の使い方の違いは明らかだが、ここに示したようなアーキテクチャを持つモデルにとっては、本当に違いがないのだ。
では、どうすればいいのか?まずは再帰の本質を探り、そこから基本的なRNNがどのように機能するかを理解しよう。
有名な フィボナッチ数列を考えてみよう。ご存じない方のために、その一部を図7-2に示した。
図7-2. フィボナッチ数列の最初の数列
この数列の背景にある考え方は、すべての数はその前にある2つの数の和であるということである。つまり、1と2から始めると、次の数は1+2で3、その次は2+3で5、さらに3+5で8、といった具合である。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access