pQRNN:射影とクラスタリングで一部のNLPタスクを効率化(1/2)

モデル

1.pQRNN:射影とクラスタリングで一部のNLPタスクを効率化(1/2)まとめ

・昨年発表したPRADOはパラメータ数が少なくとも最先端のパフォーマンスを実現した
・PRADOはタスクに最も関連するトークンのみを学習するためパラメータを少なくできる
・大部分のNLPタスクは関連するトークンが属するクラスタを知るだけで実行可能

2.PRADOとは?

以下、ai.googleblog.comより「Advancing NLP with Efficient Projection-Based Model Architectures」の意訳です。元記事の投稿は2020年9月21日、Prabhu Kaliamoorthiさんによる投稿です。

Projection(投影)をイメージしたアイキャッチ画像のクレジットはPhoto by Isi Parente on Unsplash

ディープニューラルネットワークは、過去10年間、主に専用ハードウェアを使用するデータセンター内で実行されるアプリケーションを通じて、自然言語処理(NLP)を根底から変えてきました。

ただし、ユーザーのプライバシーの保護、ネットワーク遅延の排除、ネットワークに繋がっていなくても使えるようにする必要性、運用コストの削減などの問題により、データセンターではなくスマートフォンなどのデバイス上で実行できるNLPモデルの開発が急速に加速しています。

しかし、モバイルデバイスのメモリと処理能力は限られているため、モバイルデバイス上で実行されるモデルは、品質を損なうことなく小型で効率的である必要があります。

昨年、私たちはPRADOと呼ばれるニューラルアーキテクチャを公開しました。このニューラルアーキテクチャは、20万未満のパラメータを持つモデルでありながら、多くのテキスト分類問題で当時の最先端のパフォーマンスを実現しました。

ほとんどのモデルは、トークン毎に固定数のパラメータを使用しますが、PRADOモデルは、タスクに最も関連する、または有用なトークンのみを学習するために非常に少ないパラメータのみを必要とするネットワーク構造を使用していました。

本日、pQRNNと呼ばれるPRADOモデルの新しい拡張機能について説明します。これは、最小のモデルサイズでNLPパフォーマンスの最先端技術を進歩させます。

pQRNNの目新しさは、高速な並列処理のために、単純な射影操作とquasi-RNNエンコーダを組み合わせる手法にあります。pQRNNモデルが1桁少ないパラメータのみでテキスト分類タスクでBERTレベルのパフォーマンスを達成できることを示します。

PRADOが機能する理由
PRADOは1年前に開発されたとき、NLP領域に固有の「テキストを断片化(segmentation)する手法」に関する見識を活用して、モデルサイズを縮小し、パフォーマンスを向上させました。

通常、NLPモデルへのテキスト入力は、最初にニューラルネットワークが扱いやすいた形式に断片化されます。断片(トークン)が取りうる値はユニバーサル辞書として事前定義されており、この辞書を使って断片化を行います。次に、ニューラルネットワークは、トレーニング時に使用するパラメータベクトル(embedding table)を使用して各断片を一意に識別します。

しかしながら、テキストを断片化する手法は、モデルのパフォーマンス、サイズ、および処理時間に大きな影響を与えます。以下の表は、NLPコミュニティが主に使用する3つの手法と、その長所と短所を示しています。

テキストを文字単位に断片化 テキストを「単語の断片(word-pieces)」に断片化 テキストを単語に分割
・embedding tableは小さくできます
・非常に離れた位置から受ける影響を学習するために、強力なモデルが必要です
・個々のトークンはあまり意味を持ちません
・embedding tableは中規模になります
・長文における依存関係を学習できるモデルが必要です
・個々のトークンは部分的に意味を持ちます。
・embedding tableは巨大になります
・断片化したテキストの数が少ないということは、モデルが離れた位置からの影響を学習する必要がないことを意味します
・個々のトークンは意味を持ちます。
word-pieces形式はBERTが採用している手法で、全部の単語をトークン化すると処理が増えすぎてしまうため、辞書登録する単語を絞って(30,000)、登録済み単語はそのままトークン化するけれども、未登録単語は知っている単語に当てはめて強引にトークン化する手法です。例えば、「embeddings」という未登録単語はemと##bedと##dingと##sになります。##をつけてword-piecesである事を後続処理に知らせます。

テキストの断片化後の数はモデルのパフォーマンスとサイズ圧縮にとって非常に重要なパラメータであるため、「NLPモデルは全ての取り得る断片を明確に識別できる必要があるのだろうか?」という疑問が生じます。この質問に答えるために、各NLPタスクに固有の複雑さを調べました。

いくつかのNLPタスク(言語モデルリングや機械翻訳など)だけが断片化されたテキスト間の微妙な違いを知る必要があり、従って全ての取りうる断片化テキストを一意に識別できる必要があります。

対照的に、他の大部分のNLPタスクは、「断片化テキストの一部分」を知るだけで解決できます。

更に、断片化テキストのかなりの部分は間違いなくその記事専用のテキストであるため、タスクが必要とする「断片化テキストの一部分」はそれほど頻繁に出現しない可能性があります。「a」「an」「the」などは、多くのタスクにとって必ずしも重要ではありません。従って、ネットワークが特定のタスクに最も関連性の高い断片化テキストを決定できるようにすると、パフォーマンスが向上します。

更に、ネットワークはこれらの断片化テキストを一意に識別できる必要はありません。断片化テキストが属するクラスタ(グループ)を認識するだけで済みます。例えば、感情分類を行う際は「テキスト内の感情と強く相関している断片化テキスト」そのものではなく、「断片化テキストが属するクラスタが表現している感情」を知る必要があるだけです。

NLP固有タスクの複雑さ
低い 高い
感情分類(Sentiment classification)
感情検出(Emotion detection)
アダルトコンテンツの分類(Adult content classification)
固有名詞の認識(Named entity recognition)
検索意図の分類(Query intent classification)
有害なコンテンツの分類(Toxic content classification)
言語モデリング(Language Models)
機械翻訳(Machine Translation)

これらの洞察を活用して、PRADOは、単語の断片や文字ではなく単語から作成した断片化テキストのクラスタを学習するように設計されており、複雑さの低いNLPタスクで優れたパフォーマンスを実現できます。

単語単位の処理はより意味を持ちますが、ほとんどのタスクにとって最も関連する単語はそれほど多くはありません。関連する単語を一まとめにクラスタ化すると学習するために必要なモデルのパラメータ数ははるかに少なくなります。

3.pQRNN:射影とクラスタリングで一部のNLPタスクを効率化(1/2)関連リンク

1)ai.googleblog.com
Advancing NLP with Efficient Projection-Based Model Architectures

2)www.aclweb.org
PRADO: Projection Attention Networks for Document Classification On-Device(PDF)

3)blog.floydhub.com
Tokenizers: How machines read

4)github.com
models/research/sequence_projection/

タイトルとURLをコピーしました