勾配の伝播を30タイムステップに制限すると、データセットで可能なすべてを学習できなくなるのは事実です。ただし、データセットによって、モデルの機能に関する重要な情報を学習できなくなるかどうかに大きく依存します!
トレーニング中に勾配を制限することは、モデルが高い信頼性で入力フィーチャと非表示状態を吸収できるウィンドウを制限することに似ています。テスト時にモデルを入力シーケンス全体に適用するため、すべての入力フィーチャに関する情報を非表示状態に組み込むことができます。文の最終的な予測を行うまで、その情報を保存する方法を正確に知らないかもしれませんが、いくつかの(明らかに弱い)接続がまだある可能性があります。
最初に不自然な例について考えてください。ネットワークの入力に1がある場合は1を生成し、それ以外の場合は0を生成するとします。長さ20のシーケンスでネットワークをトレーニングし、勾配を10ステップに制限するとします。トレーニングデータセットの入力の最後の10ステップに1が含まれていない場合、ネットワークはあらゆる構成のテスト入力に問題が発生します。ただし、トレーニングセットに[1 0 0 ... 0 0 0]などの例と[0 0 0 ... 1 0 0]などの他の例がある場合、ネットワークは「入力のどこにでも1インチフィーチャ。
センチメント分析に戻ります。トレーニング中に、たとえば50語の省略記号を含む「...前後に」というような長い否定文にモデルが遭遇したとします。勾配伝播を30タイムステップに制限することで、モデルは「I hate this because」を出力ラベルに接続しないため、このトレーニングから「I」、「hate」、または「this」を取得しません。例。しかし、文の終わりから30タイムステップ以内の単語を拾います。トレーニングセットに同じ単語を含む他の例が含まれている場合、おそらく「憎しみ」とともに、「憎しみ」と否定的な感情ラベルの間のリンクを拾う可能性があります。また、短いトレーニング例がある場合は、「ひどいのでこれが嫌いです!」と言います。モデルは「hate」および「this」機能をターゲットラベルに接続できます。これらのトレーニング例が十分にある場合、モデルは接続を効果的に学習できるはずです。
テスト時に、「ヤモリのせいで...これが嫌いだ!」のような別の長い文をモデルに提示するとしましょう。モデルの入力は、「私はこれが嫌いです」で始まり、何らかの形でモデルの隠された状態に渡されます。この隠された状態は、モデルの将来の隠された状態に影響を与えるために使用されるため、文の終わりの前に50個の単語がある場合でも、それらの最初の単語からの隠された状態は、たとえ出力されなかったとしても、出力に影響を与える可能性があります「これが嫌い」と文末までの距離が非常に長いサンプルについてトレーニングしました。