• 沒有找到結果。

在有限的預算下找出影響力最大的代言人組合 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "在有限的預算下找出影響力最大的代言人組合 - 政大學術集成"

Copied!
44
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University 碩士論文 Master’s Thesis. 立. 政 治 大. ‧ 國. 學 ‧. 在有限的預算下找出影響力最大的代言人組合. sit. y. Nat. Mining a set of agents in social networks for maximal. n. al. er. io. influence with a limited budget. Ch. engchi. i n U. v. 研 究 生:龔偉銘 指導教授:陳良弼. 中華民國一百年七月.

(2) July 2011. 在有限的預算下找出影響力最大的代言人組合 Mining a set of agents in social networks for maximal influence with a limited budget. 研 究 生:龔偉銘. Student:Wei-Ming, Kung 治 政 大 指導教授:陳良弼 Advisor:Arbee L.P. Chen 立. ‧ 國. 學. n. al. er. io. sit. y. ‧. Nat. 國立政治大學 資訊科學系 碩士論文. Ch. e nAgThesis chi. i n U. v. Submitted to Department of Computer Science National Chengchi University in partial fulfillment of the Requirements for the degree of Master In Computer Science.

(3) 中華民國一百年七月 July 2011 致謝 在這段研究所生涯之中,要感謝許多人。首先要感謝我的指導教授陳良 弼教授,在這兩年的日子裡給予的教導。從老師的身上我學到了做學問應 有的態度,實事求是、追根究底的研究精神。而在我的研究過程中,老師. 政 治 大 總能適時的給我建議和方向,並且在犯錯時給予當頭棒喝。 立. ‧ 國. 學. 感謝資料庫實驗室的大家,一路扶持、相互鼓勵。很高興當初選擇加入. ‧. 資料庫實驗室而遇見了你們,資料庫實驗室充滿不少的歡笑和活力。. sit. y. Nat. 最後,感謝我的家人和映慈。由於你們的支持和鼓勵以及一路的陪伴,. er. io. 讓我能夠無後顧之憂的完成學業。平時我總是不善於用言語表達我的感. n. a. l C 謝,今天終於能在這裡向你們說一聲,謝謝。 ni. hengchi U. v.

(4) 在有限的預算下找出影響力最大的代言人組合. 摘要. 近年來,越來越多的社群網站受到人們廣泛的使用,例如:Facebook、Plurk. 政 治 大. 之類的網站都擁有大量的使用者資料。社群網路越來越受到一些研究學者. 立. 的重視,很多人開始紛紛研究如何有效的運用社群網路上的資料。影響力. ‧ 國. 學. 的傳播是社群網路上一個很重要的課題,如何在社群網路上找到影響力最. ‧. 大的組合是個受到廣泛討論的問題。在本研究中,我們詴想一間公司如果. y. Nat. er. io. sit. 要請人來宣傳產品的話,必須支付代言人一些費用,而如何在有限的預算 下聘請一些代言人來達到最大的宣傳效果就是我們研究的問題。兩個代言. n. al. i n U. C. v. hengchi 人的影響力總和並不單單只是將兩個代言人的影響力相加而已,因為代言 人本身所影響的對象可能會重複,所以必須扣除掉一些被重複影響的人, 也增加了問題的困難度。在我們提出的演算法中,可以有效的減少計算的 時間並且使找出來的代言人組合所造成的影響力趨近最佳解。. 1.

(5) Mining a set of agents in social networks for maximal influence with a limited budget. Abstract. 政 治 大. Influence maximization is the problem of finding a small subset of. 立. nodes (seed nodes) in a social network that could maximize the spread. ‧ 國. 學. of influence. In this paper, we given a social network and budget,. ‧. which people should we choose could maximize the spread of influence. sit. y. Nat. with a limit budget. We propose a new algorithm combine cluster. er. io. algorithm and dynamic programming to solve this problem.. al. n. v i n C hshow that ourUpropose results engchi. Our experimental. algorithm achieves. better running time comparing with the CELF algorithm. But CELF algorithm achieve much better influence spread than our propose algorithm. Based on our results, we believe if we can improve the cluster algorithm than we can achieve much better influence spread.. 2.

(6) 目錄 第一章 導論及研究動機 .................................................................................. 7 第二章 相關研究 .............................................................................................. 9 2.1 影響力期望值的相關研究 ..................................................................... 9 2.2 社群網路的相關研究 ........................................................................... 10. 政 治 大 第三章 方法描述和實作 ................................................................................ 15 立. ‧ 國. 學. 3.1 分群演算法(Cluster Algorithm) ................................................... 16. ‧. 3.1.1 分群的概念 .................................................................................... 17. y. Nat. er. io. sit. 3.1.2 分群演算法 .................................................................................... 19 3.2 動態規劃法(Dynamic programming) ............................................... 25 a. n. iv l C n hengchi U 3.3 結合分群和動態規劃法查詢結果......................................................... 27 第四章 實驗方法與驗證 ................................................................................ 29 4.1 實驗設計 ............................................................................................... 30 4.1.1 分群演算法實驗 ............................................................................. 32 4.1.2 影響力與計算時間比較實驗 ......................................................... 33 4.2 實驗結果 .............................................................................................. 35 3.

(7) 第五章 結論 ................................................................................................... 40 參考文獻 ......................................................................................................... 41. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 4. i n U. v.

(8) 表目錄 表 2.1:Greedy algorithm ........................................................................ 10 表 2.2:MixGreedy algorithm .................................................................. 12 表 3.1:SCAN Cluster algorithm ............................................................ 21 表 3.2:High-Probability cluster algorithm .................................... 24. 政 治 大. 表 3.3:分群演算法比較表 ....................................................................... 25. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 5. i n U. v.

(9) 圖目錄 圖 3.1:群聚係數表示圖............................................................................ 16 圖 3.2:社群網路分群圖............................................................................ 18 圖 3.3:每群影響力 Top1 的節點存放圖 .................................................. 19 圖 3.4:機率性社群網路模型圖 ................................................................ 23. 政 治 大. 圖 3.5:經門檻值 T 篩選後的社群網路模型圖......................................... 23. 立. 圖 4.1:無方向性社群網路模型 ................................................................ 30. ‧ 國. 學. 圖 4.2:無方向性社群網路模型,節點 a 的費用為 5 .............................. 31. ‧. 圖 4.3:有方向性社群網路模型 ................................................................ 31. y. Nat. er. io. sit. 圖 4.4:有方向性社群網路模型,節點 a 的費用為 5 .............................. 32 圖 4.5:各種演算法在不同節點數量時的計算時間比較圖 ..................... 35. n. al. i n U. C. v. hengchi 圖 4.6:各種演算法在不同節點數量時的影響力比較 ............................. 36. 6.

