第四章 利用社群網路改善人臉分群
4.2 社群網路特徵
大部分的社群網路所呈現的關係結構都是由三人以上所組成的複雜關係,且
社群網路強調角色與角色之間的互動關係,除了一對一與多對一的互動關係外,
也包含有群體結構的互動關係等,如圖 4.2 所示。
(a) 一對一的關係 (b) 多對一的關係 (c) 群體結構的關係
圖 4.2 社群網路的關係結構
其中,群體結構的互動關係以圖 4.3 為例,假設有 7 個角色 A、B、C、D、
E、F、G,分為 A、C、D、E 及 B、F、G 兩個群體。從這兩個群體中可看出,
除了同個群體內的角色有互動關係外,其餘的角色與另一個群體的角色之間並無
互動關係。換句話說,在 C 有出現過的場景片段中,我們可以猜測會同時出現
的角色會是 A 或 D 或 E,而不會是 B、F、G。此外,當 C、A 的關係越密切時,
表示在 C 有出現過的場景片段中,A 出現的機率會比 D、E 出現的機率要來得高。
路中,由於角色各自存在無互動關係的對象,及有互動關係的對象,與互動關係
密切的對象,所以,我們的主要研究目的是如何從複雜的社群網路中,分析出可
用的關係資訊來改善人臉分群。
圖 4.3 群體關係示意圖
在做人臉分群時,分群的個數往往會大於實際的角色個數。其中,當分群個
數越多時,群內的資料就越乾淨,反之,當分群個數越少時,群內的資料就越雜
亂。然而我們理想的分群個數是希望能與真實的角色數量一致,因此,我們希望
藉由社群網路中的關係資訊來計算 cluster 之間的相似度,也就是從社群網路資
訊中估計兩個 clusters 屬於同一個角色的可能性大小。最後,我們要將可能性高
的 cluster 之間的距離拉近,而將可能性低的 cluster 之間的距離拉遠,希望由此
改善只使用低階人臉特徵的人臉分群結果。本篇論文是採用相似性傳遞(Affinity
Propagation, AP)分群演算法[14]來執行人臉分群的工作。
4.2.1 高鑑別度的群集
假設一個社群網路有 N 個 clusters ,則我們可以定義一個
cluster 的關係向量 。其中, 為 與 之 間的互動程度,當 值越大時,表示 與 之間的互動關係越
密切,反之,當 為零時,表示 與 之間沒有互動關係。所
以,每一個 cluster 皆可用一個 N 維的關係向量來表示該 cluster 與其它 cluster 之
間的互動關係。
當一個 cluster 與大部分 clusters 有互動關係時,如圖 4.4 (c)所示,表示該
cluster 關係向量的變異數(以下通稱為關係變異數)會較小,所以我們認為該
cluster 的資訊對於社群關係的分析應無區別性。反之,當一個 cluster 只與少數
clusters 有互動關係時,如圖 4.4 (a)所示,表示該 cluster 的關係變異數會較大,
所以我們認為該 cluster 的資訊對於社群關係的分析應有區別性。所以我們保留
關係變異數大的 cluster 的資訊,而將關係變異數小的 cluster 的資訊過濾掉。
(a) 互動關係少的 cluster (b) 社群網路 (c) 互動關係多的 cluster
為了之後能藉由 cluster 關係向量中的重要資訊來有效計算 cluster 之間的相
似度,所以我們只保留關係變異數大的 cluster 的資訊,因此我們將從 N 個 clusters
中選出 K 個重要的 clusters,如此也可減少之後計算人臉相似度的維度。
以下說明我們如何從 N 個 clusters 中擷取 K 個重要的 clusters。首先,先計
算每一個 cluster 的關係變異數,如圖 4.5 (a)所示。接著將每一個關係變異數由大
到小做排序,如圖 4.5 (b)所示。最後再計算兩兩關係變異數之間的差值,如圖
4.5 (c)所示。接著我們取最大的差值作為門檻值,如圖 4.5 (c)的紅色虛線所示,
所以在門檻值左方的 cluster 我們將視為重要的 cluster。如此一來,即可從 N 個
clusters 中取出 K 個重要的 clusters,使得每一個 cluster 的關係向量皆可從 N 維 調整到 K 維,來表示該 cluster 與重要的 cluster 之間的互動關係。
(a) 計算每一個 cluster 的關係變異數 (b) 將關係變異數由大到小做排序
(c) 計算兩兩關係變異數之間的差值 圖 4.5 取出重要的 cluster 之示意圖
significant clusters
由上述可知,我們是依據 cluster 的關係變異數的大小來定義 cluster 的重要
程度。然而,在[02]作者們是依據 cluster 的互動程度來定義 cluster 的重要程度。
舉例來說,在圖 4.4 (c)中,由於該 cluster 與其它 cluster 之間的互動關係較密切,
所以該 cluster 的重要性就越大,反之,在圖 4.4 (a)中,由於該 cluster 與其它 cluster
之間較無互動關係,所以該 cluster 的重要性就越小。在章節 5.2.2,我們將依據
這兩個不同的方法來做測試,直接比較兩者的結果。
4.2.2 有互動的社群關係
在 4.2 節中我們曾提到,在做人臉分群時,分群的個數會大於實際的角色個
數。因此,我們希望將同屬於一個角色可能性高的 cluster 之間的距離拉近,所
以 我 們期 望藉 由社 群網 路 中的 社群 資訊 來 計 算 兩個 cluster 之間 的 相似 度
。在這我們除了會考慮角色之間有關係的社群資訊外,同時也考慮沒 有交集的社群資訊來計算兩個 cluster 之間的相似度,定義如下列公式 4.3 所示:
公式 其中, 分別為 及 的關係向量, 為利用有關
係的社群資訊所計算的相似度, 為利用沒有交集的社群資訊所計算的
相似度。
接下來,我們說明如何利用有關係的社群資訊來計算兩個 cluster 之間的相 似度,定義如公式 4.4 所示。以圖 4.6(a)為例,當兩個 clusters (圖中的 及 )與其
它 clusters (圖中的 、 、 )的關係程度很相似時,表示這兩個 cluster 是屬於同
一個角色的可能性很大,所以我們以這兩個 clusters 的關係向量計算 cos 值來表
示這兩個 clusters 之間的相似度。然而,我們還要考慮到例外的情況。以圖 4.6(b) 為例, 和 都與 、 、 有關係,且關係程度很相似,所以 、 的 cos 值就會很
大。但是,由於 、 之間有互動關係,表示這兩個 clusters 可能並不屬於同一個
角色,所以我們乘上公式的第二項來調整相似度的值。第二項的分子考慮到的就
是兩個 clusters 之間的互動程度,當互動程度越大時,表示他們越不可能屬於同
一個角色,所以相似度的值就會變小。此外,第二項的分母是該社群網路中最大
的互動程度,目的是要做正規化。
公式 其中, 為 及 之間的互動程度。
(a) (b)
圖 4.6 有互動關係示意圖
4.2.3 無互動的社群關係
接著,我們說明如何利用沒有交集的社群資訊來計算兩個 cluster 之間的相 似度,定義如公式 4.5 所示。以圖 4.7(a)為例,當一個角色(圖中的 )與某些其他
角色(圖中的 、 )之間沒有互動關係時,表示同一個角色的另一個群集(圖中的 )
與其他角色也不會有互動關係,所以我們可以統計這兩個關係向量,它們相對應
的元素同時為零的個數有多少,來表示這兩個 clusters 之間的相似度。當同時為
零的個數越多時,表示他們是屬於同一個角色的可能性就越大。然而,我們也要
考慮到 cluster 本身大小的問題,以圖 4.7(b)為例,當 cluster 越小時,表示該 cluster
與其它 cluster 之間比較沒有互動關係,相對零的個數就會越多。因此,我們以
公式的第二項來調整相似度的值的比重,而第二項的分子考慮到的就是 cluster
本身所包含的 face track 個數,當 face track 個數越少時,相似度的值就會變小。
此外,第二項的分母是該社群網路中最大的 face track 個數,目的是要做正規化。
公式 其中, 分別為 及 的人臉軌跡個數。
(a) (b)
圖 4.7 無互動關係示意圖