単語ベースと文字ベースのテキスト生成RNNの違いは何ですか?


15

リカレントニューラルネットワークIとテキスト生成について読んでいる間、いくつかの例は、テキストを生成するために実施されたことに気づいた単語単位で、他の文字によって文字実際に理由を述べずに。

だから、テキストを予測するRNNモデルの違いは何ですごとの単語の基礎とテキスト予測するものにつき-CHAR根拠は?単語ベースのRNNには、より大きなコーパスサイズが必要ですか?文字ベースのRNNはより一般化されていますか?たぶん、唯一の違いは入力表現(ワンホットエンコーディング、単語埋め込み)でしょうか?テキスト生成に選択するものはどれですか?

回答:


15

これが最近学んだことです。

もちろん、テキスト生成RNNについて話すときは、RNN言語モデルについて話します。尋ねるときの単語/文字ベースのテキスト生成のRNN、我々はについて尋ねている単語/文字ベースの RNNの言語モデル(LM)。

単語ベースの LM は、文字ベースの LM よりも高い精度低い計算コストを示します。

また、Longer Short Term Memory(LSTM)のリカレントネットワークは単語ベースの入力でより適切に機能するため、このパフォーマンスの低下は、キャラクターレベルモデルがより長い短期メモリをキャプチャするのが難しいためではありません

これは、charベースのRNN LMが長期的な依存関係を正常にモデル化するために、より大きな隠れ層を必要とするためです。これは、計算コストが高くなることを意味します。

したがって、我々はそれを言うことができます

1 根本的な違いの間に単語レベル文字レベルのモデルがであるパラメータの数 RNNは、トレーニングとテスト中にアクセスする必要があります。RNNの入力層と出力層が小さいほど、完全に接続された隠れ層である必要が大きくなり、モデルのトレーニングが高価になります。

ただし、charベースの RNN LMは、Finish、Turkish、Russianなどの豊富な形態の言語をよりよくモデル化します。単語ベースの RNN LMを使用してそのような言語をモデル化することは、可能であれば困難であり、推奨されません。

上記の分析は、charベースの RNN によって生成された出力テキストを見るときに特に意味があります。

投資家の驚きは、資金を調達するつもりはなかった。私は、すべてがすぐに興味深いものである会社ではありません。同じプログラマーを降りる必要はありません。

13文字のウィンドウを持つ単純な文字ベースの最尤LMはこれを実現しますが:

そして、彼女が多くの固体レンガを作ったとき。彼はそれらを山に積み上げ、彼女の足を踏みつけました。医者は彼をコウモリと診断しました。少女と彼氏は彼女に尋ねた。

もちろん私の例を(実際には、ほとんどのML LM例は、より良い任意のRNN生成されたテキストよりも見えた私がこれまで読んだ)桜は-拾い、この小さなML LMは、シンプルなコーパスで訓練を受けましたが、あなたのアイデアを得る:簡単な条件付き確率は良く生成しますはるかに複雑な文字ベースの RNN よりもテキスト。

文字ベースの RNN LMは、幅広い言語の文法的に正しいシーケンスを模倣し、より大きな隠れ層とより高い計算コストを必要としますが、単語ベースの RNN LMはより高速にトレーニングし、より一貫性のあるテキストを生成しますが、これらの生成されたテキストでさえ実際の意味を成していません。


1
素晴らしいコメント。いくつかの問題では、計算上の懸念に関係なく、どちらか一方がより理にかなっている可能性があることを付け加えてください。たとえば、目標が単語ベクトルを調べて単語間の関係を見つけることである場合、または単語トピックに基づいてテキストを生成する場合は、単語ベースのRNNを使用する必要があります。そして、逆に、charベースのRNNを使用する方法が問題になる可能性があります。また、ユーザーが何をしようとしているかにも依存します。
リカルドクルーズ

私はあなたの最後のコメントを理解していませんでした:「CharベースのRNN LM(...)は、実際の意味を理解することになると不十分です。」WordベースのRNNも理にかなっているのを見たことがない。なぜここでcharベースのモデルを分離したのですか?
リカルドクルーズ

あいまいな結末を更新しました。
ミネラル

素晴らしい答えです!実際、誰かが簡単に追加できるのは、関係するタスク、データセットのサイズ、言語、実行する前処理のレベルに大きく依存するということです。例えば、より豊かな形態言語を処理し、語彙の(OOV)単語を管理するために、あなたはまた、見出し語処理とワードモデルを使用することができますposがタグ付け、およびなどの接頭辞、接尾辞を追加
クロードCOULOMBE

5

10億語の言語モデリングに関する素晴らしい記事があります。以下に抜粋を示します。

単語レベルのモデルには、文字レベルのモデルよりも重要な利点があります。
例として次のシーケンスを取り上げます(ロバートA.ハインラインからの引用):

早起きは進歩していません。それは怠menな男性が何かをするもっと簡単な方法を見つけようとすることによって作られました。

トークン化後、単語レベルのモデルでは、このシーケンスに22個のトークンが含まれていると見なされる場合があります。一方、キャラクターレベルでは、このシーケンスに102個のトークンが含まれていると見なされます。この長いシーケンスは、より多くの時間ステップでより多くのトークン間の依存関係を考慮する必要があるため、文字モデルのタスクを単語モデルよりも難しくします。文字言語モデルの別の問題は、構文、セマンティクスなどに加えてスペルを学習する必要があることです。いずれの場合でも、通常、単語言語モデルは文字モデルよりもエラーが少なくなります

単語言語モデルに対するキャラクターの主な利点は、語彙が非常に少ないことです。たとえば、GBWデータセットには、800,000ワードと比較して約800文字が含まれます(低頻度トークンのプルーニング後)。実際には、これは、文字モデルが必要とするメモリが少なく、対応する単語モデルよりも高速に推論されることを意味します。別の利点は、前処理ステップとしてトークン化を必要としないことです。


1

私の意見では、キャラクターベースのRNNもパフォーマンスは向上しますが、単語ベースのモデルやキャラクターベースのモデルがはるかに長い期間訓練する必要があるよりもはるかに多くのデータが必要です。これは試行錯誤であり、データと利用可能な計算能力のトレードオフのようなものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.