(10) 第一章 導論及研究動機 近年來,越來越多的社群網站受到人們廣泛的使用,例如:Facebook、Plurk 之類 的網站都擁有大量的使用者資料。社群網路(Social network)越來越受到一些研究學 者的重視,很多人開始紛紛研究如何有效的運用社群網路上的資料。 影響力的傳播是社群網路上一個很重要的議題,如何在社群網路上找到影響力最大 的代言人組合是個受到廣泛討論的問題。在本研究中,我們詴想一間公司如果要請人來. 治 政 宣傳產品的話,必須支付代言人一些費用,而如何在有限的預算下聘請一些代言人來達 大 立 到最大的宣傳效果就是我們研究的問題。在以往的研究中,大多只需找出影響力最大的 ‧ 國. 學. 組合來,很少有加入預算和費用的概念。加入預算的概念會使得問題的複雜度提高,也. ‧. 更加具有挑戰性,也更符合現實的狀況。這個問題有一些特殊的性質,兩個代言人的影 響力總和並不單單只是江兩個代言人的影響力相加而已,因為代言人本身所影響的對象. y. Nat. io. sit. 可能會重複,所以必須扣除掉一些被重複影響的人,也增加了問題的困難度。在我們提. n. al. er. 出的演算法中,可以有效的減少計算的時間並且使得找出來的代言人組合所造成的影響 力趨近最佳解。. Ch. engchi. i n U. v. 從前網站僅僅只是提供人們查詢資料,而現在已經變成人們除了可以提供自己的意 見和想法外,還可以與其他網友進行交流、聊天等等的地方。我們可以在網站裡申請屬 於自己的帳號,並且和其他人成為朋友,而這些網友的資料便能夠構成一個龐大的社群 網路,於是很多對於社群網路的研究與應用也紛紛產生,例如在社群網路上的隱私問題 [6]、如何防止在社群網路上的攻擊[7]等研究… 影響力的研究[2][8][9]是近年來相當熱門的研究主題,如何從社群網路上挑選出 具有影響力的人是一個 NP-hard 的問題。在社群網路中,每一個節點都代表一個代言人, 每一條邊則是表示了節點和節點之間互相影響的機率。我們可以透過社群網路上影響力. 7.

(11) 的傳播機率來算出每一個代言人對於社群網路的影響力是多少。 舉例來說:當我們是一家公司的老闆,今天公司生產了一個產品,想要找一些代言 人來替我們公司的產品做宣傳。於是我們有了一筆經費可以去聘請一些代言人來替我們 宣傳產品,但每個人的代言費用都不一樣,我們希望可以找出符合我們的預算之下,並 且可以達到最好的宣傳效果的代言人組合。傳統的作法是貪婪演算法(Greedy algorithm)[1],先找出影響力最大的代言人,再將此代言人配合其他代言人找出兩個 為一組時影響力最大的組合來,以此類推找出 K 個代言人在一起的組合。由於貪婪演算. 政 治 大. 法所造成的計算時間過於龐大,因此在其他的研究中很多都是針對時間複雜度的部份做. 立. 討論與研究,例如加速貪婪演算法的計算或者是導入了分群的概念節省計算時間,而此. ‧ 國. 學. 一部分也會在相關研究的討論中做更詳細的介紹和討論。. 在我們的研究當中,由於增加了預算(Budget)和費用(Cost)的因素,因此時間. ‧. 複雜度更是提昇不少,但也更貼近現實狀況。為了希望在此一狀況下也能夠有效的縮小. Nat. sit. y. 計算時間並且達到比較好的影響力效果,所以我們會使用動態規劃(Dynamic. n. al. er. io. programming)的方法找出符合預算下的代言人組合來,同時也會引進分群(Cluster) 的概念減少計算的時間。. Ch. engchi. 8. i n U. v.

(12) 第二章 相關研究 在此章節中將會介紹和本研究有關的文獻及知識。首先介紹關於社群網路的模型; 由於我們的研究是建立在社群網路上,所以也會介紹在社群網路上影響力計算的相關研 究與方法。在第三章會說明影響力期望值與本研究的結合。. 2.1 影響力期望值的相關研究. 治 政 社群網路是由很多節點和邊組成,我們可以想像一個節點就是一個代言人,而邊則 大 立 是代表兩個節點之間互相認識。在社群網路的邊上面有一個機率,代表的是兩個節點之 ‧ 國. 學. 間影響的機率。例如:Facebook、Plurk 等等大型的社群網站,都屬於一個很大的社群. ‧. 網路。我們可以在這些網站上分享我們的想法、興趣,進而去引起別人的注意、討論等 等…如果我們可以透過社群網路找出一些比較具有影響力的節點來,透過這些節點我們. y. Nat. io. sit. 可以宣傳我們的產品、想法,進行一些商業活動。舉例來說:A 和 B 之間存在著一條邊,. n. al. er. 且邊上面的機率為 0.5,代表的意思就是 A 想要推薦產品給 B 使用,B 有 0.5 的機率會. Ch. i n U. v. 被 A 影響進而去使用 A 推薦的產品,反過來說 B 也有 0.5 的機率去影響 A 讓 A 使用 B 推 薦的產品。. engchi. 在計算社群網路上節點的影響力期望值的時候,是透過節點和節點之間的機率計算 是否有實際影響為主,被影響的點可以有一次的機會影響周遭的節點,而周遭的點被影 響之後,則有能力再去影響他們各自周圍的節點,直到社群網路上所有的節點都被側詴 過一次為止。例如在一個社群網路上面,我們選定了一個節點(v)當做第一個起始點, 透過這個節點再社群網路上進行產品的宣傳,結果最後影響的點數為 4 個,所以我們就 可以說這個節點再這個社群網路上的影響力為 4。. 9.

(13) 政 治 大. 學. ‧ 國. 立 表 2.1:Greedy algorithm. ‧. 使用貪婪演算法在計算影響力的期望值時,利用透過實驗的方式找出每個點在社群 網路上的影響力期望值。對每個節點而言,我們會計算如果選取此一節點時,在這一回. y. Nat. io. sit. 合裡影響了社群網路上幾個節點,然後計算 R 個回合,在將所有影響的節點個數除以 R. n. al. er. 算出此節點在社群網路上的影響力期望值。當找出社群網路上影響力期望值最大的節點. Ch. i n U. v. 後,我們會利用此節點結合社群網路上的其他節點,找出兩個節點在一起時影響力期望. engchi. 值為最大的組合,藉此找出 K 個節點時影響力期望值最大的組合來。. 2.2 社群網路的相關研究 在[1]的研究中,主要是在定義影響力在社群網路上最大化的問題。此問題希望在 一個社群網路上,找出影響力最大化的節點組合。由於這個問題本身已經被證明是一個 NP-hard 的問題,所以要找到最佳解需要花費大量的時間,所以大部分的論文研究都針 對如何縮短時間以及找出趨近於最佳解為主。在社群網路上,影響力的計算有個特殊的 性質就是兩個節點在一起時的影響力並不等於兩個節點各自的影響力相加,而是必須同. 10.

(14) 時計算兩個節點在一起時的影響力,因為必須扣除重複影響的節點。[1]使用貪婪演算 法(Greedy algorithm)來解決這個問題,先計算出每個節點在社群網路上的影響力期 望值,挑出影響力最大的節點。以這個節點為主,結合社群網路上其他的節點,找出兩 個節點在一起時影響力最大的組合來,以此類推直到找到 K 個點在一起時影響力最大的 組合來。在之後的研究都以減少計算影響力期望值的時間為主。[3]設計了兩種不同的 演算法以達到減少計算時間的效果:一種方法是改良貪婪演算法(MixGreedy algorithm),另外則是提出一個新的直覺式演算法(DiscountDegree algorithm),目. 政 治 大. 的都是縮短計算影響力期望值的時間。以往的計算期望值的方式是一條一條邊慢慢去測. 立. 詴邊是否能夠使兩個點互相影響,MixGreedy algorithm 則是一次測詴完整個社群網路. ‧ 國. 學. 的邊,直接把不能影響的邊刪除,剩下來的邊都是確定可以互相影響的邊。在 Greedy algorithm 裡,我們在計算每個節點的影響力期望值的時候,必須將每條邊都測詴是否. ‧. 能使兩個節點互相影響 。但在[3]中,一開始就先將社群網路上的每條邊都測詴過一. Nat. sit. y. 遍,知道哪些邊是可以互相影響的,因此可以一次計算出所有節點的影響力期望值。因. n. al. er. io. 為是一次算出所有節點的影響力期望值而不是一個節點一個節點慢慢去計算影響力期. i n U. v. 望值,所以可以有效率的節省計算節點在社群網路上影響力期望值的時間。. Ch. engchi. 11.

