• 沒有找到結果。

第二章 相關研究

2.3 Weighted Cascade Model

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

8

們的鄰居,再由它們的鄰居將影響力擴散至它們的鄰居的鄰居…一直擴散下去,直到無 法傳遞下去無止,而我們要如何選擇種子節點?此即是 Influence maximization 問題 [1,9]。

2.3 Weighted Cascade Model

Weighted cascade model 與 Independent cascade model 的模擬過程一樣,唯一差別在 於給定邊上影響機率值的方式,在 Independent cascade model 中,邊上的影響機率值是 一開始就給定的值,可以為 0.1、0.01 或是隨機一個機率值。而在 Weighted cascade model 中,每條邊 可視為 和 兩條有向的邊。而 上的影響力機率值為 , 為 v 的 Degree,若點 u 在第 i 回合被影響,則點 u 在第 回合有 的機率影響節點 v,相 反地, 的影響力機率值則為 。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

9

第三章 研究方法

3.1 問題定義

給定(1)標籤社會網絡 ,(2) 預算 B 和(3) 目標標籤集合 , 。其中,

,V 是所有節點的集合,E 是所有邊的集合, 為所有標籤 之集合。針對每個節點 , ;節點 u 的權重值為 。B 是一個整 數,代表種子節點的數量。而目標標籤則是我們的目標消費群的標籤。

目的是在 G 中選出種子節點集合 , , ,使得 最大,其 中 且 。

此問題與先前 Influence maximization 的不同之處在於,目前的問題考慮到節點屬於 不同的標籤,且不同標籤具有不同的權重,使得問題更貼近現實情況。現實社會中,廣 告商打廣告時,都有目標消費群,而目標消費群很可能共同擁有某種特徵,例如:年齡 層在四十歲左右或者是熱愛騎腳踏車…等等,在之前的研究,雖然找得到影響最多節點 的種子節點,但這些種子節點卻不一定影響到最多某種標籤的節點。

以圖 3.1 為例,圓裡面的 A 和 B 是節點的標籤,而 a, b, c…,k 則是節點的編號,邊 上的權重是影響機率值(0.2),若我們的目標標籤為 B 且預算為 1。則在先前的研究 (Influence maximization problem)是不考慮節點的標籤,單純考慮節點影響的個數,不管 用 Degree centrality 或是 Greedy algorithm,我們都會選擇點 a 作為起始點。

若是在 Labeled influence maximization problem 問題定義之下,我們不單單考慮節點 的數量,也會考慮節點的標籤。一般解決此問題的想法,是去掉標籤為 A 的節點,只留

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

10

標籤為 B 的節點,再從中選出一個種子節點。但此方法有兩個缺點:第一,標籤社會網 絡可能會不連通,導致節點與節點之間不能互相影響。第二可能去掉最佳的種子節點(種 子節點可能是類別為 A 的節點)。事實上,選擇節點 g 作為種子節點,最有可能影響最 多標籤為 B 的節點。

圖 3.1 Labeled influence maximization problem 之範例。

3.2 LabeledGreedy Algorithm

最佳化 Influence maximization 是一個 NP-hard 的問題[12],現有的研究[3][12][16][22]

皆提出了 Approximation algorithm,找出趨近解,目前多數的解法為 Greedy algorithm,

[12]是最早以 Greedy algorithm 來解決 Influence maximization problem 的研究,因此我們 以作者的名字縮寫當作方法的名稱,稱作 KKT’s greedy algorithm 每回合選出能使影響 力增加最多的節點作為種子節點。

KKT’s greedy algorithm 進行回合制的挑選,每一回合選出那一回合影響力最大的節 點 v。一開始, ,接著每一回合選一個種子節點加入,在第 t 回合時,選擇 , 可以使 marginal gain 最大化[7]。

(1) (1)裡, 是利用 Independent cascade model 去模擬 的影響力,計算社會

algorithm 的 Pseudo code。

圖 3.2 KKT’s greedy algorithm 的 pseduo code。

其中 是將 Set 當作 Independent cascade model 中的種子節點,

計算其所能影響的數量。而影響的擴散與機率有關,因此模擬時,讓程式跑 10000 遍後 再取平均值作為加入節點 後能多影響的數量。

然而,KKT’s Greedy algorithm 所選出的 k 個點是否能夠有好的效果?KKT’s greedy algorithm 所得的效果跟最佳化的結果差多少?然而,要探討此問題時,必須先了解 這個函數,此函數具有 Submodular[5]特性:邊際效益遞減的特性。

定義 3.1:具有 Submodular 特性的函數會符合下列式子

(2) 其中集合 。而對於社會網絡上每一個節點 v,(2)都成立。

