多標籤學習綜述(A review on multi-label learning algorithms)
2014 TKDE(IEEE Transactions on Knowledge and Data Engineering)
張敏靈,周志華
簡單介紹
傳統監督學習主要是單標籤學習,而現實生活中目標樣本往往比較複雜,具有多個語義,含有多個標籤。本綜述主要介紹了多標籤學習的一些相關內容,包括相關定義,評價指標,8個多標籤學習算法,相關的其它任務。
論文大綱
- 相關定義:學習任務,三種策略
- 評價指標:基於樣本的評價指標,基於標籤的評價指標
- 學習算法:介紹了8個有代表性的算法,4個基於問題轉化的算法和4個基於算法改進的算法
- 相關任務:多實例學習,有序分類,多任務學習,數據流學習
相關定義
學習任務
X=Rd表示d維的輸入空間,Y={y1,y2,...,yq} 表示帶有q個可能標籤的標籤空間。
訓練集 D=(xi,yi)∣1≤i≤m ,m表示訓練集的大小,上標表示樣本序數,有時候會省略。
xi∈X ,是一個d維的向量。yi⊆Y ,是 Y 的一個標籤子集。
任務就是要學習一個多標籤分類器 h(⋅),預測 h(x)⊆Y作爲x的正確標籤集。
常見的做法是學習一個衡量x和y相關性的函數 f(x,yj),希望 f(x,yj1)>f(x,yj2) ,其中 yj1∈y,yj2∈/y。
h(x) 可以由 f(x) 衍生得到 h(x)={yj∣f(x,yj)>t(x),yj∈Y}。 t(x) 扮演閾值函數的角色,把標籤空間對分成相關的標籤集和不相關的標籤集。
閾值函數可以由訓練集產生,可以設爲常數。當 f(x,yj) 返回的是一個概率值時,閾值函數可設爲常數0.5。
三種策略
多標籤學習的主要難點在於輸出空間的爆炸增長,比如20個標籤,輸出空間就有 220,爲了應對指數複雜度的標籤空間,需要挖掘標籤之間的相關性。比方說,一個圖像被標註的標籤有熱帶雨林和足球,那麼它具有巴西標籤的可能性就很高。一個文檔被標註爲娛樂標籤,它就不太可能和政治相關。有效的挖掘標籤之間的相關性,是多標籤學習成功的關鍵。根據對相關性挖掘的強弱,可以把多標籤算法分爲三類。
- 一階策略:忽略和其它標籤的相關性,比如把多標籤分解成多個獨立的二分類問題(簡單高效)。
- 二階策略:考慮標籤之間的成對關聯,比如爲相關標籤和不相關標籤排序。
- 高階策略:考慮多個標籤之間的關聯,比如對每個標籤考慮所有其它標籤的影響(效果最優)。
評價指標
略
學習算法
可分爲兩類(具體算法如下圖所示)
- 問題轉換的方法:把多標籤問題轉爲其它學習場景,比如轉爲二分類,標籤排序,多分類
- 算法改編的方法:通過改編流行的學習算法去直接處理多標籤數據,比如改編懶學習,決策樹,核技巧。
Binary Relevance
把多個標籤分離開來,對於q個標籤,建立q個數據集和q個二分類器來進行預測。
這是最簡單最直接的方法,是其它先進的多標籤算法的基石。
沒有考慮標籤之間的關聯性,是一個一階策略(first-order)
Classifier Chains
首先按特定的順序(這個順序是自己決定的)對q個標籤排個序,得到yτ(1)≻yτ(2)≻…≻yτ(q)。對於第j個標籤yτ(j)構建一個二分類的數據集。
Dτ(j)={([xi,preτ(j)i],1{yτ(j)∈yi})∣1≤i≤m}where preτ(j)i=(1{yτ(1)∈yi},...,1{yτ(j−1)∈yi})T
第j個標籤構建的二分類數據集中,xi 會concat上前j-1個標籤值。
以這樣chain式的方法構建q個數據集,訓練q個分類器。
在預測階段,由於第j個分類器需要用到前j-1個分類器預測出的標籤集,所以需要順序調用這q個分類器來預測。
- 顯然算法的好壞會受到順序τ的影響,可以使用集成的方式,使用多個隨機序列,對每個隨機序列使用一部分的數據集進行訓練。
- 雖然該算法把問題分解成多個二分類,但由於它以隨機的方式考慮了多個標籤之間的關係,所以它是一個高階策略(high-order)。
- 該算法的一個缺點是丟失了平行計算的機會,因爲它需要鏈式調用來進行預測
Calibrated Label Ranking
算法的基本思想是把多標籤學習問題轉爲標籤排序問題,該算法通過“成對比較”來實現標籤間的排序。
對q個標籤,可以構建q(q-1)/2個標籤對,所以可以構建q(q-1)/2個數據集。
Djk={(xi,ψ(yi,yj,yk))∣ϕ(yi,yj)̸=ϕ(yi,yk),1≤i≤m}where ψ(yi,yj,yk))={+1,−1,if ϕ(yi,yj)=+1 and ϕ(yi,yk)=−1if ϕ(yi,yj)=−1 and ϕ(yi,yk)=+1ϕ(yi,yj)={+1−1if yj∈yielse
- 只有帶有不同相關性的兩個標籤 yj 和 yk 的樣本纔會被包含在數據集 Djk 中,用該數據集訓練一個分類器,當分類器返回大於0時,樣本屬於標籤 yj ,否則屬於標籤 yk。
- 可以看到,每個樣本 xi 會被包含在 ∣∣yi∣∣∣∣∣yi∣∣∣ 個分類器中。
- 在預測階段,根據分類器,每個樣本和某個標籤會產生一系列的投票,根據投票行爲來做出最終預測。
- 前面構造二分類器的方法使用one-vs-rest的方式,本算法使用one-vs-one,緩和類間不均衡的問題。
- 缺點在於複雜性高,構建的分類器個數爲 q(q−1)/2,表現爲二次增長。
- 考慮兩個標籤之間的關聯,是二階策略(second-order)
Random k-Labelsets
算法的基本思想是把多標籤學習問題轉爲多分類問題。把 2q 個可能的標籤集,映射成 2q 個自然數。
映射函數記爲 σY ,則原數據集變爲
DY+=(xi,σY(yi))∣1≤i≤m
所對應的新類別記爲
Γ(DY+)=σY(yi)∣1≤i≤m,∣∣Γ(DY+)∣∣≤min(m,2∣Y∣)
這樣來訓練一個多分類器,最後根據輸出的自然數映射回標籤集的算法稱爲LP(Label Powerest)算法,它有兩個主要的侷限性
- LP預測的標籤集是訓練集中已經出現的,它沒法泛化到未見過的標籤集
- 類別太大,低效
爲了克服LP的侷限性,Random k-Labelsets使用的LP分類器只訓練Y中的一個長度爲k的子集,然後集成大量的LP分類器來預測。
Yk 表示 Y 的所有的長度爲 k 的子集,Yk(l) 表示隨機取的一個長度爲 k 的子集,這樣就可以進行收縮樣本空間,得到如下樣本集和標籤集。
DYk(l)+={(xi,σYk(l)(yi∩Yk(l))) ∣ 1≤i≤m}
Γ(DYk(l)+)={σYk(l)(yi∩Yk(l)) ∣ 1≤i≤m}
更進一步,我們隨機取n個這樣的子集:
Yk(lr),1≤r≤n
來構造n個分類器做集成。
最後預測的時候需要計算兩個指標,一個爲標籤j能達到的最大投票數,一個爲實際投票數。
τ(x,yj)=r=1∑n1{yj∈Yk(lr)}
μ(x,yj)=r=1∑n1{yj∈σYk(l)−1(gYk(l)+(x))}
其中$ \sigma_{Yk(l)}{-1}(\cdot)表示從自然數映射回標籤集的函數,g^+(\cdot)$表示分類器學習到的函數。最後預測的時以0.5爲閾值進行預測,得到標籤集。
y={yj ∣ μ(x,yj) / τ(x,yj)>0.5 , 1≤j≤q}
因爲是隨機長度爲k的子集,考慮了多個標籤之間的相關性,所以是高階策略(high-order)。
Multi-Label k-Nearest Neighbor(ML-KNN)
用 N(x) 表示 x 的 k 個鄰居,則 Cj=∑(x,y)∈N(x)1yj∈y 表示樣本 x 的鄰居中帶有標籤yj的鄰居個數。 用 Hj 表示樣本 x 含有標籤 yj ,根據後驗概率最大化的規則,有
y={yj ∣ P(Hj ∣ Cj) / P(┐Hj ∣ Cj)>1 , 1≤j≤q}
根據貝葉斯規則,有
P(┐Hj ∣ Cj)P(Hj ∣ Cj)=P(┐H)⋅P(Cj ∣ Hj)P(H)⋅P(Cj ∣ Hj)
先驗概率 P(Hj),P(┐Hj) 可以通過訓練集計算得到,表示樣本帶有或不帶有標籤 yq 的概率
P(Hj)=s×2+ms+∑i=1m1{yj∈yi}P(┐Hj)=1−P(Hj) (1≤j≤q)
其中s是平滑因子,s爲1時則使用的是拉普拉斯平滑。
條件概率的計算需要用到兩個值
κj[r]=i=1∑m1{yj∈yi}⋅1{δj(xi)=r} (0≤r≤k)κ~j[r]=i=1∑m1{yj∈/yi}⋅1{δj(xi)=r} (0≤r≤k)where δj(xi)=(x∗,y∗)∈N(xi)∑1{yj∈y∗}
κj[r]表示“含有標籤 yj而且 r 個鄰居也含有標籤 yj 的”樣本的個數。
κ~j[r]表示“不含有標籤yj 但是 r 個鄰居含有 yj 的”樣本的個數。
根據這兩個值,可以計算相應的條件概率
P(Cj ∣ Hj)=s×(k+1)+∑r=0kκj[r]s+κj[Cj] (1≤j≤q,0≤Cj≤k)P(Cj ∣ ┐Hj)=s×(k+1)+∑r=0kκ~j[r]s+κ~j[Cj] (1≤j≤q,0≤Cj≤k)
這兩個條件概率表示的是,樣本帶有或不帶有標籤 yj 的條件下,它有 Cj 個鄰居帶有標籤yj 的概率。
- 由上述的條件概率,先驗概率則可以根據貝葉斯規則和後驗概率最大化,計算出樣本的標籤集
- 需要注意的是該方法不是KNN和獨立二分類的簡單結合,因爲算法中還使用了貝葉斯來推理鄰居信息
- 沒有考慮標籤之間的相關性,是一階策略(first-order)
Multi-Label Decision Tree(ML-DT)
使用決策樹的思想來處理多標籤數據,數據集T中,使用第l個特徵,劃分值爲 ϑ,計算出如下信息增益:
IG(T,l,ϑ)=MLEnt(T)−ρ∈{−,+}∑∣T∣∣Tρ∣⋅MLEnt(Tρ)where T−={(xi,yi) ∣ xil≤v,1≤i≤n}where T+={(xi,yi) ∣ xil>v,1≤i≤n}
遞歸地構建一顆決策樹,每次選取特徵和劃分值,使得上式的信息增益最大。
其中式子中的熵的公式可以按如下計算(爲了方便計算,假定標籤之間獨立)。
MLEnt(T)=j=1∑q−pjlog2pj−(1−pj)log2(1−pj)where pj=n∑i=1n1{yj∈yi}
- 新樣本到來時,向下遍歷決策樹的結點,找到葉子結點,若pj大於0.5則表示含有標籤yj
- 該算法不是決策樹和獨立二分類的簡單結合(如果是的話,應該構建q棵決策樹)
- 沒有考慮標籤的相關性,是一階策略(first-order)
Ranking Support Vector Machine(Rank-SVM)
使用最大間隔的思想來處理多標籤數據。
Rank-SVM考慮系統對相關標籤和不相關標籤的排序能力。
考慮最小化 xi 到每一個“相關-不相關”標籤對的超平面的距離,來得到間隔。
(xi,yi)∈Dmin(yj,yk)∈yi×yimin∥wj−wk∥⟨wj−wk,xi⟩+bj−bk
像SVM一樣對w和b進行縮放變換後可以對式子進行改寫,然後最大化間隔,再調換分子分母進行改寫,得到:
minwsubject to:max1≤j<k≤q∥wj−wk∥2⟨wj−wk,xi⟩+bj−bk≥1(1≤i≤m, (yi,yk)∈yi×yi)
爲了簡化,用sum操作來近似max操作
minwsubject to:∑j=1q∥wj∥2⟨wj−wk,xi⟩+bj−bk≥1(1≤i≤m, (yi,yk)∈yi×yi)
跟SVM一樣,爲了軟間隔最大化,引入鬆弛變量,得到下式:
minw,Ξsubject to:∑j=1q∥wj∥2+C∑i=1m∣yi∣∣yi∣1∑(yi,yk)∈yi×yi)ξijk⟨wj−wk,xi⟩+bj−bk≥1−ξijkξijk>0 (1≤i≤m, (yi,yk)∈yi×yi)其中Ξ={ξijk ∣ 1≤i≤m, (yi,yk)∈yi×yi}
- 跟SVM一樣,最終的式子是一個二次規劃問題,通常調用現有的包來解。
- 對於非線性問題則使用核技巧來解決。
- 由於定義了”相關-不相關“標籤對的超平面,這是個二階策略(second-order)
Collective Multi-Label Classifier(CML)
該算法的核心思想最大熵原則。用 (x,y) 表示任意的一個多標籤樣本,其中 y=(y1,y2,...,yq)∈{−1,+1}q 算法的任務等價於學習一個聯合概率分佈 p(x,y) ,用Hp(x,y) 表示給定概率分佈 p 時 (x,y) 的信息熵。最大熵原則認爲熵最大的模型是最好的模型。
maxpHp(x,y)subject to:Ep[fk(x,y)]=Fk (k∈K)
其中 fk(x,y) 是一個特徵函數,描述 x 和 y 之間的一個事實 k ,滿足這個事實時返回1,否則返回0。約束做的是希望這個分佈上,特徵函數的期望能夠等於一個我們希望的值 Fk,這個值通常通過訓練集來估計。解這個優化問題,會得到
p(y∣x)=ZΛ(x)1exp(k∈K∑λk⋅fk(x,y))
其中Λ=λk∣k∈K表示一系列的權重。ZΛ=∑yexp(∑k∈Kλk⋅fk(x,y))作爲規範化因子。假設有一個高斯先驗λk∼N(0,ε2),就可以通過最大化以下這個log後驗概率來求得參數Λ。
l(Λ∣D)=logP(D∣Λ)+logP(Λ)=log∏(x,y)∈Dp(y∣x)+logP(Λ)=log(∏(x,y)∈Dp(y∣x))−∑k∈K2ε2λ2
- 這是個凸函數,可以調用現成的無約束優化方法比如BFGS直接求解。求得參數就可以得到要學習的概率分佈 p(y∣x)。
- 對於一系列約束K,分爲兩個部分
- K1={(l,j)∣1≤l≤d,1≤j≤q},有 d⋅q 個約束,特徵函數爲
fk(x,y)=xl⋅1{yj==1}, k=(l,j)∈K1
- K2=(j1,j2,b1,b2)∣1≤j1<j2≤q,b1,b2∈−1,+1,有 4⋅(2q) 個約束,特徵函數爲
fk(x,y)=1{yj1=b1}⋅1{yj2=b2}, k=(j1,j2,b1,b2)∈K2
- 由於K約束中考慮了標籤對之間的關聯,該算法是個二階策略(second-order)。
相關任務
- 多實例學習(Multi-instance learning):每個樣本由多個實例和一個標籤組成,多個實例中至少一個爲正,認爲該樣本爲正。和多標籤學習的輸出空間模糊相反,多實例學習是輸入空間模糊。
- 有序分類(Ordinal classification):對於每個標籤,不再是簡單地判斷是還是否,而是改成一系列的等級排序,把yj={−1,+1}替換成yj={m1,m2,…,mk}, where m1<m2<…<mk
- 多任務學習(Multi-task learning):同時訓練多個任務,相關任務之間的訓練信息會幫助其它任務。比如目標定位既要識別有沒有目標(分類問題)又要定位出目標的位置(迴歸問題)。
- 數據流學習(Data streams classification):真實世界的目標是在線生成和實時產生的,如何處理這些數據就是數據流學習要做的事。一個關鍵的挑戰就是“概念漂移”(目標變量的統計特性隨着時間的推移以不可預見的方式變化),一般處理方式有:當一大批新數據到來時更新分類器;維持一個檢測器來警惕概念漂移;假定過去數據的影響會隨着時間而衰減。
總結
- 論文主要介紹了多標籤學習的一些概念定義,策略,評價指標,以及8個有代表性的算法,其中對多種評價指標和多個算法都做了清晰的分類和詳細的闡述。
- 儘管挖掘標籤關聯性的想法被應用到許多算法中,但是仍然沒有一個正式的機制。有研究表示多標籤之間的關聯可能是非對稱的(我對你的影響和你對我的影響是不同的),局部的(不同樣本之間的標籤相關性不同,很少關聯性是所有樣本都滿足的)。
- 但是不管怎麼說,充分理解和挖掘標籤之間的相關性,是多標籤學習的法寶。尤其是巨大輸出空間場景下。