È vero che limitare la propagazione del gradiente a 30 passi temporali gli impedirà di apprendere tutto il possibile nel set di dati. Tuttavia, dipende fortemente dal tuo set di dati se ciò gli impedirà di apprendere cose importanti sulle funzionalità del tuo modello!
Limitare il gradiente durante l'allenamento è più come limitare la finestra su cui il modello può assimilare le funzionalità di input e lo stato nascosto con elevata sicurezza. Poiché al momento del test si applica il modello all'intera sequenza di input, sarà comunque in grado di incorporare informazioni su tutte le funzionalità di input nel suo stato nascosto. Potrebbe non sapere esattamente come conservare tali informazioni fino a quando non farà la sua previsione finale per la frase, ma potrebbero esserci alcune connessioni (sicuramente più deboli) che sarebbe ancora in grado di stabilire.
Pensa prima a un esempio inventato. Supponiamo che la tua rete generi un 1 se c'è un 1 ovunque nel suo input e uno 0 altrimenti. Supponi di allenare la rete su sequenze di lunghezza 20 e di limitare poi il gradiente a 10 passi. Se il set di dati di addestramento non contiene mai un 1 negli ultimi 10 passaggi di un input, la rete avrà un problema con gli input di test di qualsiasi configurazione. Tuttavia, se il set di formazione ha alcuni esempi come [1 0 0 ... 0 0 0] e altri come [0 0 0 ... 1 0 0], la rete sarà in grado di rilevare la "presenza di una funzione da 1 "ovunque nel suo input.
Torna quindi all'analisi del sentiment. Diciamo che durante l'allenamento il tuo modello incontra una lunga frase negativa come "Odio questo perché ... intorno e intorno" con, diciamo, 50 parole tra i puntini di sospensione. Limitando la propagazione del gradiente a 30 fasi temporali, il modello non collegherà "Lo odio perché" all'etichetta di output, quindi non prenderà in considerazione "I", "odio" o "questo" da questo addestramento esempio. Ma riprenderà le parole che si trovano entro 30 intervalli di tempo dalla fine della frase. Se il tuo set di allenamento contiene altri esempi che contengono quelle stesse parole, possibilmente insieme a "odio", allora ha la possibilità di raccogliere il legame tra "odio" e l'etichetta del sentimento negativo. Inoltre, se hai esempi di allenamento più brevi, dì "Odiamo questo perché è terribile!" quindi il tuo modello sarà in grado di collegare le caratteristiche "odio" e "questo" all'etichetta di destinazione. Se hai abbastanza di questi esempi di addestramento, il modello dovrebbe essere in grado di apprendere in modo efficace la connessione.
Al momento del test, supponiamo che tu presenti al modello un'altra lunga frase come "Lo odio perché ... sul geco!" L'input del modello inizierà con "Lo odio", che verrà passato in qualche modo allo stato nascosto del modello. Questo stato nascosto viene utilizzato per influenzare i futuri stati nascosti del modello, quindi anche se potrebbero esserci 50 parole prima della fine della frase, lo stato nascosto di quelle parole iniziali ha una probabilità teorica di influenzare l'output, anche se non è mai stato addestrato su campioni che contenevano una distanza così grande tra "Odio questo" e la fine della frase.