KKT’s Greedy Algorithm (G, k)

1: initialize and

上述的 Greedy algorithm 並不適用於 Labeled influence maximization problem,因此 我們修改了 Greedy algorithm,稱作 LabeledGreedy,而 LabeledGreedy 能解決 Labeled influence maximization problem。

influence maximization problem,至少可以達到 63%的 approximation。

3.2 LabeledCELFGreedy Algorithm

圖 3.3 CELFGreedy algorithm

在[16]中,作者利用了 KKT’s greedy algorithm 中 的 Submodularity 特性來減

除了 Lazy forward selection,[3]的作者提出了 NewGreedy,以改進 KKT’s Greedy algorithm 模擬時的效率。改進的方法起因於 Independent cascade model 的假設:每一條 邊 在模擬時,u 只有一次影響 v 的機會,在第 i 回合,若 u 變成 Active node,則在第 i+1 回合,u 會試圖影響 v,不管 u 在此回合有沒有成功影響 v,u 不會再試圖影響 v。

既然每條邊在每次模擬的時候只會使用一次,我們便可以在一開始就選擇邊是否會 使用到(根據邊上的機率而定),若邊 有選到,則代表 會傳遞影響力,若 沒有選到,

則代表在此模擬中 不會傳遞影響力(v 不會被 u 影響,且 u 不會被 v 影響),則把它從

同樣地,NewGreedy 並不適用於 Labeled influence maximization problem,因為在計 算 時沒有考慮到 Label 的因素,所以我們將原來的 NewGreedy 改成

針對 Labeled influence maximization problem,因此我們修改 DegreeDiscount,使其

適用於 Labeled influence maximization problem,稱作 LabeledDegreeDiscount。

圖 3.5 LabeledDegreeDiscount algorithm

我們稍加修改(4),使其加入 Label 條件設定,可以得到(5)和(6),即可以算出節點 v 的 Degree(與 DegreeDiscount 計算 Degree 的方式不同),p 為影響的機率。(5)可視為 v 不

LabeledDegreeDiscountIC(G, k)

籤的權重值並不是固定的值,因此 Labeled influence maiximization 的結果隨著標籤的不 同 而 有 所 改 變 , 因 此 , 我 們 無 法 事 先 所 有 的 答 案 都 算 好 。 所 以 我 們 提 出 了 proximityDiscount 來解決 Labeled influence maximization problem。

由於行銷人員在擬定行銷策略時,會測試不同的目標標籤的組合,以企圖找出最符 合效益的目標標籤之集合。而我們不大可能將這些組合事先運算好,待行銷人員查詢時 回傳。因此 ProximityDiscount 分成 Offline 和 Online 處理兩個部分。Offline 時,事先算 出標籤社會網絡中任兩點之間的 Proximity(鄰近性),當 Online 有查詢時,再透過 Proximity 算出 k 個種子節點。

有 許 多 方 法 [8][9][14][23] 都 可 以 拿 來 計 算 節 點 之 間 的 Proximity 。 但 我 們 計 算 Proximity 的方法概念上與[14]的 Cycle Free Effective Conductance(CFEC)相似。

CFEC 透過在社會網絡上 Random walk,得出從節點 v 走到節點 u 之間的機率值,

此即 Proximity,而 Proximity 可以視為影響力擴散的機率值。

而 CFEC 與其他方法[8][9][23]最大的不同在於,CFEC 在 Random walk 時,不會重

Independent cascade model 中模擬時,並沒有考慮節點被成功影響兩次以上的情況。

3.5.1 Proximity for Independent Cascade Model

在 Independent cascade model 中,Random walk 每走一步的機率就是邊上的權重值,

點 s 走到點 t 的機率 是節點 s 與節點 t 的邊之權重值,而且節點與節點之

在 Undirected graph 中,Random walks 具有可逆性(Reversibility property)[14],因此 。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

20

第 100 條最短路徑的機率值可能是最短路徑的百萬分之 1[2],如此小的機率值並不會對 整體有顯著影響。因此,我們利用 Approximation 的方式來算

我們只用機率值較高的前 k 條 s-t 簡單路徑, ,來計算 。當第 k 條路 徑的機率值小於第 1 條路徑的機率值的 時,我們停止繼續找第 k+1 條路徑。

而我們將找前 k 條機率值高的簡單路徑轉換成找前 k 條最短簡單路徑(Find k shortest simple paths problem)。圖 3.6 在說明前 k 條簡單路徑與前 k 條路徑的不同,若 要在圖中找出前 3 條簡單路徑,則長度分別為 6、20 和 21。而若是前 3 條路徑則路徑長 度分別為 6、8 和 10。。

