Il est vrai que limiter votre propagation de gradient à 30 pas de temps l'empêchera d'apprendre tout ce qui est possible dans votre jeu de données. Cependant, cela dépend fortement de votre ensemble de données si cela l'empêchera d'apprendre des choses importantes sur les fonctionnalités de votre modèle!
Limiter le gradient pendant la formation revient plus à limiter la fenêtre sur laquelle votre modèle peut assimiler les fonctionnalités d'entrée et l'état caché avec une grande confiance. Parce qu'au moment du test, vous appliquez votre modèle à la séquence d'entrée entière, il pourra toujours incorporer des informations sur toutes les fonctions d'entrée dans son état masqué. Il pourrait ne pas savoir exactement comment conserver ces informations jusqu'à ce qu'il fasse sa prédiction finale pour la phrase, mais il pourrait y avoir des connexions (certes plus faibles) qu'il serait toujours en mesure d'établir.
Pensez d'abord à un exemple artificiel. Supposons que votre réseau génère un 1 s'il y a un 1 n'importe où dans son entrée et un 0 dans le cas contraire. Supposons que vous entraînez le réseau sur des séquences de longueur 20 et limitez ensuite le gradient à 10 étapes. Si le jeu de données d'apprentissage ne contient jamais de 1 dans les 10 dernières étapes d'une entrée, le réseau va avoir un problème avec les entrées de test de n'importe quelle configuration. Cependant, si l'ensemble d'apprentissage contient des exemples comme [1 0 0 ... 0 0 0] et d'autres comme [0 0 0 ... 1 0 0], le réseau pourra détecter la "présence de une fonction 1 "n'importe où dans son entrée.
Revenons ensuite à l'analyse des sentiments. Disons que pendant la formation, votre modèle rencontre une longue phrase négative comme "Je déteste ça parce que ... autour et autour" avec, disons, 50 mots dans les points de suspension. En limitant la propagation du gradient à 30 pas de temps, le modèle ne connectera pas le "Je déteste cela parce que" à l'étiquette de sortie, donc il ne reprendra pas "Je", "Je déteste" ou "ceci" de cette formation exemple. Mais il reprendra les mots qui se trouvent dans les 30 pas de temps à partir de la fin de la phrase. Si votre ensemble d'entraînement contient d'autres exemples qui contiennent ces mêmes mots, éventuellement avec «haine», il a alors une chance de détecter le lien entre «haine» et l'étiquette de sentiment négatif. De plus, si vous avez des exemples de formation plus courts, dites: "Nous détestons cela parce que c'est terrible!" votre modèle pourra alors connecter les fonctionnalités "haine" et "ceci" à l'étiquette cible. Si vous avez suffisamment de ces exemples de formation, le modèle devrait être en mesure d'apprendre la connexion efficacement.
Au moment du test, disons que vous présentez le modèle avec une autre longue phrase comme "Je déteste ça parce que ... sur le gecko!" L'entrée du modèle commencera par "Je déteste ça", qui sera passé dans l'état caché du modèle sous une forme ou une autre. Cet état caché est utilisé pour influencer les futurs états cachés du modèle, donc même s'il peut y avoir 50 mots avant la fin de la phrase, l'état caché de ces mots initiaux a une chance théorique d'influencer la sortie, même s'il n'a jamais été formé sur des échantillons qui contenaient une si grande distance entre le "Je déteste ça" et la fin de la phrase.