(15) 立. 政 治 大. ‧. ‧ 國. 學 sit. y. Nat. io. er. 表 2.2:MixGreedy algorithm. al. 如上圖所示,MixGreedy algorithm 一開始先測詴社群網路上的每條邊,並且刪除. n. v i n Ch 掉那些不會影響的邊,剩下的邊都是確定可以使兩個節點互相影響的。接著就計算每個 engchi U 節點在社群網路上的影響力期望值。在以往計算影響力期望值時,通常先挑選出一個節 點,針對此節點周圍的邊進行測詴直到測詴完所有社群網路的邊為止。假設社群網路上 有 n 個節點、m 條邊,那就必須計算 n*m 次才可以算完每個節點在社群網路上的影響力 期望值。而先測詴社群網路上的每條邊時,則只需要計算 m 次就可以算完每個節點在社 群網路上的影響力期望值,因此可以節省很多的計算時間。 DiscountDegree Algorithm 則是利用節點的維度達到節省計算時間的效果,此演算 法的精神在於透過節點維度的多寡去計算此節點在社群網路上的影響力期望值,例如有 一個節點的維度為 10,而另一個節點的維度為 5 時,則此演算法會優先挑選維度高的節. 12.

(16) 點當做我們的代言人,而如果此節點的維度為 10,但此節點的其中一個鄰近節點已經被 選為代言人時,則將此節點的維度扣 1 變成 9,以此類推算出每個節點在社群網路上的 維度,並且挑選維度高的節點為代言人。此方法並沒有考慮到兩個節點在一起時所造成 的影響力並非兩個節點的影響力相加,而是以維度的高低去判斷哪個節點在社群網路上 的影響力較大,所以雖然在計算時間上會低於其他演算法但是在影響力的大小上卻輸給 其他演算法所挑選出來的節點組合。在[4]的研究中,利用分群演算法配合貪婪演算法 (Community-based greedy algorithm)來達到減少計算影響力期望值的時間。. 政 治 大. Community-based greedy algorithm 利用分群的方法將社群網路分成不同的幾群,而分. 立. 群的目的是希望在相同的分群內部的邊越密集越好,而群和群之間的邊則是越稀疏越. ‧ 國. 學. 好。將社群網路分群之後,分別計算每個點在自己群裡面的影響力期望值,而不是像以 往的研究都是計算節點在整個社群網路的影響力期望值。因為不是計算節點在整個社群. ‧. 網路的影響力期望值,所以可以減少非常多的計算時間。但是只計算節點在自己群內的. Nat. sit. y. 影響力期望值並且將節點的影響力期望值相加其實是不合理的,因此分群的目的是希望. n. al. er. io. 可以讓群內的節點越密集越好,群和群之間的連結越稀疏越好,盡量讓節點的影響力限. i n U. v. 制在各自的群內,因此使影響力相加可以合理化。分別計算完每個點在自己群裡的影響. Ch. engchi. 力期望值後,也是挑出最高的影響力來當做是第一個挑選出來的點。而在選第二個節點 時,則是找與第一個點合在一起影響力增幅最大的節點,因此如果不是在同一個群裡的 節點就不需要重複計算一次,藉此來達到縮短計算影響力期望值的時間。 以上討論的幾篇相關論文研究的目的都是在縮短計算影響力期望值的時間。而在我 的研究裡,除了計算影響力期望值外,還多加入了預算和費用的想法,使得題目本身的 困難度增加,但更貼近現實狀況,也更加實用。在[2]的研究中,作者討論在哪些地方 設置水污染的偵測裝置可以有效的偵測水污染(CELF Algorithm)。假設目前有許多的 抽水站,我們應該在哪些抽水站放置偵測水污染的裝置才能夠達到最好的水污染偵測效 果,而放置裝置本身也需要花費些許費用,在預算有限的情況下,我們需要有效的運用 13.

(17) 我們的預算來放置水污染的偵測裝置,因此如何在有限的預算下達到最好的水污染偵測 效果就是此篇研究的重點。此篇研究討論的主題與我提出的研究問題是相同的。我的問 題是如何在有限的預算下找出影響力最大的代言人組合,我提出了新的演算法在計算時 間不比之前的研究慢的情況下去解此問題,並且在我的方法下所挑選出來的節點所造成 的影響力期望值可以優於之前研究所提出的演算法。 CELF algorithm 利用將節點本身的影響力期望值除以節點本身的費用,算出每個節 點的本益比,然後從本益比較高的節點開始選擇,直到擁有的預算使用完為止,算是一. 政 治 大. 種非常直覺式的算法,且此演算法所找出來的代言人組合並不是最佳解。. 立. 舉例來說:目前我們的預算為 6B,有三位代言人(S1,S2,S3),代言的費用分別為. ‧ 國. 學. c(S1)=4B,c(S2)=3B,c(S3)=3B 且每位代言人的影響力期望值為 R(S1)=8B,R(S2)=5B, R(S3)=4B。因此我們可以得知本益比(S1)=2,(S2)=1.66,(S3)=1.33。在選擇代言人的. ‧. 時候我們會先選擇本益比最高的 S1,並且花掉 4B 的費用,但這樣我們的預算就只剩下. Nat. sit. y. 2B 無法再去聘請其他的代言人,因此我們所得到的影響力期望值就是 8B,但比較好的. n. al. er. io. 代言人組合應該是(S2+S3),影響力期望值為 9B 才對。[2]是第一篇在社群網路上計算. i n U. v. 影響力最大化的情況下,加入預算和費用的論文,因為與我所要研究的問題一樣,所以. Ch. engchi. 此篇研究也是我比較好壞的重點。我希望可以在計算時間上明顯低於此篇研究所提出來 的演算法,並且在影響力的大小上高於此篇研究。. 14.

(18) 第三章 方法描述和實作 在這一章節章中將介紹演算法的設計流程。本研究的目的希望可以縮短在有限的預 算下找出影響力最大的代言人組合的計算時間,並且達到最大的影響力效果。在本研究 中,設計的演算法由兩個不同的部分組成,分別是分群演算法以及動態規劃法,透過結 合這兩種演算法以達到縮短計算時間的效果。 定義變數如下: A:挑選出來的節點組合. 立. 學. ‧ 國. B:預算. 政 治 大. R(A):節點組合 A 在社群網路上的影響力. ‧. c(A):節點組合 A 在社群網路上的費用. 在我們的研究中,我們希望可以找到最大的 R(A)並且使 c(A)  B,我們會利. y. Nat. io. sit. 用分群演算法和動態規劃法來達到減少計算時間的效果。在傳統的影響力期望值計算. n. al. er. 上,當我們要計算兩個點甚至多個點組合在一起所產生的影響力時,我們並不能夠單純. Ch. i n U. v. 的將每個節點個別的影響力期望值相加當做多個點的影響力期望值,而是必須讓多個點. engchi. 同時放在社群網路上去計算多個點組合的影響力期望值。而我們提出分群演算法的概念 就是希望可以將每個點的影響力期望值相加合理化,如此一來我們只需要計算一次社群 網路上所有點的影響力期望值,當計算多個節點的影響力期望值時,則只需將每個節點 的影響力期望值相加即可。在分群完成之後,我們會使用群聚係數(Clustering Coefficient)當做是判斷點與點之間關係的緊密程度,群聚係數越高,代表此社群網 路圖型中點與點之間的關係越密切,其單點群聚公式為:. 15.

