多輸入多輸出多模態多任務多loss多分類多標籤分類

  • 2021 年 6 月 8 日
  • AI

這裡理清一下這幾個概念,有時候想著想著就繞進去了,因為很多時候某個網路結構可能是多種情況。

首先是最大的層面,多輸入對應單輸入,多輸出對應單輸出。

這是範圍最廣的說法,先說下多輸入,比如我們在對表格數據建模的時候,如果存在類別特徵則往往要構建一個多輸入模型,因為在nn中經常要用embedding層來先對類別特徵進行embedding然後和連續特徵concat在一起之後繼續構建後續的網路結構。

多輸出,即網路的輸出是有多個的,典型的例如序列標註問題,需要標註每一個詞的詞性。這裡需要區分向量輸出和多輸出,如果我們只要標註一個詞的詞性,則為向量輸出,向量輸出本質上屬於單輸出,就好像向量輸入(例如nn處理的輸入特徵都是連續特徵,則每一個樣本的連續特徵是一個向量輸入)本質上也是單輸入一樣,以詞性標註為例,假設詞性的數量是n,則如果僅僅對單個詞進行標註,則為向量輸出(單輸出),輸出一個維度為n的向量。如果是對句子中的m個單詞進行標註,則為多輸出,有m個n維的向量,多輸出的輸出數量為m,其中每個輸出都是一個n維的向量。

多模態是多輸入的一種複雜情況,簡單的多輸入例如類別和連續特徵,不能算是多模態,他們都屬於tabular類型的特徵,複雜的多輸入,例如輸入里有tabular特徵,也有文本有影像,為了更清晰的理清多模態和多目標(也叫多任務),這裡就不討論複雜的多模態+多目標的網路結構了,比如輸入是多模態,輸出又有多個任務的情況,這種就當作多模態和多任務的複合問題。

多模態研究的主要問題比如多個模態之間的對齊,多模態的特徵如何表徵,多模態的特徵融合產生有效的交互等等。這裡我就把多模態看作是多輸入對應單輸出的問題;

多任務是多輸出的一種複雜的情況,前面說的詞性標註的問題,雖然是多輸出,輸出m個詞的n個向量,但是對應的都是標註任務,即多個一樣的任務,所以還是一個單任務的問題,不過bert-based 類的研究問題就很多多任務的身影了,mlm+nsp,mtdnn這類的,多個輸出,每個輸出對應的任務不同,所以每個輸出對應的標籤也不一樣,從輸出對應的標籤的類型來看會比較好區分多任務問題。

多loss常常會和多任務一起出現,尤其是自己去寫多任務模型的時候。。。比如不同任務之間的loss的量綱不同,導致了模型的學習出現了「偏愛」的情況,這個時候可能需要用到多目標優化(多loss)的方法來緩解。

多標籤分類則是一個多輸出的形式,比如微信的大數據比賽的多標籤分類問題,每個標籤對應一個二分類的輸出結構。

多分類是一個單輸出的任務形式,最終的輸出是一個向量,向量的維度是類別的數量,如果多分類問題對應著不同模態的輸入,比如又有影像又有音頻,則成為一個多模態多分類的問題。

這些概念都不是互斥的,而是可以互相疊加組合成新的更加複雜的任務,更加棘手,更加難以解決,還沒什麼工具。。曰。。