Papers › Neural Machine Translation by Jointly Learning to Align and Translate

Neural Machine Translation by Jointly Learning to Align and Translate

1 Sep 2014arXiv:1409.0473archive 2025-07-28

Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio

Neural machine translation is a recently proposed approach to machine translation. Unlike the traditional statistical machine translation, the neural machine translation aims at building a single neural network that can be jointly tuned to maximize the translation performance. The models proposed recently for neural machine translation often belong to a family of encoder-decoders and consists of an encoder that encodes a source sentence into a fixed-length vector from which a decoder generates a translation. In this paper, we conjecture that the use of a fixed-length vector is a bottleneck in improving the performance of this basic encoder-decoder architecture, and propose to extend this by allowing a model to automatically (soft-)search for parts of a source sentence that are relevant to predicting a target word, without having to form these parts as a hard segment explicitly. With this new approach, we achieve a translation performance comparable to the existing state-of-the-art phrase-based system on the task of English-to-French translation. Furthermore, qualitative analysis reveals that the (soft-)alignments found by the model agree well with our intuition.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1409.0473")

Code

Syntology Ran 21 of 44 code samples harvested from 11 repositories linked to this paper; 23 have no recorded run. Of those that ran: 4 ran · honoured contract; 17 ran · our draft was wrong.

By repository: community (archive-listed): 36 samples from 11 repositories, 13 ran; 8 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

124 repositories listed; official and paper-mentioned ones first.

