論文閱讀 (二):Multi-instance learning with key instance shift (2017)

前言

  這幾天讀ISK那篇文章把人傷着了,o( ̄ヘ ̄o#)
鴨梨山大
  先找一篇看起來要簡單些的論文看看,論文地址如下:
  https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/ijcai17miki.pdf

摘要

  熟悉的話語。。周老師這篇文章屬於標準多示例,即一個包中的實例至少有一個擁有某類標籤,則該包屬於該類。特別的,對於二分類數據集,如果一個包包含至少一個正實例,則該包爲正,反之爲負。這個正實例也叫做關鍵 (key)實例,畢竟它叫“啥”,這個包就得叫“啥”。以往的大佬們大都假設訓練數據和測試數據同一分佈,現實裏可不一定行哦ㄟ( ▔, ▔ )ㄏ,所有,“我們”就來解決關鍵實例在測試與訓練階段的分佈變化問題。取個名字,就叫關鍵實例位移 (key instance shift)問題吧,注意instance沒有加s,初步推測每個包最多一個。整個問題流程的名字就叫MIKI,是一種基於嵌套 (embedding)的方法。具體的步驟如下:

  1. 將包轉換爲向量,這個就和ISK的解決方式類似了,即將多示例轉換爲單示例問題解決,提出了一種加權多類模型 (weighted multi-class model),以選擇具有高positiveness score(積極性?正面性?暫且叫“正分”吧)的實例作爲實例原型;
  2. 對轉換後的包向量 (bag vectors)重要性權重 (importance weights)進行學習,再將原型實例權重融合,以縮小測試、訓練分佈之間的差距;
  3. 實驗證明“我們”牛逼。

1 引入

  部分要點摘要中已經提及,這裏只說明新增的部分:

  1. 包標籤已知,實例標籤未知。
  2. 在不同時間、地點或者標記代價下訓練集和測試集的收集會出現分佈差異。以文本數據 (text categorization)爲例:
    2.1 訓練/測試集收集於2012/2016,年,需要判斷文字是否與sport有關;
    2.2 與訓練數據相比,測試數據中關於“Kobe Bryant”的文字可能更少,而關於“Stephen Curry”的文字更多;
    2.3 包含“Kobe Bryant”以及“Stephen Curry”的字段可以被視爲關鍵實例;
    2.4 這種情況下,因爲收集時間的差異,訓練、測試階段的關鍵實例分佈就會有差異。
  3. MIKI採用基於manner的嵌入方法1,通過嵌入將包轉換爲實例。
  4. 通過對包級別 (bag-level)信合和關鍵實例位移信息編碼,以此選擇原型實例。

2 MIL of key instance shift

2.1 問題陳述和符號

  以下給出符號表:

符號 意義
X=Rd\mathcal{X = \mathbb{R}^d} 實例空間
Y={1,+1}\mathcal{Y} = \{ -1, +1 \} 標籤空間
Btr={(X1tr,y1tr),,(Xitr,yitr),,(Xmtr,ymtr)}\mathcal{B}_{tr} =\{ (X^{tr}_1, y^{tr}_1), \dots, (X^{tr}_i, y^{tr}_i), \dots, (X^{tr}_m, y^{tr}_m)\} 給定大小mm的訓練集
mm 數據集大小
Xi={xi1,,xij,,xini}X_i = \{ x_{i1}, \dots, x_{ij}, \dots, x_{in_i} \}, where xijXx_{ij} \in \mathcal{X}
nin_i 包大小
Bte={X1te,,Xnte}\mathcal{B}_{te} = \{ {X_1^{te}}, \dots, X_n^{te} \} 給定大小nn的測試集
P()P ( \cdot) 分佈
xx_* 關鍵實例
D={x1tr,xptr,x1te,xqte}\mathcal{D} = \{ x_{*1}^{tr}, \dots x_{*p}^{tr}, x_{*1}^{te}, \dots x_{*q}^{te} \} 實例原型
Vtr\mathcal{V}_{tr} 訓練包映射向量
Vte\mathcal{V}_{te} 測試包映射向量
W={W1,,Wm}W = \{ W_1, \dots, W_m \} 訓練包權重
{w11,,w1n1,,wm1,,wmnm}\{ w_{11}, \dots, w_{1n_1}, \dots, w_{m1}, \dots, w_{mn_m} \} 訓練實例權重
M\mathcal{M} 最終模型

  在關鍵實例位移問題中,訓練和測試階段的關鍵實例分佈是不同的,即P(xtr)P(xte)P (x_*^{tr}) \neq P (x_*^{te})。周老師這篇文章便着力於transductive setting (轉換?映射?):
  給定Btr\mathcal{B}_{tr}Bte\mathcal{B}_{te},滿足P(xtr)P(xte)P (x_*^{tr}) \neq P (x_*^{te}),目標是習得這種映射ff2XY2^{\mathcal{X}} \rightarrow \mathcal{Y},使其能夠在測試集上表現good。

2.2 MIKI

  MIKI的步驟如圖1:

  1. 假設正實例屬於不同的子概念 (sub-concepts),關鍵實例位移可以落在其中任何一個上;
  2. 假設子概念和負概念一共KK個,建立K+1K + 1類模型將其區分;
  3. 如果一個實例屬於任意一個子概念,即“得分高”,則有很高的概率被認爲是關鍵實例候選。因此,不同的位移 (shift)信息將會被捕獲;
  4. 爲降低關鍵實例位移的影響,引入實例權重來平衡不同分佈,因此關鍵實例選擇時就能包含更多的關鍵實例以及關鍵實例位移的信息;
  5. 獲得包映射向量後,通過權重學習來減小訓練和測試分佈之間的差距;
  6. 如果一個實例很重要,其所屬的包也應該被評估,再進一步將原型實例的權重合併到轉換後訓練包向量的權重中;
  7. 最終的模型將從訓練包向量權重和訓練包之間習得。

在這裏插入圖片描述

圖1:MIKI流程圖

2.2.1 實例原型學習

  在實例原型學習階段,使用迭代來建立多類模型並優化並選擇的關鍵實例候選,即算法1
  具體的,在迭代中,對KK個正示例子概念與負概念訓練權重K+1K + 1類模型MD\mathcal{M}_D。如果一個屬於任意子概念的實例具有高得分,將被看做高正性 (high positiveness),其被定義爲實例xijx_{ij}屬於第kk類的概率,即Prijk{Pr}_{ij}^k。相應的,每個實例xijx_{ij}的正分計算如下:
Sij=maxk{1,,K}(PrijkPrij0).(1) S_{ij} = \max_{k \in \{ 1, \dots, K \}} ({Pr}_{ij}^k - {Pr}_{ij}^0). \tag{1}
  算法2展示了模型MD\mathcal{M}_D學習的細節:
  1)使用kMeans對正包中的所有實例進行聚類,並初始化他們的標籤爲所屬簇數,例如聚類成了2簇,那麼一簇標籤爲0,另一簇則爲1;負包中所有實例的標籤設爲0;
  2)帶有權重的實例與相應標籤用於訓練多類SVM模型M\mathcal{M}
  3)給定一個實例xijx_{ij},模型將輸出Prijk{Pr}_{ij}^k
  4)每一個正包的標籤將更新爲:
