{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/mogrifier-lstm","title":"Mogrifier LSTM","arxiv_id":"1909.01792","date":"2019-09-04","proceeding":"ICLR 2020 1","authors":["Gábor Melis","Tomáš Kočiský","Phil Blunsom"],"abstract":"Many advances in Natural Language Processing have been based upon more expressive models for how inputs interact with the context in which they occur. Recurrent networks, which have enjoyed a modicum of success, still lack the generalization and systematicity ultimately required for modelling language. In this work, we propose an extension to the venerable Long Short-Term Memory in the form of mutual gating of the current input and the previous output. This mechanism affords the modelling of a richer space of interactions between inputs and their context. Equivalently, our model can be viewed as making the transition function given by the LSTM context-dependent. Experiments demonstrate markedly improved generalization on language modelling in the range of 3-4 perplexity points on Penn Treebank and Wikitext-2, and 0.01-0.05 bpc on four character-based datasets. We establish a new state of the art on all datasets with the exception of Enwik8, where we close a large gap between the LSTM and Transformer models.","url_abs":"https://arxiv.org/abs/1909.01792v2","url_pdf":"https://arxiv.org/pdf/1909.01792v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"mogrifier-lstm","repo_url":"https://github.com/deepmind/lamb","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"mogrifier-lstm","repo_url":"https://github.com/RMichaelSwan/MogrifierLSTM","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"mogrifier-lstm","repo_url":"https://github.com/microcoder-py/mogrifier-lstm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"mogrifier-lstm","method_name":"Mogrifier LSTM"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[{"slug":"mogrifier-lstm","name":"Mogrifier LSTM","full_name":"Mogrifier LSTM"}],"results":[{"leaderboard":"/sota/language-modelling-on-hutter-prize","task":"Language Modelling","dataset":"Hutter Prize","model":"Mogrifier LSTM + dynamic eval","rank_in_archive_order":3,"of":18,"metrics":{"Bit per Character (BPC)":"0.988","Number of params":"96M"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-hutter-prize","task":"Language Modelling","dataset":"Hutter Prize","model":"Mogrifier LSTM","rank_in_archive_order":12,"of":18,"metrics":{"Bit per Character (BPC)":"1.122","Number of params":"96M"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-penn-treebank-character","task":"Language Modelling","dataset":"Penn Treebank (Character Level)","model":"Mogrifier LSTM + dynamic eval","rank_in_archive_order":1,"of":20,"metrics":{"Bit per Character (BPC)":"1.083","Number of params":"24M"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-penn-treebank-character","task":"Language Modelling","dataset":"Penn Treebank (Character Level)","model":"Mogrifier LSTM","rank_in_archive_order":2,"of":20,"metrics":{"Bit per Character (BPC)":"1.120","Number of params":"24M"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-penn-treebank-word","task":"Language Modelling","dataset":"Penn Treebank (Word Level)","model":"Mogrifier LSTM + dynamic eval","rank_in_archive_order":4,"of":43,"metrics":{"Params":"24M","Test perplexity":"44.9","Validation perplexity":"44.8"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-wikitext-2","task":"Language Modelling","dataset":"WikiText-2","model":"Mogrifier LSTM + dynamic eval","rank_in_archive_order":11,"of":38,"metrics":{"Number of params":"35M","Test perplexity":"38.6","Validation perplexity":"40.2"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-wikitext-2","task":"Language Modelling","dataset":"WikiText-2","model":"Mogrifier LSTM","rank_in_archive_order":22,"of":38,"metrics":{"Number of params":"35M","Test perplexity":"55.1","Validation perplexity":"57.3"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-enwiki8","task":"Language Modelling","dataset":"enwik8","model":"Mogrifier LSTM","rank_in_archive_order":30,"of":42,"metrics":{"Bit per Character (BPC)":"1.146","Number of params":"48M"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-enwiki8","task":"Language Modelling","dataset":"enwik8","model":"LSTM","rank_in_archive_order":31,"of":42,"metrics":{"Bit per Character (BPC)":"1.195","Number of params":"48M"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1909.01792","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}