行政院國家科學委員會補助專題研究計畫
■ 成 果 報 告
□期中進度報告
社會網絡資料分析結合地理位置服務之研究與應用:以產品推銷為例 (新編多
年期第三年)
Research and Applications on Social Network Data Analysis Combined with
Location-based Services: Product Promotion as An Example
計畫類別:■ 個別型計畫 □ 整合型計畫
計畫編號:NSC
100
2221
E
004
006
MY3
執行期間:2011 年 08 月 01 日至 2014 年 07 月 31 日
計畫主持人:陳良弼
成果報告類型(依經費核定清單規定繳交):□精簡報告 ■完整報告
本成果報告包括以下應繳交之附件:
□赴國外出差或研習心得報告一份
□赴大陸地區出差或研習心得報告一份
■
出席國際學術會議心得報告及發表之論文各一份
□國際合作研究計畫國外研究報告書一份
處理方式:除產學合作研究計畫、提升產業技術及人才培育研究計畫、
列管計畫及下列情形者外,得立即公開查詢
□涉及專利或其他智慧財產權,□一年□二年後可公開查詢
執行單位:國立政治大學資訊科學系
中 華 民 國 103 年 10 月 31 日
中文摘要
由於網際網路的蓬勃發展,再加上 Web2.0 技術的推波助瀾,使得眾多社群網站平台 興起,進而延展出錯綜複雜的社會網絡。分析社會網絡中使用者的資料及使用者間的相關 互動連結,廣為多項研究領域所重視。而有別於多數社會網絡研究中純粹探討基本社群關 係,我們以產品推銷為藍本,透過從不同角度分析資料,達到增加產品銷售的目的。本研 究計畫從智慧型產品推銷系統的角度切入,發展對應領先技術涵蓋下述三大範疇:『社群 與領導者探索技術』、『推薦物平行探索技術』及『實體廣告設址技術』。在此三年期計 畫執行過程中,我們已完成相關研究論文共8篇,本期末報告將完整詳述所有研究成果。Abstract
According to the progress of the Internet and techniques of Web2.0, a lot of social community platforms are established. These social community sites affect life and social interaction of most people and then, generate a huge and complicated social networks. Different from much research focusing only on exploring basic communities from social networks, in this project, we analyze data from social networks and then use the obtained knowledge from the social data to increase commercial benefits. This project is based on the view point of product promotion, which mainly covers three research areas, including: 1) exploring social communities and leaders from social networks, 2) parallel skyline query processing, and 3) query processing in location-based services. The results of this project have published 8 papers, each of which is detailed in this report.
一、前言
透過社群網站平台,使用者可分享時事心得、瞭解朋友動態、玩互動遊戲、甚至利用 社群網站所提供的網絡工具來追蹤、回應、引用其他使用者所發表的文章,進而與他人產 生互動連結。將社交搬上網際網路環境中,建立全新社交網絡,社群網站的興起,改變了 現代人的社交空間,進而延展出錯綜複雜的社會網絡(social network)。 目前社群網站的商業模式尚未十分明朗,但其輪廓卻已漸漸清晰。事實上,利用搜尋 關鍵字等資訊來達到相關廣告行銷置入的確有其功效,但若能更直接的利用社會網絡中的 群體關連所產生的渲染力,在潛移默化過程中影響其他使用者的購買行為,相信廣告效果 與產品推銷所帶來的實質效益,將更為顯著。有別多數社會網絡研究中純粹探討社群關係, 在本研究計畫中,我們以產品推銷為藍本,透過資料分析,掌握社會網絡中的群體關連所 產生的渲染力,在潛移默化過程中影響其他使用者的購買行為,進而達到增加產品銷售的 目的。因此,本研究計畫從智慧型產品推銷系統的角度切入,發展對應領先技術涵蓋下述 三大範疇:『社群與領導者探索技術』、『推薦物平行探索技術』及『實體廣告設址技術』。 一、社群與領導者探索技術 藉由社會網路的使用者資訊提供不同的找尋社群中極具影響力的使用者方式,再透過 這些領導者達到病毒式行銷目的。由於很多使用者的資訊都是隱私資料,因此我們利用匿 名技術保護並同時避免大幅降低資料實用性。本計畫在此一研究主軸探討議題包含:影響 力最大化之社群領導者探索、以鏈結資料為基礎之尋找影響力最大的領導者、在圖上尋找 最大的並包含目標點的類完全子圖和考慮時間序列社會網絡資料之隱私資訊匿名化。二、推薦物平行探索技術 通過不同平行處理方式,找出市場影響力高的商品進行推薦。本計畫在此一研究主軸 探討議題包含:在高度分散式環境下進行Top-k相似文件檢索、基於MapReduce框架進行有 效的天際線查詢處理和考量客戶喜好之最高獲利產品查詢 三、實體廣告設址技術 透過使用者於社群網站發佈的地理位置,以找尋合適實體廣告設址點。本計畫在此一 研究主軸探討議題包含:於空間資料庫考量雙資料型態的反轉式前k 相鄰之Top-N 查詢與 於空間資料庫考量雙資料型態的反向最近點之涵蓋最大化。 各項研究成果將於下一節中進行探討,以下為與本年度三項研究項目相關之國內外研 究。
國內外相關研究
影響力最大化之社群領導者探索
社交網絡用戶的影響力在過去一直以各種方式研究,在社會科學的研究中,[B09]認為 社會影響力指的是當一個人的動作或想法受人影響時,而影響力來自於過度的社會結構洞 (structure hole)。而在相關研究中,可以分為兩個方向:一類是基於圖挖掘(graph mining), 另一個是文本挖掘(text mining)。在圖挖掘研究中,[KK03]將尋找最大影響力身分者問題視為查找節點作為種子節點之 子集的優化問題。根據使用者間的互動關係,定義使用者本身所帶有的影響力,且提出找 尋k個能達到影響力最大(influence maximization)的使用者之問題。[KK03]證明該問題屬於 NP-hard的問題,因此使用貪婪演算法(greedy algorithm)來求得近似解(approximate solution), 而該演算法保證所找到的k名使用者所涵蓋的影響力至少會是最佳解的63%。然而,利用貪 婪演算法會花費許多時間在計算上,[LK07]提出了一個加速的方法去改善,主要還是建立 在貪婪演算法的架構,只是先針對所有使用者的影響力大小進行排序,排除那些不可能成 為領導者的使用者,節省不必要的計算時間。在[GB08]則是建立一段時間內用戶影響他人 的模型,並以頻繁模式的方法來發現影響力最大的使用者。在[CW10]中,定義了期望影響 的範圍,每個使用者存在一個活躍機率(activation probability),介於0到1之間。此機率代表 這個使用者會受到其朋友至少一人影響的機率,當值越大,代表這個使用者會受影響的機 率也越高。根據活躍機率,可以定義每個使用者的影響範圍,稱為增值影響力(incremental influence)。假設當某個使用者的活躍機率從現有的值直接提昇至1時,這個增加的幅度會造 成其周圍使用者的活躍機率提昇的數值總和起來,即稱為增值影響力。 在文本挖掘的研究中,[SC07]提出了一種基於特徵排序的算法,以網絡排名表示使用 者的重要性,[BK09]使用的文本挖掘技術來檢測輿論領袖和分析社交網絡上最熱門的話題 趨勢。此外,[ZX08]使用電子佈告欄系統(BBS)的交互分析,並使用內容進一步確定社 區領袖。
考慮時間序列社會網絡資料之隱私資訊匿名化
在社會網路上要達到完美的隱私性保護並擁有高的實用性是一個難題 [LD08、ZP08]。 為簡化問題,目前的研究大多針對簡單圖形(simple graph),也就是點和邊沒有帶有任何的標籤(label)並只存在一種類型的互動關係。在簡單圖形的環境上,常見的匿名化方法 為,k匿名模型(k-anonymity),主要透過邊的增加刪除調整圖形結構,使得被調整後的圖 形中的每一點,至少存在k-1個其他點與該點存在相同的結構樣式(structural pattern),使 得隱私性資訊被侵犯的機率為1k。[LT08]假設惡意的攻擊者在擁有點的度數(degree)的背 景知識(background knowledge)下,利用k匿名模型的概念去設計匿名化演算法,使得匿 名化後的圖形中的每一點,至少存在k-1個其他點與該點存在相同的度數。[ZP08]考慮惡意 的攻擊者已知點的鄰居(neighbor)圖形架構。[ZC09]考慮匿名化後的圖形中的每一點,至 少存在k-1個其他點與該點的結構是同構(isomorphism)。這些研究都是在簡單圖形的環境 上,皆只存在單一互動關係,主要的差別在於惡意的攻擊者所擁有的背景知識型態不同。 然而,隨著社會網絡平台快速的發展,已演變成為擁有多元互動關係的複雜社會網絡, 使用者彼此間有著各種不同類型的互動關係。為了表示多元互動關係的社會網絡資料, [BC09]利用了雙邊圖(bipartite graph)為基礎,進而修改成互動圖形(interaction graph), 點被分成使用者與互動關係兩種類型,連接此兩種類型點的邊,代表使用者擁有哪些互動 關係。每個使用者類型的點擁有自己的標籤,標籤包含該點的個體的識別(identity),例 如:使用者的識別碼,和屬性(attribute),例如:年齡、性別、居住地。[BC09]主要是對 社會網絡資料中個體與個體之間互動關係的隱私性內容進行防護。提出具結構性的標籤清 單(label list)進行匿名化,經由單一個體具有多種可能的標籤的方法,使得單一個體真正 的標籤資訊被多種可能的標籤所模糊,進而達到個體與個體之間互動關係的隱私性內容被 侵犯的機率達到一定的機率保障。標籤清單是根據將點分成數個大小為k的組別(class), 根據分好的組別中的成員去決定各個點的標籤清單。[BC09]指出若組別內部點的彼此間的 連線,或者組別與組別之間的連線數量過度密集,可能會有個體與個體之間互動關係的隱 私性資訊洩漏的問題。因此,提出了一個安全的分組條件(class safety condition),使得組 別中與組別之間的連線稀疏以保障隱私性的安全。但依然針對是發布單一個匿名化後的圖 形的匿名化方法。
類完全圖研究
密集圖(Dense Graph)問題在過去有很多應用,例如找到thematic groups、組織社交事件、 標記提示等等。其中一個應用是尋找類完全圖(Quasi-Clique)的問題,在過去有很多相關的 研究,如[AR02][LW08]提出的類完全圖是以每個點的degree數量為基礎來定義,[LW08]提 出一個快速演算法(Quick algorithm)去找到圖中最大的類完全圖,此快速演算法採用深度搜 尋法(Depth-First)來設計,並且提出3個刪減(prune)的方法,用以減少執行時間。而此研究 中,我們修改[LW08]的一個刪減的方法並另外提出2個刪減的方法,能更有效的減少執行 時間。除此之外,與其它論文不同的部分在於我們還針對圖形上特定的目標點v,找出包含 點v的最大類完全圖。
在高度分散式環境下進行 Top-k 相似文件檢索
超級節點網路 (Super-peer Networks) [BH03]運作與一般的純P2P網路相似,只是在網路 中選擇了特定節點作為超級節點(Super-peer),這個特定節點在某些客戶端節點集合(Subsets of clients)中,運作方式和集中式伺服器相似。比起普通節點,超級節點一般都擁有較好的處理能力、儲存空間和網路頻寬等,且每一個超級節點負責連結著一組客戶端節點,而每 一個客戶端節點只可連結單一超級節點。目前已有相當多的P2P檔案分享系統,諸如: Gnutella (http://rfcgnutella.sourceforge.net)和KaZaA (http://www.kazaa.com),皆是採用超級節 點的網路拓撲做為其架構,本研究一樣是採用超級節點網路架構做為基礎。 而所謂的內容檢索是透過支援簡單的關鍵字搜尋,比對查詢文件的關鍵字與資料庫中 文件所擁有的關鍵字是否符合,只有符合查詢關鍵字的文件才會被檢索出來,並回傳給使 用者。但是應用在P2P這樣高度分散式的環境時,因資料內容廣泛的分散在網路環境中,系 統無法有效的提供一個全域資訊作為參考,因此往往必須實際移動資料庫中內容,才可進 行跨資料庫的複雜內容檢索。除此之外,語義層疊式網路的方法在群集合併時,所建立的 新群集資訊中,其包含的群集特徵向量的數目有所限制,容易造成我們在未來查詢處理時 必須接觸大量節點資料庫進行搜尋,使得整體查詢成本過於昂貴。因此本研究希望透過改 良式架構去解決此問題,並提供一個有效率且可擴展性的搜尋機制,使得我們在進行Top-k 相似文件搜尋時不需將實際資料做搬移或備份。
天際線查詢處理
天際線查詢的概念最早由[BK01]提出,稱為Skyline Operator,將資料根據多個挑選準 則(Multi-Criteria),做適當篩選。如[WWP11]將天際線的結果決定候選產品定價,如果候選 產品會被市場產品所統治,則表示候選產品沒有競爭力,需要將定價下調,反之則可以將 價格上調,由此來選擇能夠獲利最高的候選產品,以其為公司獲取高獲利。而由於計算天 際線花費的時間與空間成本較大,因此許多改進天際線的演算法也隨之而生,如[TE01]利 用Bitmap判斷統治關係(dominance relation),降低運算成本,但卻是要每筆資料都需要做 Bitmap運算檢查是否會被其他資料統治(dominate),而[PT05]提出的BBS(branch and bound skylines)演算法,是利用R-tree索引結合座標資訊,能夠在拆解MBR過程中,利用座標資訊 大幅度降低需要檢查的資料量。然而,[PT05]發現在實際應用中,應該以使用者需求為導 向思考,也就是將使用者自身的需求當作查詢的條件,且回傳的答案必須盡可能接近該需 求,因而提出動態天際線查詢(dynamic skyline)的觀念。[PT05]利用優勢策略(dominance strategy)排除使用者不可能選出的產品,而使用者則只會從這些不被優勢策略排除的資料中 挑選產品,動態天際線的好處是無論使用者對這個規格的重視度不同,使用者仍只會從這 些產品中挑選。[SB08]利用之前曾經計算過的答案來加速回傳動態天際線的時間,選擇存 放答案採取了三種方式LRU(Least Recently Used)、LFU(Least Frequently Used)與LPP(Least Pruning Power),其中LPP為存放具有較高削減(pruning)能力的參考點答案加速效果最好, 但方法沒有事先對資料建立索引,故處理時間仍過長。[WWC11]考慮動態天際線的範圍查 詢,將Z-order結合優勢策略,在格索引(Grid index)中能夠快速取得動態天際線的範圍查詢 結果。 而由於資料量日益龐大,因此有人希望能將資料做切割平行的處理,以便快速運算並 應付天際線在大量資料的需求。而一個按照空間角度的方法[VD08],被提出來。該方法是 將每筆資料切割資料到空間上不同的角度空間,以便有效率地計算天際線。 另外為了解決更巨量資料的天際線查詢問題,並將此應用Map Reduce框架,有學者 [ZZ11]提出可以將BNL, SFS和Bitmap等演算法,直接套在MapReduce框架上。其方法是直 接用Mapper將大量資料直接對空間切割後,對於每個空間所在的資料點,則以一個相同的Key值作資料的輸出。相同的Key則由相同的Reducer處理,產生出各空間的本地端天際線 (Local Skyline)。最後將由一台電腦集結各空間所產生出的本地端天際線,計算出全域天際 線(Global Skyline)。 然而這樣的做法存在一些缺點,如果資料的片段眾多以至於啟動許多Mapper任務,這 樣的結果會導致Reducer任務會接收到眾多的本地端查詢結果,因此Reducer任務負擔就會加 重很多而造成運算上的瓶頸,並且每個Mapper的本地端結果存在全域結果資料的密度也會 降低。因此[DX12]提出了一個節流的方法,目的在於舒緩[ZZ11]中Reducer任務負擔加重很 多而造成運算上的瓶頸。[DX12]的演算法框架承襲了[ZZ11]的做法,比較重要的不同在於 對於本地端查詢結果做一個流量的控管,做法是每一個Mapper在將資料傳給Reducer之前必 須要經過一層過濾,達到預知從本地端結果中刪除不可能成為全域結果的資料點。除了直 接套用框架的方法之外,亦有不同的方式被提出,如[CH12]是直接以角度切割的方式進行 處理。然而這些提出的方法,都需要計算相同Key的本地端天際線。最後將由一台電腦集結 各空間所產生出的本地端天際線,計算出全域天際線,由於都未考慮大型資料分布的特性, 因此效果也不彰。
於空間資料庫考量雙資料型態的反向最近點之涵蓋最大化
[KM00]最先引入反向最近點(RNN, Reverse Nearest Neighbor)的概念。[KM00]是先針對 每一個點都找到其最近的鄰居,然後針對每一個p點,以p點為圓心去建構圓,半徑為p點到 其最近的鄰居。經由這些點形成的圓形來看是否查詢點落在圓內,利用此資訊來解決RNN 問題。之後,許多文獻開始在研究RNN的延伸問題,如:Monotonic Reverse k Nearest Neighbor(RkNN)或Bi-chromatic Reverse k Nearest k Nearest Neighbor (BRkNN)等等。關於 RkNN的問題,[SA00]是利用一個詢問點q然後針對其分成六個相等大小的區域,對每一個 區域,那些資料點只有是對q而言,前k個近的鄰居才有可能在RkNN的答案集合中,將這些 有可能是答案的資料點全部都丟到候選人集合裡面,最後再去確認此集合中的點是不是真 的是答案。 [YL01]則是針對RkNN的前置處理提出改善反向最近點的樹的結構,使得運用 起來更有效率。而[TP04]是第一個利用平分(bisector)的概念解決RkNN問題的經典文獻,首 先會平分詢問點q和資料點p成兩個平面,一個叫做q-half-plane一個叫做p-half-plane,經由 這個概念,若是有一個資料點落在p-half-plane,那麼此資料點就不可能是我們的RkNN的答 案之一,對每一個點找k個落在p-half-plane是花費高的,因此[WY08]提出了一個演算法叫 做FINCH來解決RKNN的問題(同樣的能夠解BRkNN的問題)。FINCH利用平分的概念來畫 出一個關於詢問點的搜尋區域,只有那些落在此搜尋區域裡面的資料點才有可能是RkNN 的答案,所以那些落在搜尋區域以外的資料點都可以直接被修剪掉。[SS10]提出一個新的 索引結構叫做VoR-Tree,這個索引結構結合了沃羅諾伊圖(Voronoi Diagram)和R-Tree可以有 效率的解決kNN、RkNN和kANN的問題。近來有一系列的RNN、RkNN和BRkNN問題的變 化被提了出來,[KM07]是解決對於可以移動物件的RkNN問題。[YP05]考慮到了在道路網 絡的RNN。[GZ09]解決RkNN中包含障礙物的問題。[XZ05]和[LW14]有n個點包含最大的 BRNN和BRkNN。[KK09]專注在RNN中鄰居的排名。[WO09]是找哪一個區域對於每個點都 能夠有最大的BRkNN。而我們的目標是去找到有一些點,讓這些點能夠能夠讓BRkNN的涵 蓋範圍最大化。
二、研究方法、進行步驟及執行進度報告
我們於過去三年中所發展之三項關鍵技術:『社群與領導者探索技術』、『巨型資料之推 薦物探索技術』及『實體廣告設址技術』,成果報告如下所示:社群與領導者探索技術之成果報告
1、影響力最大化之社群領導者探索
研究目的 一個社會網絡內,與自己的朋友、家人、甚至是陌生人,都可能有頻繁的互動,在互 動的過程中,資訊的流動量是非常龐大的,不同的使用者族群之間討論的議題差異性也相 當大。因此,在整個社會網絡中,使用者想要知道大多數人所感興趣的議題或是流行趨勢 是非常困難的。 而我們的目的就是尋找不同使用者族群中的領導者,稱為種子集合(seed set),期望這 些領導者在整個社會網絡中,影響涵蓋使用者族群的範圍總和是最大的。由於使用者無法 一次接收太大量的訊息,所以找到的領導者個數也會是有限的。當這些領導者推薦給使用 者之後,使用者即可藉由觀察這些領導者所感興趣的物件,獲知整個社會網絡上多數人討 論的趨勢及流行為何。 研究方法在本研究中,我們提出 ECE 演算法(Efficient Candidates Elimination algorithm),其藉由 一門檻值以有效地過濾所有不可能被選為領導者的使用者,使能大幅減少所需要檢查的資 料數量,進而增進貪婪演算法的執行效率。 根據增值影響力[CW10]的定義,每個使用者的影響範圍會與其被選為領導者的順序有 關。對某個使用者而言,影響其增值影響力的使用者,分別有向外路徑鄰居 (out-path neighbor)、向內路徑鄰居(in-path neighbor)及競爭(competition)使用者共三種。在整個社會網 絡上,由該使用者出發,藉由圖的邊連線到的使用者,稱為向外路徑鄰居;反之由其他使 用者出發,藉由圖的邊連線到使用者,稱為向內路徑鄰居,而該使用者所有向外路徑鄰居 的向內路徑鄰居,稱為競爭使用者。這三種使用者只要比該使用者更早被選為領導者,都 會造成該使用者影響力的數值下降。而貪婪演算法的概念是,每次挑選增值影響力最大的 使用者加入到種子集合,考慮上述三種會影響期增值影響力的所有使用者集合 B,只要使 用者 a 的增值影響力都大的話,保證這些使用者中,使用者 a 被選為種子集合的順序一定 最優先。反之若無法保證使用者 a 與 B 集合中的某個使用者 b 何者較大時,則會一直重複 計算該使用者 b 比使用者 a 更早成為領導者的情形下,使用者 a 的增值影響力。直到在 B 集合中,所有剩餘使用者的增值影響力都較使用者 a 小時,及代表使用者 a 被選為領導者 順序最差的情形,此時 a 的增值影響力及為在貪婪演算法的下限值。 由於是挑選 K 個使用者當領導者,先挑選增值影響力的下限值排名第 K 名的使用者, 其增值影響力的下限值即為門檻值。因為至少有 K 個使用者大於該門檻值,某個使用者的 增值影響力小於此門檻值時,代表這名使用者不可能被選為領導者,因此,我們只須對所 有增值影響力大於該門檻值的使用者進行計算,也就是前 K 個使用者進行計算即可。利用 削減策略(pruning strategy) 過濾掉所有不可能被選為領導者的使用者,以達到減少資料檢查
數量之目的,進而增進整體演算法的效能。 實驗結果 實驗的資料集使用的是 NetHEPT 學術協作網路的資料,其中一個點代表一名作者,若 兩個作者曾共同發表論文,則會有一條邊連結兩個節點,而該資料集內共包含 15,233 個作 者及 32,235 條邊。實驗部分,根據[CW10]所提出來的模式來定義每個使用者的影響範圍。 我們設定的種子集合大小為 10,而每條路徑(path)最低機率的門檻值設定為 0.1。以三種不 同的方法,Greedy 演算法[KK03]、CELF 演算法[LK07]、PMIA 演算法[CW10]作為本研究 的比較對象。
本實驗中,領導者集合的影響範圍如圖一所示,四種演算法所找出來的結果是不相上 下的,表示這四種方法尋找種子的能力是相同的。而執行時間如圖二所示,四種演算法呈 現了三種不同的等級,PMIA 演算法花費許多時間在建立索引上,而全部時間僅用了 Greedy 演算法的一半;CELF 演算法與 ECE 演算法相較之下又比 PMIA 演算法更加快速。而找出 種子所消耗的時間如圖三所示,四個方法同樣呈現三種不同的等級。 我們所提出的 ECE 演算法中,利用削減策略化簡節點個數後,原先的資料集合中的點 集合大小從 15,233 變成只剩 15 個,削減比例為 99.90%。而在計算削減策略需要的資訊, 我們所額外付出的時間只佔總執行時間的 1%。因此,根據實驗顯示我們所提出來的方法, 僅需額外耗費非常少的時間,卻能大幅增進整體貪婪演算法的效能。 圖一、領導者集合的影響範圍 圖二、各演算法的執行時間 0 100 200 300 1 2 3 4 5 6 7 8 9 10 In fl u e n ce s p re ad
Seed set size NetHEPT Greedy/CELF/ECE PMIA 0 200 400 600 800 1000 Gre edy PMIA CELF ECE R u n n in g ti m e ( se c) 109 8 7 6 5 4 3 2 1 Initial
圖三、各演算法找出一個領導者的平均時間
2、以鏈結資料為基礎之尋找影響力最大的領導者
研究目的 社會網絡可視為個體(individual)間之互動情形所形成的圖形(graph),圖形中的每個節點 (node)代表一位使用者,而連接兩個節點的邊(edge)則代表兩個使用者之間存在著某種互動 關係(interaction),最常見的即為朋友關係。當兩個使用者存在互動關係時,則我們稱其中 一個使用者對另一個使用者擁有影響力(influence),這個影響力可能是單向也有可能是雙向 的。當一個領導者所涵蓋的使用者族群越大時,其所擁有的影響力也越大。社會網絡通常 呈現 Power-law 的分佈,也就是只有少部份的使用者擁有很大的影響力,絕大部分的使用 者都僅擁有很小的影響力。因此,我們希望能藉由該特性將大部分影響力很小的使用者排 除,以提升演算法的整體執行效能。 研究方法 給定一個社交圖(Social Graph),如圖四所示,和一些行動日誌(action-log),如表一所示。 首先得出傳播機率表(PPG,Probabilistic Propagation Table),如表二所示。之後,利用提出 的 APPM(Apriori Probabilistic Path Mining)來發現影響路徑(influence path),並且利用這些影 響路徑識別出社會網絡中的領導者。圖四、社交圖 表一、行動日誌
APPM 方法由兩部分組成。 第一部分是在不確定資料中的 Apriori 演算法;第二部分 是領導者的產生。在第一部份找出具有較高機率的邊,結合成長度為 k-1 的路徑,以獲得 候選路徑。第二部分從候選路徑中找出具有高頻率出現的 k-path 領導者。 在社交圖中找到候選路徑之後,再使用這些路徑來發現領導者,由於每個路徑是由幾 個邊組成,我們把各路徑轉成鏈(chain)。給定鏈的長度和領導人數和領先程度基準值,利 用我們的算法來發現不同程度鏈的領導者。首先,找出鍊中的第一個點,接著計算他造成 的影響路徑,最後留下那些超過基準值的點,最後將這些影響路徑排序,即可以發現的領 導者。 實驗結果 在我們的實驗中,首先使用一個比較小規模來自 Facebook,用來評估我們所提出方法 的性能。收集的資料量以社交圖的形式包含超過 500 個點及數以千計的邊。為了消除雜訊, 我們只保留擁有三個以上 Action 的使用者,並移除那些完全沒有相連的使用者,最終剩下 134 個節點和 517 條邊。Action 定義為包含 Posting、Liking、sharing 與 leaving comments 等行為。採用三個人對資料集進行標記,取多數決代表的結果視為正確答案。我們將 Goyal 等 人 在 [GB08] 提 出 來 的 三 種 方 法 (like 、 comment 與 share) 以 及 一 個 用 戶 參 與 的 選 擇 (Selection)方法做為比較對象,上述方法的時間週期被設定為兩個月,並且採用 precision、 recall 與 F-measure 三種指標作為評估的依據。 表三列出了四種方法與我們提出的方法比較結果,可以發現選擇方法明顯高於其他三 個 Baseline,這是因為這個方法具有比較低的雜訊,而跟選擇比較,我們所提出來的方法又 具有更好的結果,反映了我們的方法採用影響力鏈,對於使用者影響力的評估有較佳的精 確度。圖五則表示使用不同數量的影響力鏈對於領導者檢測的實驗結果,我們提出的方法 在考慮鏈的數量變多的情況下 precision 會更好,然而 recall 和 F-measure 則會下降,precision 提高是因為影響力鏈的數量增加,能夠過濾出更多的雜訊,並提取更精確的路徑。
圖五、鍵領導者之比較
表 3、Precision、Recall 與 F-measure 比較
以 DBLP 和 Google Scholar 論文引用網路的資料做為另一個實驗資料集,該資料集內 共包含 2525 名作者、3240 篇論文及 1914 篇引用次數,並以 Microsoft Academic Search 作 為正確答案,並以此驗證提出的方法。本實驗最終目的為從 2525 名作者中挑出最具影響力 的十名領導者,在實驗部份,我們以論文引用次數做為本研究的比較對象。在表四中,以 NDCG@10 而言,5-chain 的值高達 0.7018,遠遠高於 Baseline。另外,我們發現一個有趣 的現象,有些論文具有相當長的影響距離,而此影響力會讓其它論文的影響力被忽略,所 以從表四中可看出 3-chain 僅比 Baseline 的效果好一點,但 5-chain 就能很明顯看出效果的 差異。此外,表四中可觀察到,在 NCDG@5 仍保持高數值的同時,NDCG@10 卻些微的 下降,這表示我們刪減掉太多的路徑,為了得到更好的效能,我們應該選擇適當的影響路 徑數目,方能有效的刪減掉多餘的路徑。
3、在圖上尋找最大的並包含目標點的類完全子圖
研究目的 在現實世界中,許多的網路應用都可以被模組化成圖形,像是社交網路或是生物網路 等。在這些圖型上尋找一些密集的子圖集團是一個有趣的研究。這些密集的子圖集團有一 種我們稱為類完全圖(Quasi-Clique),它是一種近似完全圖的圖形。在本研究中,我們想要 針對圖形上特定的目標點 v,找出所有包含 v 點的類完全圖,而且這些類完全圖必須要是 最大的。最大的類完全圖代表不會有一個更大的類完全圖可以包含自己。我們準備了一個 演算法來解決此問題並且提出了幾種改善的方法能夠增進此演算法的性能。此外我們針對 這個問題中的特殊情況又提出了另一個演算法來解決它。 研究方法 本研究基於[LW08]提出的快速演算法(Quick Algorithm)進行改進,並提出 2 個新的削減 策略(引理 5 與引理 6)來增加整體的效能,更快的找出最大的類完全圖。針對找圖的類型分 成兩個方法:Target-Extending (TE)演算法及 Target-Clique (TC)演算法。TE 演算法主要針對 類完全圖,使用以下 5 個引理進行生成及削減: Lower bound (引理 2):考慮一個符合目標的類完全圖最少需要加幾個點,作為下限 值。
Critical vertex (引理 3):擴展加入的點一定要包含節點分支數(degree)不足之點的鄰 居。
Upper bound (引理 4):考慮一個符合目標的類完全圖最多只能加幾個點,作為上限 值。
Farthest distance (引理 5):考慮符合目標的類完全圖與目標點最遠點的連接長度為 多少。
Sequence (引理 6):假設存在兩個類完全圖 X, Y,當 Y 包含於 X 內時,Y 就不能是 最大的類完全圖。
用較簡單的方式算出答案,以圖六左圖作為例子,從目標點(v1)出發,從其鄰居中(v2, v3, v4, v5, v6, v7, v8),找出鄰居數最多的點(v2)進行擴展,再重複此步驟將目標點的鄰居掃過,即 會找到所有的可能。 圖六、TC 演算法 實驗結果 我們分別採用人造資料與實際資料作為實驗資料集。人造資料集包含 5000 個點,每個 點平均節點分支數為 20。在實驗部份,以[LW08]的快速演算法做為本研究的比較對象。實 際資料集來自 https://snap.stanford.edu/data/,包含 8298 個點及 100764 個邊,其中節點的平 均分支數為 24,最大的節點分支數高達 743。 圖七、節點分支數的參數與執行時間 在人造資料集中,如圖七所示,我們的方法其執行效率皆比快速演算法高,另外,我 們觀察到引理 5 在節點分支數的參數較小時,其執行效率較高,是因為大的類完全圖可能 被很快的找到,所以可以忽略那些被包含在此類完全圖中較小的子圖。而在節點分支數的 參數較大時,為了計算子圖是否包含在類完全圖中,故使引理 5 的執行效率變差。
圖八、實際資料集的執行時間 在實際資料集中,如圖八所示,我們所提出之方法的效能大多比快速演算法較佳,使 用引理 5 的方法其效率比起沒有使用引理 5 的更好。在圖八中可觀察到,當平均節點分支 數較大且節點分支數的參數較小的時候,預設方法的執行時間會大於快速演算法的執行時 間。在本實驗中,可以看出 B+23456 的執行效率比快速演算法快,在大多數的例子裡,引 理 6 比起引理 5,可以提供更佳的執行效率。
4、考慮時間序列社會網絡資料之隱私資訊匿名化
研究目的 現今,各種類型的社會網絡平台在世界中越來越流行並受到注視。社會網絡中包含許 多個體的資訊(entity information)以及個體之間的互動關係(interaction relationship),而 這些個體之間的互動資訊中可能包含具隱私性(privacy)的內容。擁有社會網絡資料(social network data)的擁有者為了提供社會網絡資料給第三方進行分析與研究,勢必要對社會網 絡資料中,具隱私性的資料做適當的處理才能分享出去。為了保護社會網路中的隱私性資 訊,許多相關的匿名化技術(anonymization technique)開始被發展。而之前的研究中,只 注重開發針對單一社會網絡中的隱私性資訊進行防護並發布單一個匿名化後的圖形的匿名 化方法。不過,提供單一匿名化後的圖形資料,可能不足以分析整個社會網絡的演進。因 此,我們將利用時間序列對社會網絡資料中的隱私性互動關係進行防護,既使發佈時間序 列中多個不同時間點的匿名化後的社會網絡資料,也能使得這些社會網絡資料的隱私性內 容無法輕易的被惡意的攻擊者(adversary)竊取出來,並使得這些社會網絡資料擁有高的 實用性(utility),以便第三方進行社會網絡的演進分析。 研究方法 在我們的研究中,考慮的環境是給予一時間序列的社會網絡資料,此些資料是隨著時 間而遞增地(incrementally)增加,也就是點和邊隨著時間點的推移只會增加不會消失。每 個點在原始資料中都帶有該個體的標籤,邊只存在一種類型的互動關係。希望達到與[BC09] 相同的隱私性目標,對這一時間序列社會網絡資料中的個體與個體之間互動關係的隱私性 內容進行防護,並發布這段時間序列中多個不同時間點的匿名化後的社會網絡資料,使得 社會網絡資料中的個體與個體之間互動關係的隱私性內容,無法輕易的被惡意的攻擊者經 由多筆被發布的不同時間點已被匿名化後的社會網絡資料中竊取出來,並使得這些社會網 絡資料擁有好的實用性,以便第三方進行社會網絡的演進分析。我們指出利用現存的[BC09]匿名化方法去分別產生並發布不同時間點的匿名化後的社 會網絡資料,可能會發生隱私性資訊遭到惡意攻擊者透過觀察發布的多筆不同時間點匿名 化後的社會網絡資料而被輕易揭露。除了利用[BC09]方法個別(individually)對不同時間 點的社會網絡資料進行匿名化,我們也採取遞增(increasingly)與遞減(decreasingly)的 策略去匿名化不同時間點的社會網絡資料,並從中進行觀察得到設計演算法的三個想法, 而我們的匿名化演算法將以此些想法為出發,經由修改[BC09]的匿名化方法而來。第一個 想法,我們會將採用遞減的策略去產生多筆不同時間點的匿名化資料,也就是我們將先對 最新時間點的資料進行匿名化,接著利用刪除點和邊的方式產生前一個時間點的匿名化資 料,盡可能的保證匿名化後每個時間的組別沒有發生改變。第二,盡可能的將擁有相同時 間戳記(timestamp)的點分在相同的組別中。第三,盡可能使得組別中的點彼此連線與組 別之間的連線稀疏。因此,我們提出時間序列的安全性分組條件(Time-Series Class Safety Condition)來保障分組後的隱私性安全。此分組條件有三條規定:第一,擁有相同時間戳 記的點才能分至同一個組別中。第二,同一組別中的點彼此之間不能有任何的連線。第三, 任兩個組別之間彼此的連線數量要小於等於 k。不同於[BC09]的分組條件,我們的第三個 分組規定,提供了較寬鬆的限制,可以使得後續將加入的虛擬點(dummy node)減少,並 可達到相同的安全機率保證。根據這三個分組的規定,將利用我們設計的演算法(Decreasing Multiple Release Anonymization Algorithm)進行分組並產生匿名化後的結果。首先對最新時 間點的社會網絡資料中的點採用貪婪(greedy)的策略進行分組,使得分組後的結果皆符 合時間序列的安全性分組條件。在進行分組之前我們會採取與[BC09]相同的方法,先對點 根據其標籤中的屬性重要性進行排列,再根據排列後的順序進行貪婪的策略分組。這重要 性是根據已知的大部查詢與哪種屬性有較高的相關性而決定。透過這個排序的想法,擁有 相同屬性的點會有較高的機會分至相同的組別中,因此在對匿名化後的資料利用抽樣一致 性圖表的方法(Sampling Consistent Graphs Method)進行查詢時,有機會提升查詢後的結 果的準確度。 分組完成後,為了進一步減少部分組別中的點數依然無法達到 k 個,我們會進行更精 煉的改進(refinement)。在此階段,我們會先將點數未滿 k 個的組別依序取出,並將其中 的點依序地嘗試放入其他未滿 k 個的組別中,以期待更多的組別達到 k 個點,可進一步減 少下個階段所要增加的虛擬點。當精煉的改進完成後,依然會有些許的組別為滿 k 個點數, 此時我們將創建虛擬的點填補,而該虛擬點的標籤由將放入的組別中的點所擁有的標籤隨 機挑選出,透過加入虛擬點的步驟後,每個組別皆可達到 k 個點。此時,根據分組後的結 果給予每個點所擁有的標籤清單,使得此時間點的社會網絡資料中,每個點至少有其他k − 1個點與他擁有相同的標籤清單,進而完成最新時間點的社會網絡資料的匿名化。接著,經 由刪除前一個時間點不存在的點和邊,來產生前一個時間點的社會網絡資料匿名化的結果, 藉由此方式各個時間點的匿名化後的社會網絡資料皆可順利完成,使得各個時間點的組別 成員沒有發生變化,惡意的攻擊者無法輕易地經由多筆被發布的不同時間點已被匿名化後 的社會網絡資料中竊取個體與個體之間互動關係的隱私性內容,進而使得一社會網絡中多 個時間點的匿名化資料達到個體與個體之間互動關係的隱私性防護。 實驗結果 我們採用兩個真實的社會網絡資料集合 Flickr 和 Slashdot 進行實驗。由於此兩個資料 集合的點沒有標籤,因此對每個點隨機產生:年齡 (10~60)、性別 (男性或女性) 和居住地
(50 個國家) 的屬性。圖九、圖十分別顯示這兩個資料集合的度數分布,橫軸是根據度數大 小排序後的點,縱軸就是該點的度數值,可以發現兩個資料集合的分布皆呈現長尾分布 (power law distribution)。因此,資料庫集合中擁有大量的低度數的點,因此在建立組別時, 大部分的組別能快速的分成一組,不會因為連線數的因素而造成比對時間的增加。圖十一、 圖十二顯示我們演算法於這兩個資料集合的執行時間,可發現 Flickr 資料集合中隨著 k 越 大其執行時間越短,這是因為所要比對的組別數相對減少的關係,而 Slashdot 資料集合因 為相比 Flickr 資料集合是小許多的,因此此種現象不明顯。
圖九、Flickr dataset 度數分布 圖十、Slashdot dataset 度數分布
圖十一、Flickr dataset 執行時間 圖十二、Slashdot dataset 執行時間
我們描述了兩種類型的聚合查詢:單一跳躍查詢(single hop queries)和二次跳躍查詢 (two hops queries),透過回答一系列的聚合查詢來評估這些匿名化後的社會網絡資料的實 用性。我們採用與[BC09]相同的抽樣一致性圖表的方法進行匿名化後的資料的查詢,根據 查詢後的結果去計算相對錯誤率,當作評斷匿名化後的資料的實用性的依據。我們將 Flickr 資料集合分成 4 個時間點,Slashdot 分成兩個時間點的資料,分別對各個時間點匿名化後的 圖形去抽樣 10 個抽樣的圖形結果,並分別對這 10 個抽樣後的圖形結果進行相同的查詢, 將這 10 個查詢的結果所求得的平均值當作此次查詢的答案,再去計算相對錯誤率。我們將 會對每個時間點的抽樣後的資料進行 50 個關於年齡、性別和居住地屬性的查詢,與年齡相 關的有 35 個,性別相關的有 5 個,居住地相關的 10 個,每個查詢都會得到一個相對錯誤 率,平均這 50 個相對錯誤率求得平均相對錯誤率。 如圖十三、圖十四、圖十五、圖十六顯示兩種資料集合,在各個時間點以及不同 k 值 變化下進行單一跳躍查詢後的平均相對錯誤率。除此之外,也顯示不同的屬性排序順序(未 排序和根據年齡、居住地和性別排序)對於平均相對錯誤率的影響。可以發現,透過我們 設計的匿名化演算法,在 Flickr 資料集合未排序的情況下平均相對錯誤率大約是 3%至 4.5%, 經過排序後可降至 0.08%至 0.025%之間,而在 Slashdot 資料集合下也呈現低的平均相對錯 誤率。因此,透過我們設計的匿名化方法所產生的多個不同時間點的匿名化後的社會網路 資料,用來回答聚合查詢能有準確的查詢結果。
圖十三、Flickr dataset (unsorted) 單一 跳躍查詢的平均相對錯誤率
圖十四、Slashdot dataset (unsorted) 單 一跳躍查詢的平均相對錯誤率
圖十五、Flickr dataset (ALG) 單一跳躍 查詢的平均相對錯誤率
圖十六、Slashdot dataset (ALG) 單一跳 躍查詢的平均相對錯誤率
推薦物平行探索技術之成果報告
1、在高度分散式環境下進行 Top-k 相似文件檢索
研究目的 在文件資料庫的查詢處理上,Top-k 相似文件查詢主要是協助使用者可以從龐大的文件 集合中,檢索出和查詢文件具有高度相關性的文件集合。將資料庫內的文件依據和查詢文 件之相似度程度,選擇出相似度最高的前 k 篇文件回傳給使用者。然而過去集中式資料庫, 因其覆蓋性和可擴充性的不足,使得這種排名傾向的文件查詢處理,需耗費大量時間及運 算成本。近年來,使用端對端(Peer-to-peer, P2P)架構解決相關的文件檢索問題已成為一種趨 勢,但在高度分散式環境下,支援排名傾向的相似文件查詢是困難的,因為缺乏全域資訊 和適當的系統協調者。因此我們提出一個利用區域切割的作法,將 P2P 環境劃分成數個子 區塊後,建立特徵索引表。使得在查詢處理時,可透過索引表加快挑選出 Top-k 相似群集 的速度,並且確保有適當數量的回傳結果。 研究方法 首先,利用分群演算法先針對各節點資料庫作前處理,並且透過區域切割和建立特徵 索引表,達到減少查詢時間的效果。在前處理步驟中,我們會先針對各文件資料庫內的文 件作特徵抽取,包括三階段的處理,利用傳統資訊檢索常用的技術,諸如斷詞切字將語句 拆解為單字,包含空白及標點符號等、去除停用字、詞幹還原等步驟,並且根據各資料庫 內的每一份文件內容計算其詞頻 (Term Frequency, tfi) 做為權重後,進行排序並得到數個特 徵向量做為該文件的壓縮資訊描述。接著,為了使未來在高度分散式環境下的查詢處理可以有效率的進行,並且減少計算 時間,我們需再針對各節點資料庫內的文件進行分群動作,將相似的文件分布至同一群集, 並以數個特徵向量表達此群集內的文件分佈,使得各資料庫可以較少量的群集特徵向量來
表達所擁有的大量文件資訊。在分群演算法的挑選上,我們使用的是階層式聚集分群演算 法 (Hierarchical Agglomerative Clustering, HAC)對同一資料庫下的文件集合做分群。因此特 徵空間中,可將每一份文件轉換為特徵向量,在分群過程中,我們會將每份文件視為一個 各自獨立的群集,然後每次迭代皆選取距離最近的兩個群集做合併,形成新的群集,反覆 遞迴直到分群數目達到系統要求為止。最後依此邏輯逐序將單一資料庫下的所有文件,建 立成一階層群集樹 (Hierarchical Clustering Tree, HCT)。最後,每份文件群集會根據新的權 重,對群集內的特徵向量做排序,保留住 Top-k 的特徵向量,作為該群集的壓縮資訊描述。
當各個資料庫做完前處理動作後,我們選擇出數個啟動節點 (Initiator Peer) 對整體的 高度分散式環境做區域切割 (Zone Creation),藉由每個區域各個單一啟動節點負責各別運 算,並收集該區域內所有節點擁有的群集特徵向量後,建立屬於各區域內的特徵索引表 (Feature Index Table)。而所謂的啟動節點是在整體高度分散式環境中,具有特定工作的節點, 負責決定各節點資料庫在前處理步驟中的分群演算法的執行周期,以及收集該資料庫下的 所有群集之特徵向量,在功能上相似於[BH03]中,所提出的超級節點。在挑選啟動節點上, 必須滿足特定公式且盡可能滿足兩個原則:挑選出的啟動節點個數必須適量、需均勻散佈 在端對端網路環境中,也就是彼此之間的實體網路位置距離。當決定完各個啟動節點之後, 每個啟動節點會根據預設的區域節點數量上限,執行訊息擴散演算法 (Flooding-based Algorithm),將整體端對端網路環境在邏輯上切割成數個區域。每個啟動節點會先對周遭直 接連結的鄰居節點發送一探測訊息 (Probe Message),標記該節點成為此區域內的成員節點, 直到 P2P 環境內的所有節點皆各自屬於某個區域控管。 當端對端網路環境已被切割成數個子區域後,便可透過各個區域內的啟動節點,去收 集該區域內所有的群集特徵彙整資料,並將其存放至啟動節點所在的資料庫內。而這些收 集來的群集資訊,啟動節點會一一將其原始的 Top-k 向量刪減至 Top-m 向量,並將這些特 徵向量做為各群集新的代表性群集特徵彙整資料,並且去除具有重覆性的字詞特徵。最後, 便以這些剩餘具有代表意義的字詞,去建構出區域的字詞特徵索引表,並路由給其他的啟 動節點。 實驗結果 實驗所使用的資料,是 Ohsumed 線上醫療資訊文件資料庫。該文件資料庫是從過去的 西元 1987 年至 1991 年五年間彙整醫學研究而成,共包含了三十五萬份的心血管醫療病例 報告。實驗方法主要目的是模擬高度分散式環境下,進行 Top-k 相似文件檢索時,回傳結 果的整體準確率 (Precision) 與查詢成本 (Cost),且為了驗證其可擴充性,我們模擬了數種 不同節點數量的 P2P 環境。
以兩種不同的方法,SON-based 演算法[DN08]、Normalized Flooding 演算法[GM05]作 為本研究的比較對象。 本實驗中,在不同節點數量時的查詢成本如圖十七所示,SON-based 演算法的查詢成 本,隨著節點數量增加,呈現大幅增加查詢成本;而所提出的演算法在查詢成本上明顯低 於 SON-based 演算法。而在不同節點數量時的準確率如圖十八所示,我們的演算法在不同 的節點數量下以及不同的 Top-k 查詢之下,得到的準確率並沒有預期的好,所回傳出的結 果文件其準確率都低於 SON-based 演算法。因為 SON-based 演算法在查詢處理的過程中, 所接觸到的節點數量是較多的,且檢索出並回傳的文件數量也遠多於我們所提出的演算法, 因此在準確率上可明顯提升不少。另外在保留不同數量的代表性字詞特徵向量時的準確率,
可藉由圖十九所得知,當我們的演算法在增加保留的代表性字詞特徵向量時,我們整體準 確率可有效提升,但整體的查詢成本也因為代表性字詞特徵向量的增加而上升。 因此由實驗結果顯示,雖然準確率並沒有 SON-based 演算法來的優異,但是可透過調 整代表性字詞特徵向量的保留數量,使得在查詢成本上卻可以降低不少。 圖十七、在不同節點數量時的查詢成本比較圖 圖十八、不同節點數量時的準確率比較圖 圖十九、保留不同數量的代表性字詞特徵向量時的準確率比較圖
2、基於 MapReduce 框架進行有效的天際線查詢處理
研究目的 資料庫的發展已經發展了許多年,人們對於資料的查詢也趨於多樣,促使近年來偏好 查詢是成為一個很熱門的研究議題。在所有的偏好查詢中,天際線查詢更是在現今資料庫 以及資料檢索中是一項熱門研究的題目之一。伴隨著科技的演進,人們可以收集和利用的 資料急劇的增長,海量資料的運算處理變成迫切解決的問題。藉由 Google 在 2004 年發表 的一份開放文件[DG04]中分享了 MapReduce 程式化運算框架,使得以往的許多查詢在海量 資料環境所遇到的障礙都得到了有效的解決方案。本研究在於如何設計一種更有效的 MapReduce 演算法使得天際線查詢的處理能夠更有 效進行,並對此演算法提出可行性的證明,最後實作在 Hadoop 平台上驗證此演算法具有更 加的有效性及可用性。 研究方法一 目標在於不僅使得多 Reduce 任務可平行處理,並且為了達到平型目的也有最小化支配 空間,也就是最小化網路傳輸額外負擔。之前有提到讓資料片段有比較均衡的本地端天際 線結果的產出,使用角度分割來前處理資料是很理想的方法。所以演算法在執行前資料已 經被角度分割的方式分割成好幾個片段。 當演算法開始時會先啟動 Map 任務,啟動的 Map 任務數量決定在於資料分割的片段數 目,每一個 Map 任務得到資料的片段後開始運算 Map 演算法。Map 演算法分成幾個階段: 第一階段會對得到的資料片段去尋找 MBR,在二維平面的範圍是矩形,三維空間是長方 體。
定義(minimum bounding corner,MBC):MBR 範圍可以購成許多的邊角,其中存在 一個邊角,此邊角在每個維度中數值是最小的,它可以支配自己以外的所有邊角,這個邊 角稱 MBC。 MBC 在空間中的位置未必存在真正的資料點,然而我們視作它是虛擬的資料點,並以 他的座標數值視作它的資料數值。綠色的邊框表示該資料片段的 MBR,黃色的點表示該 MBR 的 MBC。 引理:MBC 每個維度值由資料片段 R 中在該維度擁有最小數值的資料點所構成。記作
d R
MIN d MBC. i n. i,n 。定義(Pivot nodes):Pivot nodes 表示構成 MBC 的資料點,這些資料點擁有在某維度最 小 的 數 值 , Pivot set 表 示 在 資 料 片 段 R 當 中 的 Pivot nodes 所 成 的 集 合 。 記 作
D} , . = . R | { = PP[R] a a MBCdi ndi di 。
第一階段找出了 MBC 以及 Pivot nodes 之後進行第二階段 Map 任務。第二階段開始, 先拿 Pivot nodes 去對整個資料片段檢查支配,而不去做天際線運算。因為 Pivot nodes 擁有 在某個維度上有不被其他資料點支配的數值,所以 Pivot nodes 一定會成為本地端天際線查 詢結果,這樣的做法可以先將大部份不可能成為本地端天際線查詢結果的資料去除。去除 掉大部分的資料點之後,接著再對於剩下的資料點進行本地端天際線運算求得本地端結 果。 第三階段則要準備輸出給 Reduce 任務所需要的資料,為了要使得 Reduce 任務能平行 的運算,我們分配每個 Reduce 任務各一組 Map 任務的本地端天際線查詢結果,這是第一 類 Reduce 任務輸入資料。第二類輸入資料是所有 Map 任務的支配空間,以便平行的檢查 支配。因此每個 Map 任務都需要將自己的支配空間的資訊傳遞給每個 Reduce 任務,是一 對多的傳遞,然而將接收某 Map 任務天際線查詢結果的 Reduce 任務不用收集該 Map 任務 的 MBC 資訊。Map 任務的支配空間僅需要傳遞 MBC 這個虛擬資料點,因為它隱含了本地 端資料片段的支配能力。因此目前為止是 Map 任務每個階段要進行的事項。
接下來每個 Reduce 任務會從每個 Map 任務收集資料,一個 Reduce 任務收集的資料包 含兩類:第一類為某段資料片段的本地端天際線查詢結果,第二類是每段資料片段的支配空 間資訊
Map 任務的支配空間的資料點(MBC),拿來與本地端天際線查詢結果檢查支配運算。本地 端結果會因為所有支配空間的支配檢查而被去除掉不會成為全域查詢結果的資料。而剩下 的資料點即為全域天際線查詢結果。這個過程可以平行的進行,而每個 Reduce 任務可以平 行地將查詢結果寫回分散式資料庫,而不用再進行事後檢查。 實驗結果 為了驗證本研究各種演算法的效能,我們採用 Amazon 的 EC2 平台佈署了一個 MapReduce 的叢集運算框架。每個運算單元的 CPU 時脈為 2.6GHz,記憶體 2G。資料採用 1M 萬筆無欄位相依 4 維資料,分別以不同的資料維度、不同的資料相依程度、不同的分割 片段數目來進行實驗。分割片段數目預設為 16 個片段。 在圖二十中,片段數比較少的情況直觀演算所花的時間比較長一些,這是因為在 MapReduce 框架下 Reducer 的啟動需要固定的 CPU 成本,這樣的成本由兩個 Reducer 分擔 拖累了單一運算所需要的時間。然而隨著片段數目的增加,固定成本平分給多個 Reducer 來負擔,使得 Reducer 的 CPU 時間越來越能表現在演算法效能上面。隨片段數目的增加, 兩個演算法的平均 Reducer 的 CPU 時間差距越來越顯著,這說明了直觀演算可以分擔單一 運算的瓶頸,使得單一運算工作可以平行運算,進而加速整體查詢的回應時間。 圖二十、片段數目對 Reducer 運算的影響 從圖二十一可以發現到隨機資料分割在平均運算時間比較長,最長時間與最短的片段 在運算時間上差距也不大。看到網格分割的部分,在平均的運算時間上面遠小於隨機分割 的平均時間,在角度分割部分也可以觀察到同樣的現象,這現象可以實證事先分割的方法 可以減少多餘的運算成本。 圖二十一、不同的分割策略對 Reducer 平衡程度的影響
圖二十二、分割策略對全域天際線貢獻的比率 從圖二十二中可以知道在網格分割的方法中大部分片段並不會產出全域天際線的資料 點,而且這些沒有貢獻的片段仍然需要消耗許多運算成本。而角度分割方法,每個片段或 多或少都會有全域天際線的資料點的產出,而且它們產出的比率也不會有懸殊差距,因此 就不會發生有片段因為運算時間過長拖累整體回應時間的情形。 研究方法二 由於天際線本身資料分布的特性,當越多的資料點加入時,將會有越多的資料點不是 天際線點。也就是當資料量越大時,天際線資料點的比例也隨之降低許多。因此透過事先 取樣(Sample)的方法,對取樣的點,先行計算出臨時天際線,再利用此天際線過濾大量非天 際線點,最後再將所有的資料,生成實際的天際線點,這樣的方式可以大幅減少資料量, 並減少計算時間,此方法稱為 MR-Sample。其中我們有三種取樣策略。 1. Monotonic Function (單調函數法) 該策略是將每筆資料以一個單調函數計算後,將取樣後的點小於一定門檻值後,再予 以取樣。
2. Center Vector Distance (中心向量距離法)
該策略是根據[LH10],我們希望能選擇越不平衡的樞紐點,一個樞紐點的大小,則定 義為資料上最大維度的數值,減去最小維度的數值。定義一個門檻值,將取樣後的點大於 一定門檻值後,才予以取樣。 3. Preliminary Competition (預賽淘汰法) (A)原始資料點 (B)找出含有天際線的網格 (C)於網格內找出實際的天際線 圖二十三 該策略是預先以各 Mapper 進來的前一萬筆資料,進行一次的天際線計算,取樣後的點, 必須先看是否會被該天際線的點統治,如果不會被統治,則予以取樣。 另一個方式,則是將大量資料以網格空間分割,使得每個網格存有數百到上萬筆資料。 再以網格位置直接作天際線運算,找出含有天際線資料點的網格位置,最後將資料切成各
網格小片段合併,找出實際天際線資料點。由於不需要計算出區域天際線,就可以直接找 出全域天際線。如圖二十三所示。 實驗結果 我們利用亞馬遜提供的 S3 儲存服務來存取資料,採用的資料為人造資,是參照[BK01] 產生,有 1M~10M 的資料集,維度設定為 2~10 個維度,並設定各個維度的數值範圍為 1~1000 的整數,產生方式為一般獨立分布(Independent Distribution)。 在圖二十四與圖二十五中,說明在 MR-Sketch 的輸出時間少於 MR-BNL [CH12]與 MR-Angle [ZZ11]。這是由於資料隨著維度的增加,MR-BNL 與 MR-Angle 產生的天際線資 料集會非常多,最後一台電腦運算,就沒有平行的效益,因此效果不彰。而 MR-Sketch 是 由各運算單元輸出非天際線點,再由一台電腦集結所有的非天際線點,無須再次計算就能 輸出結果,因此效率較好。 圖二十四、不同維度下 2M 筆 獨立分布資料的回應時間 圖二十五、不同資料筆數下, 維度 12 的獨立分布資料的回應時間 而 MR-Sketch 的第一階段需要取樣資料點數,以便節省運算。圖二十六顯示在維度小 於 10 的情況下,時間會明顯減少。然而隨著維度增加,取樣的效益則會降低。 圖二十六、不同取樣數在不同維度下對時間整體影響
3、考量客戶喜好之最高獲利產品查詢
研究目的 當公司想要從眾多的候選產品中挑中一個產品進行生產並推出市場時,必須能夠知道這個候選產品在市場上有較高的影響力,能夠成功吸引到客戶的目光,使得達到銷售產品 並獲取最高的獲利的目的。在[WWP11]中候選產品經由跟市場上已經存在的產品競爭決定 是否具有影響力,若是候選產品的產品屬性不具影響力則將候選產品的定價下調,使得候 選產品因為價格因素而具有影響力。但常理來說,產品的影響力應該由客戶量來決定,因 為客戶是市場供需中的需求方,所以越多客戶喜歡的產品,產品的影響力越高。除此之外, 計算動態天際線的成本高,若想算出真正的答案會花費很多時間。因此,在本研究中,我 們將客戶偏好納入考量,且在與市場產品競爭下,使用平行處理方式,選出一個候選產品, 幫此產品定價使得此產品能夠獲取最高的獲利。 研究方法 給定三組資料,分別為候選產品、市場產品與客戶偏好。將市場產品與客戶偏好各自 進行資料分片。分片方式從[LS12]的分片方法延伸,先隨機選點 V 個,再讓所有資料點選 擇距離最近的選點,並且每個分片如同 R-tree 的 MBR 會記錄的每個維度的最高與最低的 值。之後可以產生出|候選產品|×V×V 的組合量。如果每個組合一起執行的話,會有讀寫同 一塊記憶體的問題,而每個候選產品跟候選產品之間是不會互相影響的,因此,我們平行 採取平行不同候選產品的組合,這樣就不會產生同時讀寫同一塊記憶體的問題。 除此之外,由於資料有做分片並且每個分片都有維度資訊,因此可以採用維度的相對 位置使得執行的組合量能夠降低或是降低執行複雜度。在此,我們提出兩個刪減策略,策 略一主要是降低組合量,策略二主要是降低客戶偏好的計算複雜度。 策略一:以候選產品為基準點,若市場產品的分片無法成為候選產品的反向式天際線, 則此市場產品的分片與候選產品的組合就不需考慮。 策略二:若候選產品存在一個屬性,此屬性比市場產品的分片屬性更接近客戶偏好的 分片屬性,則市場產品的分片無法影響候選產品獲取客戶偏好。 實驗結果 我們採用[PW12]在 Priceline.com 與 Expedia.com 中獲取的實際資料集,包含候選產品 149 個、市場產品 4787 個與客戶偏好 1000 個,其中產品屬性有 2 個,價格最高$1414319。 我們的方法是採用選點後將資料分片,之後在平行處理,因此在圖二十七中,我們呈 現在平行數量為 4 下,即使不使用任何刪減策略,也能夠加速 6 倍以上。在圖二十八中, 顯示使用的選點數越多,能夠刪減的組合數也越高,但是我們從圖二十七中卻發現速度沒 有加快,這是因為選點數越高,組合數也隨之提升,因此做多個組合的時間把刪減的組合 數的時間給掩蓋掉了。在圖二十九中可以發現平行的數量越高速度也越快,但是平行數量 超過 4 以後加速度明顯降低,主因是受限於機器的運行能力,因此我們的平行數量預設為 4。
圖二十七、不同選點數的執行時間 圖二十八、不同選點數的刪減能力 圖二十九、不同 Thread 的執行時間 由於 Sigma 值是在候選產品無法吸引客戶喜歡時,調低價格的參數,因此隨著 Sigma 的提高,候選產品的訂價也能往上提,如圖三十中所示,獲利也能跟著往上提。 圖三十、不同 Sigma 下的獲利 0.000 2.000 4.000 6.000 8.000 10.000 12.000 4 0 3 5 3 0 2 5 2 0 E XE C UT ION T IME ( SEC) NUMBER OF PIVOTS Basic Parallel_B Parallel_1 Parallel_2 Parallel_1+2 0.2 0.3 0.4 0.5 0.6 0.7 0.8 4 0 3 5 3 0 2 5 2 0 P R UNNING P OW ER NUMBER OF PIVOTS
Parallel_1 Parallel_2 Parallel_1+2
0.000 0.500 1.000 1.500 2.000 2.500 3.000 3.500 2 3 4 5 6 E XE C UT ION T IME ( SEC) NUMBER OF THREADS Parallel_B Parallel_1 Parallel_2 Parallel_1+2 110440 15999068 26894664 0 5000000 10000000 15000000 20000000 25000000 30000000 0.50 0.75 0.90 P ro fit ($ ) Sigma
實體廣告設址技術之成果報告
1、於空間資料庫考量雙資料型態的反轉式前 k 相鄰之 Top-N 查詢
研究目的 由於資訊科技的發展,資料和資訊的分析對於現今的生活有越來越多的應用,如何有 效率的計算和處理出使用者想要得到的資訊,給予使用者選擇上的幫助相當重要。假設有 一個情境,在一個區域中有幾個開店的選擇,而根據現有住戶的分布情形,如何有效率的 找出可能有最大客群的地點,可以使開店得到最大的收益。除此之外,也可用在軍事分析 上,若已知敵我雙方的軍隊分布資訊,如何找出需要加強部屬的地點。有關於空間資料庫 中反向最近點的研究近年來相當多,可以分為兩種型態,一種為單一種類(monochromatic)、 另一種為雙種類(bi-chromatic),在此將針對更難的後者來探討。 研究方法 在空間資料庫中,會先得到地圖上的資料點,資料點又分成兩種型態,一種可以視作 商店的假想位置,另一種則為顧客的點。目的是在使用者定義下的 K(離潛在顧客最近的 K 個)和 N(使用者希望得到最大個前 N 個)中,有效率的可以算出前 N 個擁有最大潛在客戶的 資料點。 在前置作業中,先對於商店的假想位置做沃羅諾伊圖的索引結構,也就是對每一資料 點和資料點中間畫出中線將其切成兩塊區域,再將區域做統合,基於這些資訊就能很快得 到每個顧客資料點最近的商店資料點。然後與它相鄰的標記為第一層,再下去為第二層以 此類推。接著,對於每一個商店資料點都存一些資訊,內容包括在沃羅諾伊圖中與它相鄰 的資料點,並分別記錄與它們的距離。對於每一個沃羅諾伊圖的資料點都要做過濾,如果 小於現在的過濾門檻則不需再考慮,反之則計算其反向最近點的值(BRKNN),再去檢查是 否高於門檻,如果是則去更新成為新的前 n 個資料點。 此法可以有效率的縮小需要蒐尋的區域,且在此法下,可以保證落在需要蒐尋區域外 的點,絕不可能符合使用者需求,而可經由過濾的過程將之刪去,使得畫出的區域快速的 縮減,並在確保正確性的情況下,得到很有效率的前 N 個答案。 實驗結果 由於目前並無相關類型的有效的演算法,因此在此與一般的做法來比較,來分析我們 的演算法可以過濾不算的區塊、所需要的時間、還有與使用者定義的 K 值相互的關係。 首先從圖三十一觀察,可以發現我們的做法與一般的做法時間上有相當大的差別,而 且差距相當的大,而且可以觀察出在 K 值越小的時候相差越大,但不論 K 值為多少我們始 終與一般的做法有著倍數的時間效率。而從圖三十二可知在 K 值越大時執行時間會稍微增 加,主要是 K 值越大時需要考慮的層數增多,這因素使得可過濾掉的區塊變得較少,但既 使在 K=5 時,我們的演算法仍能保持超過六成的過濾效率,而在 K 值較小的時候更是有驚 人的近乎九成的過濾效率,也因此能讓時間大量的減少,達到高效率。圖三十一、不同的 K 對處理時間的影響 圖三十二、不同的 K 的過濾效率
2、於空間資料庫考量雙資料型態的反向最近點之涵蓋最大化
研究目的 假設空間中有一些候選商店跟住戶,想在這些候選商店中選幾家來開,我們期望所開 的店能夠擁有的潛在客戶越多越好。 所謂的潛在客戶是指每一個客戶會把離他前 k 個最近的商店當作會去光顧的店家。這 些客戶就是離他前 k 個最近的商店的潛在客戶。舉例來說,假設目前 k 等於 2,那麼離客 戶 A 最近的兩間商店就會擁有這個潛在客戶 A 的分數,對這兩間商店來說就是要找哪些顧 客會把自己選為最近的店家(monotonic Reverse k-Nearest Neighbors)。如果選擇這兩個候選 商店當成要開的新店,則會 overlap 這位客戶 A,這位客戶對總客戶群來說貢獻度只有 1, 所以如何避免 overlap 是個重要的問題。 研究方法 在此設計了兩個經驗法則(heuristic)的方法來解決這個問題,分別考慮了不同的標準: 時間的效率跟結果的品質。 方法一:Incremental top-1 針對候選商店的集合會建成沃羅諾伊圖,以中垂線劃分每個點之間所能影響的到的區 域,每區塊包含的範圍代表如果有客戶存在則會影響此區塊內的商店。 假設現在要找潛在客戶群最多的兩間(k=2) 候選商店,我們需要考慮的沃羅諾伊圖的 範圍則為兩層代表會影響到此預定地的顧客群最大範圍。現在將每個候選商店都放到 Queue-uncomputed 集合中,這個集合中的商店都有上限(upper bound)的客戶群,從其中挑 出擁有最大上限潛在客戶數量的商店,計算出它實際能擁有的潛在客戶數量再放到 Queue-computed 中,直到 Queue-computed 中的商店達到 k 個而且它們的潛在客戶數量都大 於目前 Queue-uncomputed 中所有商店所擁有的潛在客戶數量的最大值,則 Queue-computed 中的前 k 間商店即為我們所要的 k 間商店的預定地。 此方法找到答案的效率較高並且保證其 quality 至少有 1-1/e 可得到最佳解。 方法二:Exchange先將候選商店放到 Remaining Set 中,再從此集合中隨機選擇 k 個放到 Candidate Set 中,從 Remaining Set 中選擇符合條件的候選商店,再與 Candidate Set 的交換形成另一組並 擁有更多的潛在客戶。
從 Remaining Set 選擇的預定地要符合以下 4 個條件:
(1) 與 Candidate Set 中的預定地相連的邊(external edges)要最少;(2) 這些邊(external edges)上的 label 總合要為最大;(3) 與 Remaining Set 中其他的預定地相連的邊(internal edges)
要最多;(4) 這些邊(internal edges)上的 label 總合要為最小。
(1)與(2)代表若選入 Candidate Set 中與其他預定地 overlap 的顧客最小化。 (3)與(4)代表在 Remaining Set 中涵蓋最多顧客的預定地會被選中。 利用這些條件重複組合 Candidate Set,我們可以找到一組(k 個)候選商店,其潛在客戶 數量最多。 實驗結果 我們將在人造資料和實際資料執行一系列的時間來測量我們所提出的兩個方法。實際 資料的方面是使用從洛杉磯網頁上的人口分布 TIGER/Line 檔案。 圖三十三至圖三十九表示 Incremental、Exchange 和|S|、|C|、t、k 之間的變化,在人造 資料中,因為資料的分布是均勻的分布情況,所以 exchange 的方法在涵蓋範圍可能較 VDA 的方法來的多,而 incremental 的方法則為最好。在實際資料的方面在某些情況下 exchange 涵蓋的範圍可能是較差的,而 incremental 的方法涵蓋範圍可能較大但是執行程序的時間是 最大的,而 VDA 的涵蓋範圍可能較 incremental 來的小,但是時間可能較好一些。 圖三十三至圖三十五表示暴力法、VDA、incremental 和 exchange 方法之間的差異(假 設 k=3、|S|=30、|C|=10000 和變化 t),可以看到 incremental 的方法的質量和涵蓋的範圍都 很高,而 exchange 和 VDA 方法的質量為 65%和 75%,而時間的方面可以看到暴力法有指 數性的成長。 圖三十三 圖三十四 圖三十五 圖三十六至圖三十九表示實際資料和人造資料在變化 k 時候的涵蓋範圍和執行時間, 可以看到在人造資料時,因為資料的分布為均勻而造成涵蓋的範圍所異無幾,可能 exchange 的方法會輕微的較 VDA 的方法來的好,而在時間方面明顯的在人造資料時會隨著 k 的上升 而執行時間有顯著的上升。人造資料的方面可以看到 VDA 的方法在涵蓋的範圍會較 exchange 來的好,因為 candidate set 的初始不好,且某些交換動作造成 exchange 的方法會 常常失誤而使得涵蓋的範圍較差。
圖三十六 圖三十七 圖三十八 圖三十九
三、成果自評
本計畫之研究成果包含相關研究論文共8篇,3篇國際會議論文,2篇國際期刊論文,另3篇 已投稿審查中。參與計畫之學生得以參加會議並報告研究成果,與國際知名學者交流,對 於其研究能量累積亦有莫大幫助。已發表之論文
- C. L. Li, E. T. Wang, G. J. Huang, and A. L. P. Chen, "Top-n Query Processing in Spatial
Databases Considering Bi-chromatic Reverse K-nearest Neighbors," Information Systems, Vol.42, 123-138 (2014)
- M. F. Tsai, C. W. Tzeng, Z. L. Lin, and A. L. P. Chen, "Discovering leaders from social network by action cascade," Social Network Analysis and Mining, Vol. 4, No. 1 (2014)
- C. J. Lin Wang, E. T. Wang, and A. L. P. Chen, "Anonymization for Multiple Released Social Network Graphs," In Proceedings of the 17th Pacific-Asia Conference on Advances in
Knowledge Discovery and Data Mining, pp. 99-110 (2013)
- C.C. Chen and A.L.P. Chen, “Efficient Processing of Skyline Queries by MapReduce,” In Proceedings of the Conference on Technologies and Applications of Artificial Intelligence (2013) - T. A. Yeh, E. T. Wang, and A. L.P. Chen, "Finding leaders with maximum spread of influence through social networks," In Proceedings of the International Computer Symposium, pp. 269-279 (2012)
已投稿之論文
- J. L. Koh, C. Y. Chan, C. C. Chen, and A. L. P. Chen, “Efficient Skyline Query Processing via Less Dominance Tests in the MapReduce Framework,” submitted for publication.