yij=arg maxk{0,1,,K}Prijk(2) y_{ij} = \argmax_{k \in \{0, 1, \dots, K \}} {Pr}_{ij}^k \tag{2}

  伸個懶腰ヾ(´∀`o)+ヾ(´ ・ω・`)ノ
在這裏插入圖片描述
  5)言歸正傳,負包的標籤將不會改變。對於每一個正包XiX_i,如果其中所有的實例標籤爲負,則其中正分最高的實例 xipx_{ip}的標籤將會調整爲:
yip=arg maxk{1,,K}Pripk(3) y_{ip} = \argmax_{k \in \{1, \dots, K \}} {Pr}_{ip}^k \tag{3}   這將保證每個正包中至少擁有一個正實例。這個過程將一直進行,知道沒有標籤改變或者達到最大迭代次數,最終輸出模型MD\mathcal{M}_D

  一旦獲得模型MD\mathcal{M}_D,就能爲每個實例計算“正分”SijS_{ij}以及選取關鍵實例候選。
  特別的,令Sθtr(Sθte)S_{\theta}^{tr} (S_{\theta}^{te} )表示具有最高得分的nθtrnθten_\theta^{tr} (n_\theta^{te})個訓練 (測試)實例,然後將所有實例按照如下劃分爲關鍵實例候選和負實例候選:
