時光回溯至2018年,自然語言處理(Natural Language Processing, NLP)領域開始有了驚人的進展。像OpenAI GPT和BERT這樣的大規模預訓練語言模型在解決各種不同的任務上取得了優異的表現。這種使用通用大模型架構想法類似於ImageNet分類預訓練如何幫助許多與電腦視覺相關的任務,例如影像辨識與分類。比視覺分類預訓練更好的是,大規模預訓練語言模型這種方法不需要標記資料來進行預訓練,因此能夠允許在電腦計算能力的極限內進行更大規模的訓練實驗。
另一方面NLP的訓練是基於詞語的存在性而非固定順序上下文。因此在兩個句子"我很享受這種東西文化融合的活動"和"我弄不清楚這種東西的用法"中,兩個"東西"詞語代表完全不同的意思,但它們仍然會共享相同的詞嵌入向量。儘管如此,詞嵌入在早期的解決方案中用是將它們用作現有特定任務模型的額外特徵,這樣的作法改進的程度是有限的。在這篇文章中,我們將透過幾種現存的方法,討論這些方法如何使嵌入依賴於上下文,並使它們更容易地以通用形式應用於各種任務。
OpenAI GPT,全稱為生成式預訓練Transformer(Generative Pre-training Transformer)(Radford等人,2018年),通過在大量語料庫上進行訓練,將無監督語言模型擴展到更大規模。GPT是一個多層Transformer解碼器,對所有終端任務微調相同的基礎模型。
BERT,全稱為來自Transformers的雙向編碼器表示(Bidirectional Encoder Representations from Transformers)(Devlin等人,2019年),是GPT的衍生演算法,其在通用資料集上訓練一個大型語言模型,然後在特定任務上進行微調,而無需定制網絡架構。與GPT相比,BERT最大的區別和改進是使訓練變為雙向的,模型學習預測左右兩側的上下文。該論文模型的雙向性是一個重要的新貢獻。
CoVe(McCann等人,2017年),全稱為上下文詞向量(Contextual Word Vectors),是一種由注意力機制的序列到序列機器翻譯模型中的編碼器學習的詞嵌入。與這裡介紹的傳統詞嵌入不同,CoVe詞表示是整個輸入句子的函數。
這裡的神經機器翻譯 (Neural Machine Translation, NMT) 模型由一個標準的、雙層、雙向LSTM編碼器和一個帶注意力機制的雙層單向LSTM解碼器組成。它在英文-德文翻譯任務上進行預訓練。編碼器學習和優化英語詞的嵌入向量,以便將它們翻譯成德語。基於編碼器應該在將詞轉換為另一種語言之前捕捉高級語義和語法含義,編碼器的輸出被用來為各種語言應用任務提供上下文的詞嵌入。