論文「Semi-supervised sequence modeling with cross-view training」是Google Quoc V.Le組的一個工作,提出了一種半監督的方法來提升sequence modeling的性能。 (本文涉及的「知識點」較多,多個sequence modeling 的task,多個經典的以及state-of-the-art的半監督方法,比如self-training, consistency regularization等,還有multi-view learning, multi-task learning, 文章最後附錄甚至還在image的task上對所提方法進行了評估分析,沉甸甸的工作量啊!)
首先,在當下NLP+Deep Learning背景下,處理大多數NLP問題的常規路徑是,先用unsupervised的方法(word2vec, ELMo)來學習一個embedding,然後基於這個embedding,再用supervised的方法來針對不同的問題建模。作者認為(motivation),該路徑之所以有效,是因為unsupervised部分利用了大量unlabeled data,而後面supervised的部分,卻僅使用了labeled data,所以限制了model的泛化能力。因此,作者提出了一種Cross-View Training(CVT)的半監督方法。
對於Sequence modeling task,Encoder-Decoder是一個通用的框架。Encoder部分,作者採用的是一個two-layer CNN-BiLSTM結構(即,先採用Char-CNN對character embedding抽取出char repersentation,再將其與word embedding相拼接作為two-layer BiLSTM的輸入(論文中寫的求和?)),encoder的輸出是
其中, 表示第一層BiLSTM中forward direction的第 個hidden state,相應的 表示backward direction的hidden state。Decoder部分需依據任務的不同而單獨設計。而CVT就主要在Decoder端體現。通過對傳入Decoder的feature representation進行不同方式的限制來構造多個view的效果。然後,以不受限Decoder的輸出與每個受限Decoder的輸出的差異度量作為監督信號,進行端到端的訓練。期望受限Decoder即使在feature representation信息不充分的情況下,也能輸出較好的結果,同時,由於整個model的Encoder部分是共享的,在降低該部分loss的時候,也就相應的促使Encoder抽取出更好的feature representation以及提高不受限Decoder的判別能力。 另外,由於這裡的監督信號不需要label信息的參與,所以,可以利用大量unlabeled data來對model進行有效泛化。
關於CVT的思想,文章在introduction部分詳述了演化過程:首先,如何利用unlabel data呢,作者想到self-training,但是self-training有tautological的問題,即在labeled data上train好的model,先給unlabel data預測一個pseudo-label,並將其加入到label dataset中re-train model。有可能預測的pseudo-label就是錯的,再訓練反而對錯誤的信號更confident了。因此,作者想到Deep semi-supervised中的consistency regularization方法(在input加擾動 or 利用NN的隨機特性),但是對於NLP問題,不太好給離散的input加擾動。於是,作者從multi-view learning中找到靈感,巧妙的構造了多個view來利用unlabel data。
文章中以named entity recognition為例,展示了CVT的整體思想。