Cptr={xijSijSθtr,xijBtr},Cntr={xijSij<Sθtr,xijBtr},Cpte={xijSijSθte,xijBte},Cnte={xijSij<Sθte,xijBte}.(4) \begin{matrix} C_p^{tr} = \big\{ x_{ij} | S_{ij} \geq S_{\theta}^{tr}, x_{ij} \in \mathcal{B}_{tr} \},\\ C_n^{tr} = \{ x_{ij} | S_{ij} < S_{\theta}^{tr}, x_{ij} \in \mathcal{B}_{tr} \},\\ C_p^{te} = \{ x_{ij} | S_{ij} \geq S_{\theta}^{te}, x_{ij} \in \mathcal{B}_{te} \},\\ C_n^{te} = \{ x_{ij} | S_{ij} < S_{\theta}^{te}, x_{ij} \in \mathcal{B}_{te} \}.\\ \end{matrix} \tag{4} Cptr(Cpte)C_p^{tr} (C_p^{te})即關鍵實例 (負實例)候選,其將攜帶更多的關鍵實例位移信息。
  劃分之後,使用Cpte(Cnte)C_p^{te} (C_n^{te})Cptr(Cntr)C_p^{tr} (C_n^{tr})的權重進行再評估,因此所有訓練實例的權重均更新。模型訓練與該過程交替進行,直至達到最大迭代次數。此時的CptrCpteC_p^{tr} \cup C_p^{te}將被作爲原型實例D\mathcal{D}輸出。這裏具體怎麼更新原文沒有說明 ( ´・・)ノ(._.`) (坑1),不過周老師提供了原代碼,先擼一遍,再來實現。
  有了D\mathcal{D},包XiX_i將被映射爲nθtr+nθten_{\theta}^{tr} + n_{\theta}^{te}維的實例viv_i,其第jj個屬性vijv_{ij}計算如下:
vij=maxxikXiexp(γxikDj2),(5) v_{ij} = \max_{x_{ik} \in X_i} \exp (- \gamma || x_{ik} - D_j ||^2), \tag{5} 其中DjD_jD\mathcal{D}中的第jj項。這種新的表示保留了包級別和關鍵實例位移的信息。

算法1:MIKI實例原型選擇

  輸入:訓練包Btr\mathcal{B}_{tr},測試包Bte\mathcal{B}_{te},實例原型參數nθtrn_{\theta}^{tr}nθten_{\theta}^{te}
  輸出:實例原型集D\mathcal{D}
  1:初始化訓練實例權重ww
  2:重複
  3:  通過算法2訓練多類模型MD\mathcal{M}_D
  4:  通過公式1爲所有實例計算正分;
  5:  通過公式4將所有實例劃分爲:Cptr,Cntr,Cpte,CnteC_p^{tr}, C_n^{tr}, C_p^{te}, C_n^{te}
  6:  再評估Cptr(Cntr)C_p^{tr} (C_n^{tr})中的實例以近似 ( approximate) Cpte(Cnte)C_p^{te} ( C_n^{te})中的實例;
  7:直至達到最大迭代次數
  8:輸出D=CptrCpte\mathcal{D} = C_p^{tr} \cup C_p^{te}

算法1:多類模型MD\mathcal{M}_D學習算法
  輸入:訓練包Btr\mathcal{B}_{tr},訓練實例權重ww,聚類簇數KK
  輸出:多類模型MD\mathcal{M}_D
  1:初始化訓練實例標籤。
  2:重複
  3:  基於訓練實例權重訓練多類模型M\mathcal{M}
  4:  根據公式2對實例標籤中屬於正包的實例標籤進行更新;
  5:  對於每一個正包,如果其中所有的實例都標記爲負,則根據公式3選擇最“正”的那個並調整其標籤;
  6:直至沒有標籤改變或者達到最大迭代次數
  7:輸出最終模型MD\mathcal{M}_D

2.2.2 權重學習

  該部分介紹轉換後向量權重學習的細節:

  1. 給定帶有密度ptr(v)p_{tr} (v) (坑2)的訓練向量{vitr}i=1m\{v_i^{tr} \}_{i = 1}^{m}以前帶有密度pte(v)p_{te} (v)的測試向量{vite}i=1n\{v_i^{te} \}_{i = 1}^{n},“我們”想要評估所有訓練向量的權重w(v)=pte(v)/ptr(v)w (v) = p_{te} (v) / p_{tr} (v),且採用以下線性模型2
    w^(v)=l=1bαlφl(v),(6) \hat{w} (v) = \sum_{l = 1}^{b} \alpha_l \varphi_l (v), \tag{6} 其中α={α1,,αb}T\mathbf{\alpha} = \{ \alpha_1, \dots, \alpha_b \}^T(坑3)是習得參數,{φl(v)}l=1b\{ \varphi_l (v) \}^b_{l = 1}是對於所有的vvll均滿足φl(v)0\varphi_l (v) \geq 0,這裏選擇爲高斯核。
  2. 評估參數{αl}l=1b\{ \alpha_l \}^b_{l = 1}使得w^(v)\hat{w} (v)儘可能接近w(v)w (v),這裏爲最小化均方誤差:
    L0(v)=12(w^(v)w(v))2ptr(v)dv=12(w^(v)2ptr(v)2w^(v)w(v)ptr(v)+w(v)2ptr(v))dv,(7) L_0 (v) = \frac{1}{2} \int (\hat{w} (v) - w (v))^2 p_{tr} (v) dv\\ = \frac{1}{2} \int ( \hat{w} (v)^2 p_{tr} (v) - 2 \hat{w} (v) w (v) p_{tr} (v) + w (v)^2 p_{tr} (v)) dv, \tag{7} 上式的最後一項爲常數,可以忽略,且有pte(v)=w(v)ptr(v)p_{te} (v) = w (v) p_{tr} (v)則:
    L(v)=12w^(v)2ptr(v)dvw^(v)pte(v)=12l,l=1bαlαl(φl(v)φl(v)ptr(v)dv)l=1bαl(φl(v)pte(v)dv).(8) L (v) = \frac{1}{2} \int \hat{w} (v)^2 p_{tr} (v) dv - \int \hat{w} (v) p_{te} (v)\\ = \frac{1}{2} \sum_{l, l' = 1}^{b} \alpha_l \alpha_{l'} (\int \varphi_l (v) \varphi_{l'} (v) p_{tr} (v) dv) - \sum_{l = 1}^{b} \alpha_l (\int \varphi_l (v) p_{te} (v) dv). \tag{8}
  3. 通過經驗值近似L(v)L (v),即:
    L^(v)=12l,l=1bαlαl(1mi=1mφl(vitr)φl(vitr))l=1bαl(1ni=1nφl(vite))=12αTH^αh^Tα,(9) \hat{L} (v) = \frac{1}{2} \sum_{l, l' = 1}^{b} \alpha_l \alpha_{l'} (\frac{1}{m} \sum_{i = 1}^{m} \varphi_l (v_i^{tr}) \varphi_{l'} (v_i^{tr})) - \sum_{l = 1}^{b} \alpha_l (\frac{1}{n} \sum_{i = 1}^{n} \varphi_l (v_i^{te}))\\ = \frac{1}{2} \alpha^T \hat{H} \alpha - \hat{h}^T \alpha, \tag{9} 其中H^\hat{H}b×bb \times b的矩陣,第(l,l)(l, l')號元素H^l,l=1mi=1mφl(vitr)φl(vitr)\hat{H}_{l, l'} =\frac{1}{m} \sum_{i = 1}^{m} \varphi_l (v_i^{tr}) \varphi_{l'} (v_i^{tr})h^\hat{h}bb維向量,第ll號元素h^l=1ni=1nφl(vite)\hat{h}_l = \frac{1}{n} \sum_{i = 1}^{n} \varphi_l (v_i^{te})
  4. 基於公式9,可以得到以下優化問題:
    minαRb[12αTH^αh^Tα+λ2αTα].(10) \min_{\alpha \in \mathbb{R}^b} [ \frac{1}{2} \alpha^T \hat{H} \alpha - \hat{h}^T \alpha + \frac{\lambda}{2} \alpha^T \alpha]. \tag{10} 公式10是無約束凸二次規劃 (unconstrained convex quadratic program),可解析爲α=(H^+λIb)1h^\alpha = {(\hat{H} + \lambda I_b)}^{-1} \hat{h},其中IbI_bbb維單位矩陣 ( identity matrix),由此可以輕鬆的獲得訓練樣本的權重 (坑2、坑3被解決,然鵝理解起來還是不容易。。)
  5. 基於上述方法,將獲得每一個訓練向量的權重,定義爲M0M^0。然後,如果一個包包含一個需要評估的實例,該包也應該被評估。因此,實例的權重需要合併到轉換後的包的權重之中。具體的,對於訓練包XitrX_i^{tr}、包權重Wi0W_i^0、相應的實例vitrv_i^{tr}以及實例權重{wij}j=1ni\{ w_{ij}\}_{j = 1}^{n_i}vitrv_i^{tr}最終的權重被設置爲:
    Wi=maxj{1,,ni}wijWi0.(11) W_i = \max_{j \in \{ 1, \dots, n_i \}} w_{ij} \cdot W_i^0. \tag{11}
  6. 使用訓練包轉換後的向量及相應的權重來構建分類模型,再對測試包轉換後的向量進行分類。

3 具體實現

  待續。。。


  1. Y. Chen, J. Bi, and J. Z. Wang. MILES: Multiple-instance learning via embedded instance selection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(12):1931–1947, 2006. ↩︎

  2. T. Kanamori, S. Hido, and M. Sugiyama. A least-squares approach to direct importance estimation. Journal of Machine Learning Research, 10:1391–1445, 2009. ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章