(19) ,0< <1 變數說明如下: :節點 i 的分群係數 :與節點 i 相鄰的節點數量 :與節點 i 相鄰的節點所形成的子網路中的連接邊數. 立. 政 治 大. ‧. ‧ 國. 學 sit. y. Nat. 圖 3.1:群聚係數表示圖. n. al. er. io. 如圖 3.1 所示,節點 c 的鄰近節點有 5 個,而它們所形成的子網路邊數有 6 條,所. i n U. v. 以我們可以算出節點 c 的群聚係數為 3/5。因此當我們分完群之後,我們會將群內所有. Ch. engchi. 節點的分群係數相加,在除以節點的數量,算出分群的分群係數,此係數也當作是我們 分群好壞的標準。. 3.1 分群演算法(Cluster Algorithm) 在本節中,我們將介紹為什麼需要使用分群演算法以及分群演算法。分群演算法是 一個減少我們計算時間很重要的方法,透過分群演算法我們可以有效的減少計算影響力 期望值所需要的時間,並且也可以使得節點的影響力相加合理化。我們會逐一介紹為何 需要使用分群演算法,以及定義使用分群演算法時所用到的參數。. 16.

(20) 3.1.1 分群的概念 在社群網路上,人們往往都會屬於不同的團體,而每個人的影響力往往也僅限於自 己的團體之中。例如我們可以根據學校的不同將社群網路分成不同的幾群,而不同學校 的學生雖然也會互相認識,但並不會比認識自己同學校的學生還多。因此如果要請同學 幫忙宣傳產品的話,通常影響的範圍也僅限於自己學校的學生。在我們的問題中,把兩 個節點的影響力相加當做是兩個節點在一起時的影響力是不合裡的,因為有可能會影響. 政 治 大. 到重複的節點。因此我們透過分群的概念,將社群網路分成不同的團體,每個團體裡的. 立. 人只會影響自己團體裡面的人,因此不同團體的人並不會重複影響同一個人,使得相加. ‧ 國. 學. 可以合理化。在分群的過程中,我們希望群內的邊越多越好,群和群之間的邊越少越好。 當我們在計算節點的影響力時,我們原本必須計算節點在整個社群網路上的影響力期望. ‧. 值,在我們的研究中,我們只計算節點在各自的群內的影響力期望值。因為群內的邊很. Nat. sit. y. 多,群和群之間的邊很少,使得節點的影響範圍盡量限制在本身的群內,對外部的影響. n. al. er. io. 很小,也因此讓節點和節點的影響力相加可以比較合理化。. Ch. engchi. 17. i n U. v.

(21) 立. 政 治 大. ‧. ‧ 國. 學. 圖 3.2:社群網路分群圖. y. Nat. io. sit. 如上圖所示:由於我們對於社群網路進行分群的動作,使得社群網路被分成 3 群。. n. al. er. 群內的節點互相連結的情況很多,也就是說群內的節點相當的密集。而群和群之間的連. Ch. i n U. v. 結很少,代表每個群之間互相關聯的程度不高。因此我們可以假設節點在社群網路的影. engchi. 響範圍大多限制在自己的群內,而不會影響到另外一群。此一假設有助於我們在計算每 個節點的影響力期望值時,我們可以只計算節點在自己群內的影響力期望值,而不用計 算節點在整個社群網路上的影響力期望值。因為我們不需要計算節點在整個社群網路上 的影響力期望值,因此我們可以減少非常多在計算影響力期望值的時間。. 18.

