[論文閱讀] 人臉聚類——Linkage Based Face Clustering via GCN
做過聚類的小夥伴通常都會有一個頭大的問題,就是“如何確定距離”。這個距離是用於確定兩個節點是否有連線的,它為什麼那麼讓人頭大呢?因為距離閾值設定小了,很多linkage就被斷開了,導致較低的recall;而設大了,就有大量錯誤的linkage,precision就沒法保證了。
本次介紹的工作主要就是為了解決這個問題,這是CVPR 2019的一個文章“Linkage Based Face Clustering via Graph Convolution Network”,就是透過利用GCN來識別graph的linkage關係的!連結如下:
下面主要從以下幾個方面來介紹這篇文章:
簡介
方法介紹
Framework overview
Instance Pivot Subgraph (IPS) &GCN
結果分析
Pros & Cons
1。 簡介——人臉聚類存在的問題,以及文章的解決方法
人臉聚類中一個主要的難題——link的判斷,在figure 1給了很清晰的闡述:
(a)文中focus的問題是要判斷兩個節點i和j是否有link。
(b)樸素的想法是判斷i、j之間的距離是否小於一定的閾值,如果不是的話,則兩個節點之間不會有link。
(c)ARO方法透過人為設定的規則來確定是否應該有link,這種手工設計的方式還是不夠準確。
(d)文中提出的方法是透過GCN獲取i、j 的neighbor資訊,並學習兩者之間是否有link。
這種方法不需要依賴於一個全域性的閾值如(a)或者人為設定的區域性閾值如(c),可以讓演算法自己來觀察當前的context,從而確定結果,這會使得linkage更加robust。
2。 方法介紹
(1)Framework Overview
該文章提出的方法主要包括以下幾個步驟:
(a) 首先,是透過CNN來提取feature,這時候我們可以看到,feature雖然是有分開大致的group,但是對於一些比較困難的類來說,feature會分佈得很散(這個對應於實際情況中的遮擋、模糊等情況);另外常見的困難情況,圖中沒有畫出來——有些類別之間會非常的相似,有一些overlap的部分。
(b) IPS:對於每個樣本點,構建其對應的子圖,文中稱為Instance Pivot Subgraph (IPS)。對於這一步我們可以看做是對每個樣本找出它的n-hop neighbor,為了給後面的節點分類提供context資訊。
(c) Node Classification:把每個子圖送進GCN,並判斷出哪個樣本與子圖中的pivot是屬於同類的。這個是GCN常見的一個用途——分類,用得挺到位的。
(d) 連線該有的link,並找出其中的連通圖,這樣就得到聚類的結果了!
(2)Instance Pivot Subgraph (IPS)& GCN Node Classification
IPS+GCN是該文章的重點模組。
IPS的建立方式有一下幾個步驟,如下圖:
(a)首先,對於pivot node找出其子圖,文中設定的子圖節點包括pivot的1\2\3- hop neighbors;
(b)接著,對節點特徵做normalization,也就是每個節點的feature都減去pivot的feature,這步可以理解為以pivot為中心,觀察其附近節點的變化(context);
(這點非常重要,相當於定義了圖/類的中心,後面相當於對節點進行二分類,使得識別的難度大大降低。)
(c)對子圖中的每個節點,連線其u近鄰。
(這一步也就得到了GCN需要輸入的鄰接矩陣,可以直接應用GCN對子圖的節點進行分類了。)
3。 實驗結果分析
(1)方法比較,文章提出的方法,可見對於比heuristic的方法有比較明顯的提升的。
(2)聚類中常見的Singleton對效果的影響。
(3)Multi-view clustering
該方法可以直接應用於Multi-view clustering上,可見也是有不錯的提升的。
文章不僅驗證了該方法在同質資料上的提升,還給出了異質資料上的結果,這也是不錯的一點。
4。 總結
Pros:
(1)用GCN來解決Clustering中hard core的linkage問題,方法比較新穎——GCN中利用到了資料的區域性資訊,能夠更準確地判斷節點之間的關係;
(2)構建IPS的想法很好,巧妙地利用了GCN做節點分類的特性,並且使用Pivot Normalization很好地定義了節點的主次關係,能更好地進行分類。
Cons:
(1)在scalability和efficiency方面尚有欠缺,文中對於每個樣本都會建立一個IPS,並在上面應用GCN,雖然使用的GCN計算量不大,但畢竟在大規模資料上還是吃不消的,這個方面還是有比較大的擴充套件空間;
(2)看到文章中提到Singleton的問題時,我是挺期待作者能描述一下他們是如何把這些singleton歸類的,畢竟在實際問題下,這種情況實在是太太太常見了!
據我所知,近期還有不少GCN + Clustering的工作會陸續出來,坐等!