A-Jacobson/minimal-nmt mentioned on GitHubpytorchMIT report
AMNAALMGLY/NLP mentioned on GitHub report
AaronCCWong/Show-Attend-and-Tell mentioned on GitHubpytorch report
Baichenjia/NMT-eager mentioned on GitHubtf report
Glaceon31/Document-Transformer mentioned on GitHubtfBSD-3-Clause report
Guillem96/pointer-nn-pytorch mentioned on GitHubpytorch report
IS5882/Open-CyKG mentioned on GitHubtf report
Izecson/saml-nmt mentioned on GitHubmxnet report
Izecson/sockeye-1.16.6 mentioned on GitHubtf report
Matthewdowney18/Yelp_attention mentioned on GitHubpytorch report
Matthewdowney18/Yelp_seq2seq mentioned on GitHubpytorch report
Nick-Zhao-Engr/Machine-Translation mentioned on GitHubpytorch report
Shubham-SK/TreeOverAte mentioned on GitHubpytorch report
Shubham-SK/kronos mentioned on GitHubpytorch report
SimonDele/Glossary mentioned on GitHub report
SwordYork/DCNMT mentioned on GitHubGPL-3.0 report
THUNLP-MT/THUMT mentioned on GitHubtf report
TellinaTool/nl2bash mentioned on GitHubtfGPL-3.0 report
YvesWang/Machine_Translation_NLP mentioned on GitHubpytorch report
ZurichNLP/sockeye mentioned on GitHubmxnetApache-2.0 report
aaaceo890/Attention mentioned on GitHubpytorch report
atpaino/deep-text-corrector mentioned on GitHubtfApache-2.0 report
awslabs/sockeye mentioned on GitHubmxnetApache-2.0 report
b-etienne/Seq2seq-PyTorch mentioned on GitHubpytorch report
bentrevett/pytorch-seq2seq mentioned on GitHubpytorchMIT report
brainsqueeze/text2vec mentioned on GitHubtf report
brightmart/text_classification mentioned on GitHubtf report
chao-ji/tf-seq2seq mentioned on GitHubtf report
cosmoquester/seq2seq mentioned on GitHubtf report
dalmia/Quora-Question-Pairs mentioned on GitHubtfGPL-3.0 report
datalogue/keras-attention mentioned on GitHubAGPL-3.0 report
dongdong199408/teachchatrobot mentioned on GitHubtf report
eske/seq2seq mentioned on GitHubtfApache-2.0 report
farizrahman4u/seq2seq mentioned on GitHub report
frozentoad9/Neural-Machine-Translation mentioned on GitHubpytorch report
gongrennengzhi/nmt mentioned on GitHub report
graykode/nlp-tutorial mentioned on GitHubpytorch report
hiun/learning-transformers mentioned on GitHubpytorch report
hnt4499/seq2seq mentioned on GitHubpytorch report
huulinhcvp/chatBot mentioned on GitHubpytorch report
insigh/THUMT mentioned on GitHubtf report
jiangnanhugo/seq2seq_cuda mentioned on GitHubtf report
jmyrberg/finnlem mentioned on GitHubtf report
la-serene/English-German-Translation-System mentioned on GitHubtfApache-2.0 report
labdac/charlacompling mentioned on GitHub report
laserene/English-German-Translation-System mentioned on GitHubtfApache-2.0 report
ldulcic/chatbot mentioned on GitHubpytorch report
leob03/Image_captionning mentioned on GitHubpytorchMIT report
lkfo415579/MT-Readling-List mentioned on GitHubtf report
lucylow/En_francais_si_vous_plait- mentioned on GitHubpytorchMIT report
mayurnewase/Translation mentioned on GitHub report
mike-a-yen/date-translation mentioned on GitHubpytorch report
mindspore-courses/DeepNLP-models-MindSpore mentioned on GitHubmindsporeApache-2.0 report
moon23k/Attention_Anchors mentioned on GitHubpytorch report
mp2893/gram mentioned on GitHubBSD-3-Clause report
neqkir/attention-mechanism mentioned on GitHubtf report
nrc-cnrc/sockeye-multisource mentioned on GitHubmxnet report
nvshrao/AlignAndTranslate mentioned on GitHub report
philipperemy/keras-attention-mechanism mentioned on GitHubtfApache-2.0 report
qq345736500/sarcasm mentioned on GitHubtfMIT report
sambit9238/deep_text_corrector mentioned on GitHubtfApache-2.0 report
schwartznir/AbstrEncap mentioned on GitHubtf report
sen-pai/audio-word2vec-pytorch mentioned on GitHubpytorch report
sh951011/Attention-Implementation mentioned on GitHubpytorchMIT report
shawnyxiao/textclassification-keras mentioned on GitHubtfMIT report
shlokmehrotra/Convocare mentioned on GitHubpytorch report
simonjisu/NMT mentioned on GitHubpytorchMIT report
slme1109/lyrics-generator mentioned on GitHubtf report
smisthzhu/attentionocr mentioned on GitHubtf report
sooftware/Attention-Implementation mentioned on GitHubpytorch report
sooftware/attentions mentioned on GitHubpytorchMIT report
sooftware/nlp-attentions mentioned on GitHubpytorchMIT report
sunnysinghnitb/text-corrector-software mentioned on GitHubtfApache-2.0 report
sunnysinghnitb/text_corrector_software mentioned on GitHubtfApache-2.0 report
thomlake/pytorch-attention mentioned on GitHubpytorchBSD-2-Clause report
thumt/THUMT mentioned on GitHubtf report
thunlp-mt/ckd mentioned on GitHubpytorch report
thunlp/TensorFlow-Summarization mentioned on GitHubtfMIT report
tree-park/kor-to-eng-translation mentioned on GitHubpytorch report
umeiko/mindspore-seq2seq mentioned on GitHubmindspore report
vGkatsis/Chat_Bot_DL mentioned on GitHubpytorch report
vikua/keras-attention-models mentioned on GitHub report
xhlulu/arxiv-assistant mentioned on GitHub report
xingniu/sockeye mentioned on GitHubmxnet report
yinghao1019/NLP_and_DL_practice mentioned on GitHubpytorch report
ykrmm/ICLR_2020 mentioned on GitHubpytorch report
ykrmm/TREMBA mentioned on GitHubpytorch report
yurayli/stanford-cs224n-sol mentioned on GitHubpytorch report
zhang0jhon/AttentionOCR mentioned on GitHubtf report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