(22) 圖 3.3:每群影響力 Top1 的節點存放圖 如上圖所示,在我們分完群之後會計算每個群內節點在各自群內的影響力期望值,. 政 治 大. 並且取出每個群裡 Top1 影響力期望值的節點,接著使用動態規劃法找出最佳解。. 立. 3.1.2 分群演算法. ‧ 國. 學. 在此一章節中,我們將介紹兩種不同的分群方法,並且比較此兩種分群方法的計算. ‧. 時間和造成的影響力。我們所採取的分群演算法是改良[10]所使用的分群演算法(SCAN. io. er. algorithm) 。以下將介紹兩種演算法的分群流程:. sit. y. Nat. Cluster algorithm) ,以及我們自己提出的機率分群演算法(High-Probability Cluster. al. (一)[10]是利用每個節點在社群網路上的節點結構當做是否將節點分在同一個群. n. v i n Ch 內的依據,如果兩個節點的鄰居節點成員很相似的話,代表此兩個節點被分在同一個群 engchi U 的機會很大。剛好符合我們分群的概念,也就是將社群網路分成幾個不同的團體,團體 中的人會互相認識,而團體跟團體之間互相認識的情況就比較少。 以下定義我們在分群演算法裡使用到的專有名詞: 定義一(節點結構) 令節點 v  V,我們可以從節點 v 的鄰居節點來定義 v 在社群網路上的結構,定義成 (v),是節點 v 所有的鄰居節點與節點 v 的聯集。(v)={w  V|(v,w)  E}{v} 變數說明如下: V 為社群網路上的所有節點。. 19.

(23) v,w 為社群網路上的任意節點。 (v,w)  E 代表 v 和 w 之間有連線。 定義二(節點結構相似度) (v,w) = |(v)(w)| / | (v)|| (w)| 透過兩個節點的共同鄰居來判斷這兩個節點在社群網路上的結構相似度,我們設定一個 門檻值來判斷兩個節點的結構相似度,如果兩個節點的結構相似度大於這個門檻值的 話就可以判斷此兩個節點在社群網路上的結構是很像的。. 政 治 大. 定義三(ε-鄰居). 立. N(v) = {w  (v) | (v,w)  }. ‧ 國. 學. 當節點 v 的鄰居節點 w 和節點 v 的節點結構相似度超過一個門檻值,我們稱節點 w 為 節點 v 的-鄰居。. ‧. 定義四(核心節點). Nat. io. sit. y. CORE, (v) ⇔ | N(v) |  . n. al. er. 當一個節點擁有夠多的-鄰居時,我們就會以此節點發展一個群,而這個節點被稱為. Ch. i n U. v. 此群的核心節點。因此我們設定一個門檻值,當一個節點的-鄰居超過時,我們就 稱此節點為一個核心節點。. engchi. 定義五(HUB) 對於社群網路上的任何一個節點而言,此節點與其所有鄰居節點的結構相似度皆沒有超 過門檻值,且此節點的所有鄰居節點分別屬於兩個或兩個以上的群,我們就設定此節 點為一個 HUB。HUB 為社群網路上的獨立節點,並不屬於任何一個群。 定義六(OUTLIER) 對於社群網路上的任何一個節點而言,此節點與其所有鄰居節點的結構相似度皆沒有超 過門檻值,且此節點的所有鄰居節點皆不屬於任何一個群或者皆只屬於一個群,我們. 20.

(24) 就設定此節點為一個 OUTLIER。OUTLIER 為社群網路上的獨立節點,並不屬於任何一個 群。 定義七(DirREACH,(y,x)) 對一個核心節點 v 來說,節點 y 為核心節點 v 的-鄰居,如果節點 x 為節點 y 的-鄰 居,則將節點 x 加入以核心節點 v 發展的群中。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 表 3.1:SCAN Cluster algorithm 21. i n U. v.

(25) 在分群的過程中,我們會先記錄每個節點在社群網路中的節點結構,然後計算節點 與此節點鄰近節點的結構相似度。當一個節點的-鄰居超過門檻值時我們就把此節點 當做是一個核心節點,從此節點開始發展一個群。當我們找到一個核心節點時,首先先 判斷核心節點周圍的鄰居與核心節點的結構相似度是否有超過門檻值,有的話就先將 此鄰居與核心節點放到同一個群裡,接著再計算鄰居節點與它鄰近點的結構相似度,如 果相似度大於門檻值,就加入同一個群內。以此類推把所有的社群網路上的節點都分 類到屬於自己的群裡。當所有的節點都已經計算完之後,沒有被分到群裡的節點就會被. 政 治 大. 列為 HUB 或者是 OUTLIER。當所有節點都分群完之後,我們也會將 HUB 和 OUTLIER 分到. 立. 群裡,我們會根據 HUB 以及 OUTLIER 的鄰居節點多數屬於哪群來決定 HUB 以及 OUTLIER. ‧ 國. 學. 應該被分到哪群內。舉例來說:當 HUB 有 5 個鄰居節點的時候,如果有其中三個鄰居節 點屬於同一群時,那我們就會將 HUB 分入那三個鄰居節點屬於的分群中。. ‧. 此演算法原先在設計的時候,節點和節點之間的連線並沒有機率的概念,也就是說. Nat. sit. y. 節點跟節點之間有連線就是代表機率為 1,沒有連線就代表機率為 0。不過在我們的社. n. al. er. io. 群網路模型中,節點跟節點之間的連線是有機率的因素存在,因此在分群的時候我們會. i n U. v. 對連線的機率設定一個門檻值 T,將機率大於 T 的連線視為機率為 1,機率小於 T 的連. Ch. engchi. 線機率為 0,然後再進行分群的動作,因此在我們的實驗中我們也會比較如何設定門檻 值 T 可以達到最好的分群效果。. 22.

(26) 0.6 0.7 0.3. 0.4. 0.7. 0.7. 0.5. 圖 3.4:機率性社群網路模型圖. 政 治 大. 如上圖所示,目前有一個社群網路,每個節點之間的連線都存在一個機率,代表的是兩. 立. 個節點互相影響的機率。當我們設定一個門檻值 T 為 0.5 時,代表只保留機率為 0.5 以. ‧ 國. 學. 上的連線,刪除機率為 0.5 以下的連線。經過門檻值 T 的篩選之後,可以得到下圖。我 們去除了機率為 0.5 以下的連線,只保留機率為 0.5 以上的連線,並且利用此圖進行我. ‧. 們的分群演算法。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 3.5:經門檻值 T 篩選後的社群網路模型圖 此分群演算法的分群精神在於利用兩個節點所擁有的共同鄰居節點判斷兩個節點是 否應該分在同一個群裡,與我們在計算影響力時希望不要影響到重複的節點有相同的作 用,因此很適合拿來做社群網路的分群。 (二)第二種分群方法是由我們自己提出的機率分群演算法,此分群演算法的目的. 23.

(27) 是希望可以控制分群的數目,並且可以知道群內的節點數量。透過控制分群的數目,我 們可以有效的知道可以減少多少計算時間,藉由調整分群的數目,在計算時間和影響力 上取得一個平衡。此機率分群演算法會挑選機率高的邊所連接的節點放入同一群,重複 此一步驟直到所有節點都分到各自的群內為止。 變數說明如下: N:社群網路上的節點數量 m:分群的數量. 政 治 大. EPh:社群網路上機率最高的邊. 立. EPh(v,u):由最高機率的邊所連接的兩個節點. ‧ 國. 學. NeighEPh(v,x):節點 v 和其周圍相連機率最高的節點 x. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 表 3.2:High-Probability cluster algorithm 我們假設社群網路上有 N 個節點,而我們將社群網路分成 m 群,因此每群內會有 N/m. 24.

(28) 個節點。在一開始我們會選取一條最高機率的邊,並且挑出此邊所連接的兩個節點放入 同一群,接著再從此兩個節點周遭挑選最高機率的邊,並且將此連接的節點放入同一 群,直到第一群裡的節點數量滿足 N/m 為止。當第一群內的節點數量滿足 N/m 時,就重 新從社群網路上剩下來的邊挑選機率最高的邊,並且將此邊連接的節點放入第二群,以 此類推直到社群網路上的節點都分完群為止。 SCAN Cluster. High-probability cluster. 分群數量. 不可控制. 群內節點數量. 不可控制 高. 低. 慢. 快. 高. 低. ‧. 影響力大小. ‧ 國. 計算時間. 可控制. 學. 分群係數. 立. 政可控制治 大. Nat. sit. y. 表 3.3:分群演算法比較表. n. al. er. io. 上表為兩種不同分群演算法的比較圖,我們可以由此表看出當使用 SCAN Cluster. i n U. v. algorithm 分群時,沒有辦法事先得知分群的數量以及分群內的節點數量。但此演算法. Ch. engchi. 有比較高的分群係數,代表使用此演算法分群之後群內會有比較多的連結,在計算影響 力的時候也會有比較好的結果。但使用 High-probability cluster algorithm 分群時 可以控制分群的數量以及群內的節點數量,所以當我們使用此演算法將社群網路分群 時,分的越多群我們在計算影響力時所花的時間也會越少,但並不能夠保證選出來的節 點有較高的影響力。. 3.2 動態規劃法(Dynamic programming) 動態規劃法(Dynamic programming)是解最佳化問題的一種有效方法。為了求解. 25.

(29) 關於 n 個元素的最佳解,我們可以把由 i 個要素組成的部份集合(子集)的最佳解求出 來放在一張表裡。當元素的個數增加一個的時候,可以根據這張表計算最佳解是否發 生,並且建立一張新的表。重複這一過程,直到由 n 個元素組成的全集為止,最終將求 出關於 n 個元素的最佳解。亦即以空集合的最佳解圍初值開始,每次增加一個元素,求 得一個最佳解,直到全集為止,這種方法就叫做動態規劃法。常見的背包問題(knapsack problem)就可以使用動態規劃法求解。 當我們分完群並且計算每個節點在各自群內的影響力期望值後,會將得到節點的影. 政 治 大. 響力期望值和節點的費用存在一張表格。. 立. 以下為動態規劃法的遞迴式以及相關定義說明:. ‧ 國. 學. ‧. if i  0 or B  0  0  R[i, B]   R[i - 1, B] if B  C(i) Max(R  R[i - 1, B - C(i)], R[i - 1, B]) if B  C(i) i . sit. y. Nat. al. n. 變數說明如下:. er. io. R[i,B](i  [0,|V|] and B  [0,B]). Ch. engchi. i n U. v. R[i,B]:預算為 B 且有 i 個點的情況下所造成的影響力。 i:節點個數。 B:預算。 C(i):節點 i 的費用。 R[i,B]代表的是當預算為 B 且有 i 個節點的情況下所造成的影響力。當沒有節點或 者預算為 0 的情況下,R[i,B]=0。當節點的費用大於我們所擁有的預算時,則排除此 節點進而計算剩下的 i-1 個節點所造成的影響力。而當我們的預算大於節點的費用時, 則比較加入此節點所造成的影響力較大或者是排除此節點時所造成的影響力較大。透過 此一遞迴式可以找出當預算為 B 且有 i 個節點時的最佳解。 26.

(30) 我們在進行動態規劃法時,會將影響力記錄成一個表格,並依序找出擁有預算 B 且 有 i 個節點的情況下最大的影響力。我們會對從每個群內挑出來的影響力 Top1 的節點 進行標註號碼的動作,然後一個節點一個節點加入動態規劃法進行挑選節點的動作, 我 們可以利用動態規劃法依序找出在預算為 B 且有 N 個節點的情況下最大的影響力期望 值。除了記錄最大的影響力期望值外,同時也會記錄選取出來的節點,我們把選出來的 節點存放在 label 表格中。在 label 表格中,我們記錄預算從 0 到 B、節點個數從 0 到 N 每個欄位所選出的節點。. 政 治 大 3.3 結合分群和動態規劃法查詢結果 立. ‧ 國. 學. 在前兩節中,我們各別提到了為何要使用分群演算法和動態規劃法,以及分群演算 法和動態規劃法的定義與使用方法。在社群網路上的每個節點,我們會設定每個節點的. ‧. 最低費用為 c,而預算的總和為 B。我們會從每個群中找出影響力期望值為 Top1 的節點. Nat. sit. y. 進行動態規劃法並且將最後挑選出來的節點當做是我們的解答,因此如果當所有群內影. n. al. er. io. 響力期望值為 Top1 的節點都已經被挑選出來且我們的預算還有餘額的話,我們就必須. i n U. v. 在計算每個群內影響力期望值的增幅為 Top2 的節點,此一步驟會增加許多的計算時間,. Ch. engchi. 因此我們希望可以只計算一次所有節點的影響力期望值,並且每群只取 Top1 的節點做 動態規劃法,以達到在有限的預算下找出影響力最大的代言人組合。當社群網路上的群 數為 B/c 時,選取完每個群裡影響力為 Top1 的節點時,預算也會因此用完,所以我們 在分群時會將社群網路上的群數分成大於 B/c 群,代表我們只需要取出每個群裡影響力 為 Top1 節點做動態規劃法,並且保證預算會使用完,以確保只計算一次節點在社群網 路上的影響力期望值。因為我們希望可以在計算完一次所有節點的影響力期望值時就找 出影響力最大的代言人組合,才會有將每個節點的最低費用設定為 c 且預算總和為 B, 並將整個社群網路分成大於 B/c 群的想法。此一限制可以確保當所有群內影響力為 Top1 的節點都被挑選為代言人時,預算也會因此用完而不需要在計算一次所有群內影響力增 27.

(31) 幅為 Top2 的節點。 在使用[10]分群演算法的時候,我們並沒有辦法事先知道分群的群數。因此我們設 定一個門檻值 T,然後藉由調整 T 的數值找出分群大於 B/c 群的值,並保留此分群狀態 做動態規劃法。除此之外,我們也設計了另外一種機率分群演算法可以有效的將社群網 路分成我們想要的群數,並且也可以預先知道每群內的節點數量。因此我們也會比較兩 種分群方法所產生的最後結果。 演算法流程如下:. 政 治 大. STEP1:給定一社群網路,預算為 B、節點的最低費用為 c。. 立. STEP2:對社群網路進行分群的動作,分成大於 B/c 群。. ‧ 國. 學. STEP3:計算社群網路上每個節點在各自群裡的影響力期望值。 STEP4:選出每個群裡影響力為 Top1 的節點,並且儲存在一表格內。. ‧. STEP5:在預算為 B 的情況下,利用動態規劃法針對 B/c 個點找出最佳解。. Nat. n. al. er. io. sit. y. STEP6:針對所挑選出來的節點計算對於整個社群網路的影響力期望值。. Ch. engchi. 28. i n U. v.

(32) 第四章 實驗方法與驗證 在本章節中將針對在有限的預算下找出影響力最大的代言人組合進行實驗,實驗所 使用的資料是目前最多人使用的社群網站:Facebook。Facebook 擁有眾多的會員資料, 會員人數超過百萬人,構成台灣目前最大的社群網路。在 Facebook 上,每個人都擁有 許多的好友,而他們的好友又擁有各自的好友,藉此方式形成一個龐大的社群網路。因 此在我們的實驗中,我們會擷取 Facebook 上的好友資料,透過幾位使用者的好友以及. 治 政 他們的共同朋友,建構出一個符合現實狀況的社群網路,並且透過此社群網路進行我們 大 立 的實驗分析。由於在 Facebook 上,兩位使用者之間的連線僅僅代表是兩位使用者互為 ‧ 國. 學. 好友關係,並沒有機率的概念。因此我們除了建立 Facebook 上的社群網路之外,我們. ‧. 也將訓練兩位使用者之間的連線機率,使兩個使用者之間的連線代表兩位使用者互相影 響的機率而非只是兩位使用者互相認識而已。除了擷取 Facebook 上的使用者資料建立. y. Nat. io. sit. 社群網路之外,我們也將訓練每個使用者的個人費用,也就是聘請使用者時所需要支付. n. al. er. 的代言費。而我們可輸入的變數是請代言人的預算,當我們輸入一個預算的數值時,我. Ch. i n U. v. 們將可以自動挑選出在符合此預算之下影響力最大的代言人組合來。. engchi. 本研究所提出的問題是屬於 NP-hard 的問題,計算影響力期望值所花費的時間非常 久,但使用窮舉法(Baseline algorithm)還是可以找出最佳解,只是需要花費大量的 計算時間。在以往的研究中,利用將代言人的影響力除以費用的方式算出每位代言人的 本益比,透過本益比的高低找出符合預算之下的代言人組合,但此作法會造成預算剩下 過多的情況,這也是我們希望改善的地方。我們也將會與此篇研究比較,包含計算時間 的快慢以及找出的代言人組合所造成的影響力期望值高低。. 29.

(33) 4.1 實驗設計 本實驗我們會從 Facebook 這個社群網站上建立實驗所需要的社群網路,我們使用 五位 Facebook 使用者的個人檔案,這五位使用者互相為好友。我們抓取這五位使用者 的好友名單列表以及記錄他們共同擁有的好友,建立起一個小規模的社群網路。並且利 用此社群網路進行我們的實驗。在我們的實驗過程中,我們會針對兩個社群網路的模型 進行實驗並且評估我們的演算法好壞,分別是無方向性的社群網路模型以及有方向性的. 政 治 大. 社群網路模型。. 立. (一)無方向性的社群網路模型指的是當節點 a 和節點 b 之間有連線的時候,此一. ‧ 國. 學. 連線並沒有方向性的因素,例如節點 a 和節點 b 之間有一條連線且連線的機率為 0.5 時, 代表節點 a 有 0.5 的機率可以影響節點 b,節點 b 也有 0.5 的機率影響節點 a。. n. 圖 4.1:無方向性社群網路模型. Ch. engchi. sit. b. er. io. al. y. ‧. 0.5. Nat. a. i n U. v. 由於我們的社群網路是從 Facebook 的好友名單擷取,在建立社群網路的時候,節 點跟節點之間的連線僅僅代表兩個節點互為好友,連線並沒有機率的因素存在。因此在 無方向性的社群網路模型中,我們隨機產生邊上的機率,並且將節點的維度當做此節點 的費用。例如一個節點 a 他擁有 12 個好友,代表他的維度為 12,因此我們就將此節點 的費用設定為 12,代表如果要聘請此節點來當我們的代言人時,我們必須花費 12 的預 算才行。. 30.

(34) a. 圖 4.2:無方向性社群網路模型,節點 a 的費用為 5 (二)有方向性的社群網路模型指得是當節點 a 和節點 b 之間有連線得時候,節點. 政 治 大. a 對節點 b 的影響力並不等於節點 b 對節點 a 的影響力。也就是說,雖然節點 a 和節點. 立. 學. ‧ 國. b 互為好友,但是雙方互相影響的機率是不同的,例如:節點 a 對節點 b 的影響力為 0.6, 但節點 b 對節點 a 的影響力為 0.3。. a. ‧. 0.3 b. n. al. 圖 4.3:有方向性社群網路模型. Ch. engchi. er. io. sit. y. Nat. 0.6. i n U. v. 在有方向性的社群網路上,我們利用節點的維度來訓練節點之間連線的機率。舉例 來說:當節點 a 有 5 位好友的時候,我們設定這 5 位好友對節點 a 的影響力皆為 1/5, 但節點 a 對他的 5 位好友的影響力必須依據好友的維度而定。依下圖所示,我們發現節 點 a 有 5 位好友,因此我們設定節點 a 的每位好友對節點 a 的影響力皆為 1/5,節點 b 有 3 位好友,因為節點 b 的每位好友(包含節點 a)對節點 b 的影響力皆為 1/3。. 31.

(35) 1/2. c 1/5 f. b a. 1/3 d. e. 政 治 大 圖 4.4:有方向性社群網路模型,節點 a 的費用為 5 立. ‧ 國. 學. 在演算法的比較部分,我們會與 CELF Algorithm 做比較,CELF Algorithm 也是在 有限的預算下找出影響力最大的代言人組合。使用的方法是將節點的影響力期望值除以. ‧. 節點的費用,算出節點的本益比,然後從本益比高的節點開始挑選,直到已經沒有預算. Nat. sit. n. al. er. io. 4.1.1 分群演算法實驗. y. 在去挑選節點為止,算是一種很直覺式的方法。. Ch. engchi. i n U. v. 由於在計算社群網路的影響力期望值時,每當社群網路上的節點數量增加時,計算 時間並不是以線性的方式成長,而是以指數的方式成長,因此使用分群演算法可以有效 的減少計算的時間。舉例來說:當一個社群網路上有 1000 個節點時,所要花費的計算 時間並不是只有 100 個節點時的 10 倍,而是以指數的方式成長。而透過分群,如果我 們可以將社群網路分成 10 群,每一群的節點數量又維持在 100 的話,那我們的計算時 間將只有 10*(100 個節點時的計算時間),計算速度將遠遠低於計算 1000 個節點所花 費的計算時間。在進行挑選影響力最大的候選人組合之前,我們會先進行分群演算法的 實驗,比較兩種分群演算法的優缺點。 在使用 SCAN Cluster algorithm 分群時,我們會比較如何設定分群的機率門檻值 T 32.

(36) 會達到比較好的分群效果。在設定門檻值 T 的時候,我們會將門檻值 T 的值從 0.1 設定 到 0.9,然後透過實驗測詴如何設定門檻值 T 可以達到分群群數大於 B/c 群,並且利用 此分群狀態進行動態規劃法,找出在有限的預算下影響力最大的代言人組合。 在使用 High Probability cluster algorithm 分群時,我們會比較怎麼設定分群 的數量使得選出來的節點可以達到比較好的影響力期望值。當我們將分群的數量設的越 高,我們在計算影響力所花費的時間就快越少,但這樣並不能夠保證挑選出來的節點組 合能夠造成比較大的影響力。我們並不希望計算時間很短,但是挑選出來的節點組合所. 政 治 大. 造成的影響力卻很低,因此我們必須去調整分群的數量,使得在計算時間以及挑選出來. 立. 的節點組合之間可以取得一個比較平衡的狀態。. ‧ 國. 學. 4.1.2 影響力與計算時間比較實驗. ‧. 本研究所提出的問題本身是屬於 NP-hard 的問題,計算影響力期望值所花費的時間. Nat. sit. y. 非常久,但使用窮舉法(Baseline algorithm)還是可以找出最佳解,只是需要花費大. n. al. er. io. 量的計算時間。Baseline algorithm 是一一測詴每組節點組合需要的費用以及所造成的. i n U. v. 影響力大小,最後挑選出的節點組合所花費的費用必須是符合我們本身的預算下,影響 力最大的節點組合。. Ch. engchi. 我們會比較下列各演算法所花費的時間以及找出來的節點組合所具備的影響力大 小。 一、 Greedy Algorithm 二、 MixGreedy Algorithm 三、 DegreeDiscount Algorithm 四、 CELF Algorithm 以上演算法在相關研究章節中皆有詳細的介紹,我們將記錄各種演算法的計算時間 以及挑選出來的影響力大小,並且比較各種演算法的時間和影響力大小。 33.

(37) 由於前四個研究方法並沒有加入費用與預算的概念,所以在與我提出的演算法做比 較時,我會先使用它們的方法找出影響力最大的節點組合,然後去計算此節點組合的需 要花費的費用,如果當節點組合需要花費的費用大於我的預算時,就不會選取此節點組 合,進而挑選影響力第二大的節點組合,然後再去計算此節點組合的費用是否有超過預 算,以此類推使用此演算法找出符合預算下影響力最大的節點組合。舉例來說:我們現 在的預算為 5,使用它們的方法所找出來影響力最大的節點組合為(a,b) ,但此節點組 合需要花費 6 的預算,因此我們就不會使用這組節點組合,進而挑選影響力第二大的節. 政 治 大. 點組合,在計算是否有超過預算。. 立. 在此,我們針對各種不同的演算法對於 『在有限的預算下找出影響力最大的代言. ‧ 國. 學. 人組合』所挑選出的節點產生的影響力以及計算時間進行比較。由於[2]與我研究的題 目相同,所以此篇研究也是我比較的重點。我們期望挑選出來的節點組合不論是在社群. ‧. 網路上的影響力或者是計算節點組合影響力所花費的計算時間都可以優於[2]所提出的. n. al. er. io. sit. y. Nat. 演算法。. Ch. engchi. 34. i n U. v.

(38) 4.2 實驗結果 在此一章節中,我們首先比較各種不同演算法所需的計算時間以及影響力的大小。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. al. sit. y. Nat. 圖 4.5:各種演算法在不同節點數量時的計算時間比較圖. i n U. v. 由上圖所見,下方的 0 到 1000 指的是社群網路上的節點數量,左方的 0 到 25000. Ch. engchi. 指的是計算時間,單位是秒。我們可以看到 CELF algorithm 的計算時間隨著節點數量 的增加呈現指數的成長,而我們所提出的分群演算法在計算時間上都遠低於 CELF algorithm。原因是因為當我們分完群之後,每個社群網路上的節點都只計算在自己群 內的影響力。因為已經將社群網路分成好幾群,每群內的節點數量已經遠少於社群網路 上的所有節點數量,所以計算時間也大幅的下降。 在 SCAN+Dynamic algorithm 的實驗結果顯示,計算時間隨著節點的數量增加而提 昇,但是在節點 800 的時候卻有明顯的下降。由於我們並不能保證使用 SCAN cluster algorithm 產生的分群數量以及分群內的節點數量,因此在節點數量為 800 的時候,每 個分群內的節點數量皆小於節點數量為 700 時某群內的最大節點數量。舉例來說:在節 35.

(39) 點數量為 700 時,SCAN cluster algorithm 可能將社群網路分成(100,100,500),而 當節點數量為 800 時,社群網路將節點數量分成(200,200,200,200),因此在計算 影響力的時候節點數量為 700 的社群網路計算時間自然會大於節點數量為 800 的時候, 這也是使用 SCAN cluster algorithm 的缺點。 在使用 High-Probability cluster algorithm 分群時,在此實驗中我們設定分群 的數量為 10 群,也就是 100 個節點我們會分成(10,10,10,10,10,10,10,10, 10,10),每群的節點數量皆為 10。從實驗結果顯示,計算時間遠低於 CELF algorithm. 政 治 大. 以及 SCAN cluster algorithm,因為我們可以控制分群的數量以及群內的節點數量,所. 立. 以可以推算出如何設定分群的數量可以降低計算時間。以節點數量為 100 為例:我們將. ‧ 國. 學. 此社群網路分成 10 群,每群內的節點數量皆為 10,因此只需花費 10*(計算 10 個節點 時的計算時間)即可,這也是我們可以減少大幅計算時間最主要的原因。. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 4.6:各種演算法在不同節點數量時的影響力比較 如上圖所見,CELF algorithm 在社群網路上的影響力最好,因為此演算法是以本益 比以及多個節點在社群網路上的影響力大小為選取節點的依據,跟我們此篇研究使用分 36.

(40) 群方式不同。在我們的研究中,因為先將社群網路分群,而每個節點只計算群內的影響 力在相加,但這種相加方式並不符合原先計算多個節點在社群網路上的影響力,我們只 是使用分群的方式使影響力相加可以趨近合理化。但實驗結果顯示,使用分群的方式使 影響力相加還是沒有辦法達到比較好的影響力,在最後算所有節點在一起的影響力時還 是沒有辦法比原先使用貪婪演算法所找出的影響力來的好。 在比較影響力的實驗中,我們發現最好的 CELF algorithm 的影響力接近 7 成。原 因是因為由於我們的社群網路是從 facebook 的好友名單建立,透過每個人的共同朋友. 政 治 大. 建立起一個小型的社群網路,因此此社群網路上的邊數很多,很接近一個 Complete. 立. graph,也因此選出來的節點才有辦法造成那麼高的影響力。由實驗結果顯示,使用分. ‧ 國. 學. 群演算法加上動態規劃法可以有效的減少影響力期望值的計算時間。使用 SCAN Cluster algorithm 分群時,我們沒有辦法確定分群的數量,並且沒有辦法確定每群內的節點數. ‧. 量,所以也沒有辦法有效的確定計算時間。只是使用 SCAN+Dynamic algorithm 的計算. Nat. sit. y. 時間還是會低於原本的 CELF algorithm,所造成的影響力也不會輸 CELF algorithm 太. n. al. er. io. 多。使用 HP+Dynamic algorithm 挑選節點時,影響力的大小並沒有預期的好,但速度 卻是三種演算法中最快的。. Ch. engchi. i n U. v. 由於從我們的實驗結果看來,雖然我們在計算時間上縮短了很多的時間,可是利用 我們設計的演算法所得到的結果造成的影響力並不理想,因此我們做了一個有趣的實驗 來驗證我們的演算法也可以達到跟其他演算法相同的影響力。我們自己設計了一個社群 網路,設計此社群網路的目的是希望此社群網路在分群的過程中可以滿足『群內的邊很 多,群跟群之間的邊很少』這個條件。我們手動設計了 100 個節點的社群網路,並讓每 20 個節點連接在一起,形成一個群,而群跟群之間的連線則是只有一條。我們重新比較 了各種演算法在此社群網路下所造成的影響力,發現在分群結果趨近完美(也就是群內 的邊很多,且邊上的機率很大;群跟群之間的邊很少,且邊上的機率很小)的情況下, 使用我們的演算法也可以達到一樣好的影響力效果。此一實驗證明了我們的演算法是可 37.

(41) 以被實際運作在真實的社群網站上,只是現在受到社群網路以及分群演算法的限制,所 以還有很大的改進空間。 下表為所設計的社群網路在不同演算法下的結果。此社群網路有 100 個節點,我們 分別比較了預算從 100 到 250 時的影響力結果。可以明顯看到我們所設計的演算法在影 響力上有明顯的提昇,影響力期望值已經接近 CELF 和 MixGreedy 演算法的結果。由於 我們的影響力算法是採用模擬的結果,必須做過很多個回合接著算出一個期望值,因此 在此實驗中我們也加入了標準差的概念,代表在每個回合所造成的影響力期望值都不會 相差太多。. 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. 除此之外,我們也另外設計了一個實驗。此實驗的目的是希望可以證明我們自己設. al. n. v i n Ch 計的社群網路在分成五群的時,利用我們的演算法可以找出最佳的影響力組合。 engchi U. 如上表所示,我們分別將自己設計的社群網路分為 5 群、8 群和 10 群,接著使用我 們設計的演算法分別對不同群數的社群網路進行挑選最大影響力的組合,可以很明顯的 發現在 5 群的時候會有最好的影響力效果,也因此證明了我們所設計的社群網路分成 5 38.

(42) 群會有最好的影響力結果。不過在預算為 100 的情況下,在 10 群時所造成的影響力會 比 5 群時的影響力來得大,會產生這樣的結果是因為我們在預算 100 的情況下,由於我 們設定節點的最低費用為 51,因此在預算 100 的情況下我們只會選出一個節點來,因此 不管是分成幾群對於造成的影響力並不會有任何影響。最後附上三種不同的演算法在此 社群網路下的計算時間結果。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 39. i n U. v.

(43) 第五章 結論 在本研究中提出的演算法可以有效的減少『在有限的預算下找出影響力最大的代言 人組合』的計算時間,選出的代言人組合所花費的費用是符合我們所設定的預算之下, 不過選出來的節點造成的影響力大小並不如預期理想。在影響力的大小部分還有很大的 改進空間,不過計算時間減少了不少。在社群網路上,會有許多不同的團體,每個團體 內的人會互相認識,但團體跟團體之間互相認識的人數就會減少,也因此我們提出了分. 治 政 群的概念,將社群網路分成不同的幾群,並且挑出每群中具有最大影響力的人來當代言 大 立 人。使用分群加上動態規劃法挑選節點所造成的影響力雖然沒有使用貪婪演算法來的 ‧ 國. 學. 好,但是在計算時間上卻可以降低不少,很適合做在即時的網路應用程式上。使用不同. ‧. 的分群演算法都可以達到減少計算影響力所花的時間,但影響力的大小還是無法勝過使 用貪婪演算法所找出來的節點組合。因此如何在社群網路上分群變成一個很重要的課. y. Nat. io. sit. 題,如果可以有效的將機率大的邊都集中在分群內,而機率小的邊都在群跟群之間,那. n. al. er. 麼使用分群來使得影響力相加會有更好的效果,所挑選出來的節點組合所造成的影響力. Ch. i n U. 大小也會更好,而這也是我們未來繼續努力的目標。. engchi. 40. v.

(44) 參考文獻 [1] D. Kempe, J. Kleinberg, and E.Tardos. Maximizing the Spread of Influence through a Social Network. In SIGKDD 2003. [2] J. Leskovec, A. Krause, C. Guestrin, C. Faloutsos, J. VanBriesen, and N.. [4] [5]. 學. [6]. 立. 政 治 大. ‧ 國. [3]. Glance. Cost-effective outbreak detection in networks. In SIGKDD 2007. W. Chen, Y. Wang, and S. Yang. Efficient influence maximization in social networks. In SIGKDD 2009. Y. Wang, G. Cong, G. Song, and K. Xie. Community-based Greedy Algorithm for Mining Top-K Influential Nodes in Mobile Social Networks. In SIGKDD 2010. B. Zhou and J. Pei. Preserving Privacy in Social Networks Against Neighborhood Attacks. In ICDE 2008. N. Shrivastava, A. Majumder and R. Rastogi. Mining (Social) Network Graphs to Detect Random Link Attacks. In ICDE 2008.. ‧. [7] W. Chen, Y. Yuan and L. Zhang. Scalable Influence Maximization in Social Networks under the Linear Threshold Model. In ICDM 2010. [8] A. Krause, J. Leskovec, C. Guestrin, J. VanBriesen,and C. Faloutsos. Efficient sensor placement optimization for securing large water distribution networks. Water Resources Planning Management 2008. [9] X. Xu, N. Yuruk, Z. Feng, T. A. J. Schweiger. SCAN: A Structural Clustering Algorithm for Network. In SIGKDD 2007. n. er. io. sit. y. Nat. al. Ch. engchi. 41. i n U. v.

(45)

數據

表 3.1:SCAN Cluster algorithm
表 3.2:High-Probability cluster algorithm

參考文獻

相關文件

在南京條約的政治方面,在 條約割讓香港會令中國政治 影響力下降,因為英國在華 的勢力坐大,中國慢慢失去

中國佛教發展,在魏晉時期有一具有重大意義而又影響深遠的現象,就是觀

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

危機事件 後果 可預測性 持續性 震撼程度 估計危機 影響程度 一對小四及小. 二的兄妹,居 於學校同邨的

• 下面介紹三種使用greedy algorithm產生minimum cost spanning

聖嚴法師在 1999 年 3 月 2 日所召開的第一次 籌備會議中磣勉勵籌備小組的成員磣不要只站在

找出書中最 找出書中最 找出書中最 找出書中最開心 開心 開心 開心的地方 的地方 的地方 的地方, , , ,記下那一頁 記下那一頁 記下那一頁 記下那一頁3.

• 透過電話熱線為居住在受影響屋苑的三類較容易受影響的人士安