圖 3. 6 前 k 條最短簡單路徑和前 k 條最短路徑之範例。

Katho et al.[13]提出了有效率的方法找出前 k 條簡單路徑,我們實作部分,主要參考 [19]。

由於 Independent cascade model 中邊的權重值是固定的獨立機率,影響力擴散的機 率由路徑上的邊之權重值相乘而得。然而,影響力的機率每乘上一個權重值,其實相當 於在標籤社會網絡上多走一步,因此我們只需算路徑的長度即可知道路徑的機率值,因 此我們先將標籤社會網絡的邊的權重值轉成長度,再透過找 s-t 前 k 條最短簡單路徑,

即可得出 s-t proximity。

首先我們將標籤社會網絡上邊的權重(我們假定 )利用(8)轉成長度。

influence maximization problem,ProximityDiscount 的概念跟 LabeledDegreeDiscount 相似,

但 ProximityDiscount 考慮的較 LabeledDegreeDiscount 精確。

LabeledDegreeDiscount 利用 來計算節

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

23

圖 3.7 ProximityDiscount 的資料結構

圖 3.8 ProximityDiscount algorithm

圖 3.7 是實作時用的資料結構,假設有 , , , ,n 個節點,我們建立一個 ProximityDiscount (G, k)

initialize for do

if do

for every vertex v do v’s total profit;

end for else

s = new added seed node in the i-1 loop

for every vertex , do ;

end for

for every vertex , 且 do

end for end if else

choose the highest , add v to S end for

集後利潤增加最多的明星。圖 3.10 即是 MaximumCoverage 的演算法,在實作部分,每 個明星都有一個長度為社會網絡中的節點數的位元,用來表示擁有的粉絲為誰,若明星 有粉絲 ,則第 i 個位元為 1,反之則為 0。因此,我們要比對聯集後的粉絲數量,我們

圖 3.9Maximum k coverage problem 之 Greedy algorithm。

圖 3.10 MaximumCoverage algorithm

3.7 Proximity Threshold and Maximum Coverage Threshold

透過前處理,我們事先計算點與點之間的 Proximity。但有些 Proximity 值相當低,

因為可能兩個節點 u 和 v 距離太遠,當在算明星有哪些粉絲時,我們可以忽略掉 Proximity 值小的粉絲,因此可以定義出 Proximity threshold ,當 Proximity(u,v)值大於 時,我們 視粉絲 v 為明星 u 的粉絲。

對於 ProximityDiscount 而言,只要是 Proximity 不為 0,ProximityDiscount 都納入考 量,但實際在影響的時候,過小的機率是可以被忽略的,忽略掉一些過小的 Proximity,

maximum coverage threshold。因為我們是用 Greedy 的方式去解 Maximum k coverage problem,每回合增加的粉絲數也會具有 Submodularity,因此當 maximum coverage threshold,代表再增加新的明星也無法增加 Maximum coverage threshold 數量的 粉絲,倒不如重新再選,選擇粉絲群較大的明星。

另外,也要考慮到 Proximity threshold 和 Maximum coverage threshold 之間的關係。

若 Proximity threshold 值很高的時候,則 Maximum coverage threshold 就不能太大,因為 Proximity threshold 高代表對於粉絲的認定較為嚴格,粉絲的數量自然就會少,當每位明 星擁有的粉絲數較少,種子節點之集合增加一個明星能增加的粉絲數理所當然地會少於 Proximity threshold 低的時候,而此時若 Maximum coverage threshold 太大,則在選擇種 子節點時,會一直重複挑粉絲群最大的明星,而這些明星存在同一 Component 中,如此 影響力就會只侷限在某一個 Component 中。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

27

第四章 實驗

4.1 實驗設計

我們用 IMDb(Internet Movie Database)裡 1994 到 1995 年的電影做為實驗的 Dataset,電 影裡的演員代表社會網絡上的節點,而社會網絡上的邊則代表演員與演員有共同演出一 部戲。每部電影都有標籤,舉例而言,玩具總動員這齣戲有 5 種標籤,分別為 Animation、

Adventure、Comedy、Family 和 Fantasy。而每位演員的標籤則看他演出的戲最多屬於哪 種標籤,舉金凱瑞而言,他演出的電影的標籤大都為 Comedy,則金凱瑞的標籤為 Comedy。

Dataset 裡共有 6079 個節點,120610 個邊。表 4.1 是每個標籤的演員數,共有 12 種標籤,而標籤為 Sport 的演員數最少,只有 13 個演員,反觀標籤為 Drama 的演員數 有 3927 個。。

表 4.1 IMDb Dataset 各種 Label 之演員數量

標籤 數量 標籤 數量

標籤 數量 標籤 數量

相關文件