44 samples harvested; 21 ran; 4 honoured the contract we drafted; 23 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · honoured contract
17ran · our draft was wrong
23unverified

Licence: 16 of the 44 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 11 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

LayerNorm YvesWang/Machine_Translation_NLP/Transformer/Decoder_Transformer.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 02408cb7d7b045d1 · report
Linear YvesWang/Machine_Translation_NLP/Transformer/Decoder_Transformer.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 10865bbb99140edd · report
create_dataset Baichenjia/NMT-eager/NMT-eager.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 6294101bad54572d · report
import_params thunlp-mt/ckd/thumt/bin/trainer.py community (archive-listed) ran · our draft was wrong BSD-3-Clause (permissive) · bb55d10bc8ee2bfa · report
load_clean_sentences prakhargurawa/Neural-Machine-Translation-Keras-Attention/translation_neural_network_model.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 5a7a5d4f405c2fd5 · report
max_length prakhargurawa/Neural-Machine-Translation-Keras-Attention/translation_neural_network_model.py community (archive-listed) ran · honoured contract MIT (permissive) · 64ded720acd0ec65 · report
parse_args thunlp-mt/ckd/thumt/bin/trainer.py community (archive-listed) ran · our draft was wrong BSD-3-Clause (permissive) · a172d56eb6c789db · report
parse_args THUNLP-MT/THUMT/thumt/bin/trainer.py community (archive-listed) ran · our draft was wrong BSD-3-Clause (permissive) · f83b8f1f177c138e · report
preprocess_chinese Baichenjia/NMT-eager/NMT-eager-chinese-eng.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · 72f8e5deeaf2f42f · report
preprocess_eng Baichenjia/NMT-eager/NMT-eager-chinese-eng.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · d23765a7df2697f9 · report
preprocess_sentence Baichenjia/NMT-eager/NMT-eager.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · cd26c09003aad137 · report
readLangs rileynwong/pytorch-seq2seq-joke2punchline/joke2punchline.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · bd123a7513397989 · report
sequence_mask YvesWang/Machine_Translation_NLP/AttentionRNN/Multilayers_Decoder.py community (archive-listed) ran · our draft was wrong fingerprinted no licence file found · pointer only · 149c4508c7494e2a · report
build_model mpavlovic/insincere-questions-classifier/build_model.py community (archive-listed) unverified MIT (permissive) · 01cec36b70027919 · report
build_model qq345736500/sarcasm/src/dl_models.py community (archive-listed) unverified MIT (permissive) · 15bace44de8d1350 · report
build_subj_dicionary qq345736500/sarcasm/src/data_processing.py community (archive-listed) unverified MIT (permissive) · f86db1bbd98544ec · report
clean_contractions mpavlovic/insincere-questions-classifier/utils.py community (archive-listed) unverified MIT (permissive) · f3a2acb3ab6ac45d · report
clean_special_chars mpavlovic/insincere-questions-classifier/submission_script.py community (archive-listed) unverified MIT (permissive) · d8dfaa83f9283e10 · report
corpus_map2id thunlp/TensorFlow-Summarization/src/data_util.py community (archive-listed) unverified MIT (permissive) · 7d8cac963599093c · report
correct_spelling mpavlovic/insincere-questions-classifier/submission_script.py community (archive-listed) unverified MIT (permissive) · b7993440578a50e0 · report
count_apparitions qq345736500/sarcasm/src/extract_baseline_features.py community (archive-listed) unverified MIT (permissive) · 24b6069ed695e8f3 · report
create_dict thunlp/TensorFlow-Summarization/src/data_util.py community (archive-listed) unverified MIT (permissive) · e0be7626138d362f · report
create_tokenizer prakhargurawa/Neural-Machine-Translation-Keras-German-English/translation_neural_network_model.py community (archive-listed) unverified MIT (permissive) · ad4e30338e48aa2c · report
get_pos_features qq345736500/sarcasm/src/extract_statistical_features.py community (archive-listed) unverified MIT (permissive) · 39685672f02e1067 · report
get_regularization_params qq345736500/sarcasm/src/classifiers.py community (archive-listed) unverified MIT (permissive) · 66e01a8e39117589 · report
get_sentiment_features qq345736500/sarcasm/src/extract_ml_features.py community (archive-listed) unverified MIT (permissive) · e5420ffff4171204 · report
load_clean_sentences prakhargurawa/Neural-Machine-Translation-Keras-German-English/translation_evaluation_model.py community (archive-listed) unverified MIT (permissive) · 250a25c8c9e1b730 · report
load_dict thunlp/TensorFlow-Summarization/src/data_util.py community (archive-listed) unverified MIT (permissive) · 6354c695b0345eaa · report
load_doc prakhargurawa/Neural-Machine-Translation-Keras-German-English/translation_preprocessing.py community (archive-listed) unverified MIT (permissive) · 23e3b013d3d7c0e3 · report
load_train_data mpavlovic/insincere-questions-classifier/submission_script.py community (archive-listed) unverified MIT (permissive) · 15021775e16a477e · report
max_len IpastorSan/seq2seq-with-attention-OCR-translation/model/attention_seq2seq/seq2seq_model_with_attention.py community (archive-listed) unverified Apache-2.0 (permissive) · f5175a54203ad8ea · report
open_data IpastorSan/seq2seq-with-attention-OCR-translation/model/ocr_text_recognition.py community (archive-listed) unverified Apache-2.0 (permissive) · 6d38556f066c4b14 · report
open_txt IpastorSan/seq2seq-with-attention-OCR-translation/model/text_preprocessing.py community (archive-listed) unverified Apache-2.0 (permissive) · cfd02a8466a5c1e8 · report
perform_function qq345736500/sarcasm/src/feature_analysis.py community (archive-listed) unverified MIT (permissive) · 5a84cd52152103ed · report
select_active_features qq345736500/sarcasm/src/feature_analysis.py community (archive-listed) unverified MIT (permissive) · ea2003016da44e7f · report
unicode_to_ascii IpastorSan/seq2seq-with-attention-OCR-translation/model/text_preprocessing.py community (archive-listed) unverified Apache-2.0 (permissive) · 65942c6c527f361b · report
batch identical code first harvested elsewhere ran · honoured contract fingerprinted licence of this copy not recorded · 796b2511367209ba · report
count_parameters identical code first harvested elsewhere ran · honoured contract licence of this copy not recorded · 0f26a596e83c5565 · report
normalize_string identical code first harvested elsewhere ran · our draft was wrong fingerprinted licence of this copy not recorded · 0249f2927bd76913 · report
parse_arguments identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 2a74b7a19b47b566 · report
readLangs identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · 52625852fa241e82 · report
sample identical code first harvested elsewhere ran · honoured contract fingerprinted licence of this copy not recorded · 8b887331144b7967 · report
unicode_to_ascii identical code first harvested elsewhere ran · our draft was wrong fingerprinted licence of this copy not recorded · 3b0218c9534b6ee7 · report
unicode_to_ascii identical code first harvested elsewhere ran · our draft was wrong fingerprinted licence of this copy not recorded · a2ec1e65cd2e8ef4 · report

Tasks

Bangla Spelling Error CorrectionDecoderDialogue GenerationMachine TranslationSentenceTranslation

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Bangla Spelling Error Correction DPCSpell-Bangla-SEC-Corpus GRUSeq2Seq Exact Match Accuracy 75.56 #4 of 4 Archive leaderboard report
Dialogue Generation Persona-Chat Seq2Seq + Attention Avg F1 16.18 #4 of 6 Archive leaderboard report
Machine Translation IWSLT2015 German-English Bi-GRU (MLE+SLE) BLEU score 28.53 #11 of 15 Archive leaderboard report
Machine Translation WMT2014 English-French RNN-search50* BLEU score 36.2 #44 of 57 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Tanh Activation

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections