韓萌 丁劍



摘 要:一些先進應用如欺詐檢測和趨勢學習等帶來了數據流頻繁模式挖掘的發展。不同于靜態數據,數據流挖掘面臨著時空約束和項集組合爆炸等問題。對已有數據流頻繁模式挖掘算法進行綜述并對經典和最新算法進行分析。按照模式集合的完整程度進行分類,數據流中頻繁模式分為全集模式和壓縮模式。壓縮模式主要包括閉合模式、最大模式、top-k模式以及三者的組合模式。不同之處是閉合模式是無損壓縮的,而其他模式是有損壓縮的。為了得到有趣的頻繁模式,可以挖掘基于用戶約束的模式。為了處理數據流中的新近事務,將算法分為基于窗口模型和基于衰減模型的方法。數據流中模式挖掘常見的還包含序列模式和高效用模式,對經典和最新算法進行介紹。最后給出了數據流模式挖掘的下一步工作。
關鍵詞:數據流; 數據流挖掘; 頻繁模式挖掘; 序列模式挖掘; 高效用模式挖掘
中圖分類號: TP18
文獻標志碼:A
文章編號:1001-9081(2019)03-0719-09
Abstract: Advanced applications such as fraud detection and trend learning lead to the development of frequent pattern mining over data streams. Data stream mining has to face more problems than static data mining like spatio-temporal constraint and combinatorial explosion of itemsets, which are different from static data mining. In the paper, the existing frequent pattern mining algorithms over data streams were reviewed, and some classical algorithms and some newest algorithms were analyzed. According to the completeness of pattern set, frequent patterns of data stream could be divided into complete patterns and compressed patterns. Compressed patterns include closed frequent patterns, maximal frequent patterns, top-k frequent patterns and combinations of them. Between them, only closed frequent patterns are losslessly compressed. And constrained frequent pattern mining was used to narrow the result set obtained, satisfying the user's demand more. Algorithms based on sliding window model and time decay model were used to better handle recent transactions which occupy an important position in data stream mining. Moreover, two of the common algorithms, sequential pattern mining and high utility pattern mining algorithms were introduced. At last, further research direction of frequent pattern mining over data streams were discussed.
Key words: data stream; data stream mining; frequent pattern mining; sequential pattern mining; high utility pattern mining
0 引言
在一些新興的應用場景下,例如智能城市、大型基礎設施監控、物聯網等,數據產生的速度越來越快。數據流(data stream)被認為是高速率數據,通常被認為是大數據,它是無限的、快速的、變化的和有序的。在某些環境下,數據流的處理方法必須快速且能適應變化。數據流模型面臨的主要約束[1]包括:
1)數據量巨大,可以認為是無限的。因此,無法存儲所有的數據。合理的方法是存儲數據的概要信息。
2)數據到達的速度快。因此,需要實時處理數據,且處理后數據即被丟棄。
3)數據項的分布可能隨著時間而變化。因此,歷史數據會變得無用甚至有害。
在進行數據流挖掘時,需要考慮這些約束。近年來,研究者關注數據流中分類、聚類以及模式挖掘等問題的研究。頻繁模式是指在數據集中出現的次數高于用戶定義的最小支持數/度閾值的項的集合。數據流頻繁模式挖掘方法通常可以分為兩類。第一類是基于統計來估計模式頻度。如算法Sticky Sampling[2]采用統計抽樣技術來估計項集的支持數。它是挖掘數據流頻繁模式的近似算法,是基于概率統計的,丟失可能頻繁模式的概率不高于用戶定義的參數值。算法Lossy Counting[2]是數據流頻繁模式挖掘經典方法之一,它給定了錯誤參數來挖掘數據流中的頻繁模式。第二類是基于草圖來近似估計模式頻度。草圖是一種概率數據結構,它用于處理項出現頻度。最經典的算法是CountSketch[3],它使用有限的存儲空間來估計數據流中頻繁項,主要依賴于草圖數據結構。Pyramid框架[4]使用草圖數據結構來發現數據流中頻繁模式,該算法在算法正確率以及算法速度方面有一定的優勢。
挖掘數據流時研究者認為新的事務比歷史事物重要得多。使用窗口模型和衰減模型可以很好地處理新事務。經典的基于窗口模型的算法包括Lossy Counting[2]和DSM_FT[5]。最常見的窗口模型是滑動窗口模型,如算法MSW[6]、MFI-CBSW[7]、MFI-TimeSW[8]和TMFI[9]使用滑動窗口模型挖掘數據流中頻繁模式。經典的基于衰減模型的算法有estDec[10]和estDec+[11]。除此之外,根據數據流處理方法,可以分為模式增長方法、假陽性和假陰性方法等;根據挖掘模式結果集合的精簡程度,可以分為全集模式挖掘方法和壓縮模式挖掘方法等;根據模式的特征,可以分為頻繁模式、頻繁序列模式、頻繁樹模式、頻繁圖模式挖掘方法等。這些內容會在下文進行介紹。
1 基本概念
頻繁模式挖掘的一個很大的不足在于全集頻繁模式的數量巨大,尤其當最小支持度閾值很小或事務長度很長時,挖掘出來的模式呈指數級增長。為了減少模式的數量,可以挖掘壓縮模式,如最大模式、閉合模式和top-k模式等,如定義2~定義4所示。
定義4 top-k頻繁模式。將所有已挖掘出的項集按照支持度由高到低的順序排序,令θ′為第k個項集的支持度。則對于頻繁項集P,若滿足條件support(P)≥θ′,則稱P為top-k頻繁模式。
示例1 包含5個事務的數據流如表1所示。令n=5,θ=0.4,則得到全集模式、最大模式、閉合模式和top-2模式如表2所示。
從表2中可以看出,壓縮模式數量明顯小于全集模式。在θ=0.4條件下可以得到13個全集模式,9個閉合模式,5個最大模式和6個top-2模式。其中閉合模式是無損壓縮形式,它包含全集模式中的所有信息,其余的為有損壓縮模式。
若定義約束為Constraint1至Constraint4所示,則可以得到滿足不同約束的頻繁模式集合如表3所示,可以得到4個滿足Constraint1,7個滿足Constraint2,4個滿足Constraint3和3個滿足Constraint4的頻繁模式。約束條件越復雜具體則得到的模式集合越有趣,更利于滿足用戶的需求。
1)約束Constraint1:對任意一個頻繁項集P,如果其包含項{a},則稱其滿足約束Constraint1。即Constraint1(P)≡({a}P)。
2)約束Constraint2:對任意一個頻繁項集P,如果其長度為2,則稱其滿足約束Constraint2。即Constraint2(P)≡(length(P)=2)。函數length(P)表示P的長度。
3)約束Constraint3:對任意一個頻繁項集P,如果它是滿足Constraint1的閉合模式,則稱其滿足約束Constraint3。即Constraint3(P)≡(closed(P)=true)∧(Constraint1(P)=true)。函數closed(P)用于判斷P是否為閉合模式。
4)約束Constraint4:對任意一個頻繁項集P,如果它是滿足Constraint1和Constraint2的模式,則稱其滿足約束Constraint4。即Constraint4(P)≡(Constraint1(P)=true)∧(Constraint2(P)=true)。
本章中常見的符號和函數的含義如表4所示,包含數據集合、項的取值范圍,以及常用的支持數、支持度和最小支持度閾值的表示符號。
2 數據流中頻繁模式類型
本節重點介紹壓縮模式和約束模式,表5給出了幾種模式的比較。全集模式是全部模式的集合;閉合模式是無損的壓縮方式,可以壓縮大量的模式;最大模式是有損壓縮方式,得到的模式數量少于閉合模式;top-k模式僅取k組頻度最高的模式,通常數量很少;約束模式是挖掘滿足用戶需求的模式,模式數量也會明顯小于模式全集。
2.1 全集頻繁模式
數據集合中出現次數不低于用戶定義閾值的所有頻繁模式集合稱為全集頻繁模式(Complete Frequent Patterns, CoFPs)。一般來說,CoFPs中包含的模式數量巨大,且包含有大量短的無意義的模式,因此不利于用戶的使用。
近年來,挖掘CoFPs的方法有很多。如算法FIS_EDS[13]采用界標窗口模型挖掘數據流中的CoFPs。該算法設計數據結構Bit-Table存儲模式信息。使用Bit-Table可以比較容易地得到模式頻度并且避免了解析整個窗口中的事務信息。CanTree-GTree算法[14]基于Hadoop框架挖掘數據流中的CoFPs。該算法使用投影樹結構CanTree和GTree存儲模式信息,并采用自頂向下的遍歷方式搜索整棵樹。該算法可以得到準確完整的模式集合。SysTree算法[15]采用并行技術挖掘數據流中的CoFPs。該算法基于樹結構,且分別采用界標窗口和滑動窗口來處理事務。當頻繁項數量少時,該算法可以實現很準確的挖掘過程;當頻繁項數量大時,挖掘過程是近似的且是非假陽性的。PFIMoS算法[16]挖掘不確定數據流中的概率頻繁模式。該算法是深度優先的,且設計了一種索引樹結構PFIT存儲數據概要信息。由于以上策略,與已有算法相比,該算法可以減低時間和空間消耗。
2.2 閉合頻繁模式
閉合頻繁模式(Closed Frequent Patterns, CFPs)是強大的頻繁模式的表現方式,因為它們消除冗余信息。一般來說,閉合頻繁模式比全集頻繁模式中的模式數量少得多,且閉合模式包含了全集頻繁模式中的全部信息,是一種無損壓縮模式。
近年來,在數據流中挖掘閉合頻繁模式的方法有很多。經典算法包括Moment[17]、CloStream+[18]和TMoment[19]等采用滑動窗口挖掘數據流的閉合頻繁模式。Moment算法使用事務滑動窗口挖掘數據流中的CFPs。該算法中設計一種新的數據結構CET(Closed Enumeration Tree)來存儲CFPs和臨界CFPs。使用CET相比前綴樹而言,可以減少大量的樹節點,降低插入和刪除模式時的時間和空間消耗。CloStream+算法設計一種新的數據結構挖掘數據流中的CFPs。算法設計兩個新的數據結構ClosedTable和CidList,前者存儲與閉合模式有關的信息,后者存儲與數據流中出現的項(item)有關的信息。二者的交叉點是都存儲事務的標識TID。該算法不需要消耗大量時間進行空間搜索,但是相對應地會付出更多的時間消耗。TMoment算法使用TCET(Transaction translate Closed Enumeration Tree)數據結構挖掘數據流中的CFPs。TCET是一種前綴樹結構,每個節點表示一個閉合項集。當滑動窗口更新數據時,算法使用深度優先策略遍歷該樹來更新閉合頻繁模式信息。TCET存儲窗口中內容和閉合模式信息時需要的內存空間比較少。
AFPCFI-DS(Algorithm based on FP-tree for mining Closed Frequent Itemsets in Data Stream)算法[20]使用FP樹結構挖掘每個滑動窗口中的CFPs。每次處理新的滑動窗口時,算法會首先更新頭表(head table),然后依據頭表更新FP-tree。每當添加或刪除事務時,算法使用局部更新策略來降低時間消耗。TDMCS算法[21]采用滑動窗口模型和時間衰減模型挖掘可變數據流中的CFPs。為了提高效率,設定的閉合頻繁模式滿足支持度誤差度衰減因子這三層結構。該算法設計一種均值衰減衰減因子,使得到的模式結果集合具有高且均衡的查全率和查準率。這個算法可以有效地處理具有概念漂移問題的數據流模式挖掘過程。FLMCFI(Fast and Lossless Mining of Closed Frequent Itemsets)算法[22]提出一種新的搜索機制挖掘數據流中的CFPs。該搜索機制可以用于解決數據流中觀察到的概念漂移現象。
2.3 最大頻繁模式
最大頻繁模式(Maximal Frequent Patterns, MFPs)也稱為最長頻繁模式。如果一個頻繁模式沒有父模式,則它是最大頻繁模式。最大頻繁模式的目的是取長度最長的模式集合。最大頻繁模式集合中模式數量會明顯低于全集模式中的模式數量。但是由于它是一種有損壓縮方式,因此無法從最大模式集合中反推出全集模式集合。
經典的MFPs挖掘算法之一是estDec+[11]。該算法使用壓縮前綴樹CP-tee挖掘MFPs,與前綴樹結構相比可以降低內存消耗。CP-tree上的每個節點都存儲多個項集的信息。因此可以通過合并或分類節點來控制CP-tree的大小。該算法可以使用有限的內存空間存儲大量的項集信息。WMFP-SW算法[23]使用滑動窗口模型發現數據流中的權重MFPs。一種新的樹結構WMFP-SW-tree和陣列結構WMFP-SW-array用于存儲權重模式信息,可以有效提高挖掘的效率。挖掘出的MFPs需要滿足最小支持度閾值和權重約束。TV和iTV算法[24]基于spark挖掘數據流中的MFPs。該文中提出一種ASP-Tree結構存儲模式信息,與模式增長算法相比可以降低內存消耗,同時可以減少搜索時間。WOB點陣算法[25]同樣使用滑動窗口模型挖掘數據流中的權重MFPs。該算法使用FP樹存儲模式信息,由于使用點陣技術可以避免反復重建整個樹機構。
2.4 top-k頻繁模式
top-k頻繁模式(Top-k Frequent Patterns, TkFPs)用于挖掘數據流中出現頻度最高的k組模式。一般而言,MFPs和TkFPs的壓縮程度是強于CFPs,且都是有損壓縮。已有的算法挖掘TkFPs或閉合TkFPs,如算法FSS[26]、TKRES[27]挖掘TkFPs。為了限定模式結果集的大小,算法Top-k-FCI[28]、FCI_max[29]、TFRC-Mine[30]挖掘數據流中的閉合TkFPs。
TFRC-Mine算法采用最小長度策略挖掘閉合的TkFPs。該算法不需要設置支持度閾值。為了處理項之間的冗余和興趣度關聯,算法關注閉合模式且設置了最小長度約束。算法中設計了一種新的壓縮位向量表示形式,用于剪枝無趣的候選項。TKRES算法挖掘信號數據流中的TkFPs。挖掘出的模式是連續的形式,可以稱之為片斷(episode)。這樣更利于監督者對得到的TkFPs結果集進行分析,從而作出合理的判斷。TKRES算法采用k樹結構來保存top-k片斷和它們的出現信息。TwMinSwap[31]算法采用項抽樣策略挖掘數據流中的TkFPs。核心思想是采用時間權重來統計模式的重要性,隨著時間的推進歷史模式權重會減少。該算法僅需要O(k)內存空間存儲模式信息。算法采用最小長度策略挖掘閉合的TkFPs。FTK算法[32]使用任意大小的滑動窗口模型挖掘TkFPs。該算法使用的內存空間僅與窗口大小成對數關系,而不是線性關系;因此,與已有方式相比得到的模式結果集合更準確,且時間消耗會明顯減少。
2.5 約束頻繁模式
約束可以用于篩選數據或結果集,可以令用戶找到真正有興趣的內容。在頻繁模式挖掘過程中,約束挖掘可以減少模式的數量,提高模式集合的利用率。約束挖掘(constrained mining)是指用戶僅對頻繁模式挖掘結果的一部分感興趣,即模式需要滿足用戶定義的約束,這樣挖掘出的模式稱為約束頻繁模式(Constrained Frequent Patterns, CdFPs)。
例如,最小支持度閾值約束就是反單調約束,即如果一個項集是非頻繁的,則其父項集也是非頻繁的。如一個項集P滿足約束ConstraintA(P)≡({i, j}P),其中i, j為項。則P的父項集也滿足約束ConstraintA。即ConstraintA是滿足單調性的。如果項集P不滿足約束ConstraintA,其父項集也可能滿足約束ConstraintA。
Leung等[33]設計一種基于樹結構的算法發現不確定數據流中的CdFPs。為了發現滿足用戶需求的模式,加入了對類值取值范圍的約束。設計樹結構存儲滿足約束的項集,對第一批數據直接存儲內容。樹中的節點包含兩個字段——項名和支持度。算法從樹中挖掘滿足用戶定義支持度的頻繁模式。Silva等[12]設計了多個約束發現數據流中的CdFPs。算法將約束加入壓縮前綴模式樹結構從而生成滿足用戶不同約束的模式。樹中的每個節點包含一個項,一個近似支持度和最大誤差值。樹中的邊連接同時出現的項用于創建模式。這樣每個節點對應一個近似模式,模式由根節點到這個節點中的項組成。這樣可以從全集模式中篩選出可能的模式,會降低內存和時間消耗。Hu等[34]提出算法用于挖掘數據流中的閉合CdFPs。首先將數據流分成片段,然后使用樹結構存儲可能的約束閉合頻繁項集。對于每一段到達的數據,首先建立相應的局部樹數結構,然后更新和剪枝全局樹結構用于挖掘約束閉合頻繁模式。該算法定義了頻繁項集需要包含的項內容的約束,最終目的是篩選頻繁模式集合,找到更有用的關聯規則。Cuzzocrea等[35]在不確定數據流中發現滿足用戶約束的CdFPs。該算法處理的是無限信號網絡數據流,設計了兩種約束簡潔反單調約束和簡潔非反單調約束的頻繁模式挖掘。算法是基于樹結構的分布挖掘系統,用于發現滿足簡潔約束的頻繁模式,首先發現滿足約束的局部頻繁項集,然后發現滿足約束的全局頻繁項集。Kiran等[36]設計一種模式增長算法,采用周期頻繁樹結構發現大數據中的周期CdFPs。這些模式滿足最小支持度閾值和最大到達間隔的約束。定義了局部周期性和周期性用于找到局部和全局頻繁模式。如果一個模式的局部周期性不滿足用于定義的最大周期閾值,則它是非周期的頻繁模式,可以用于避免對這些頻繁模式進一步搜索。因此,使用局部周期性可以降低找到周期頻繁模式的計算成本。Cagliero等[37]分析無線傳感網絡中的歷史信號數據流,以識別其中讀數出現異常趨勢的傳感器組合。作者設計基于距離的約束來發現信號數據流中的非頻繁權重模式。這種約束可以用于分析在不同環境或者不同條件下獲取的傳感器測量結果。
3 數據流中頻繁模式挖掘關鍵技術
數據流是海量、快速、有序的數據序列,因此在有限的時間和空間中挖掘數據流中的頻繁模式面臨很大的挑戰。研究者提出了許多在數據流中挖掘頻繁模式的方法,包括窗口方法、衰減方法、先驗方法、模式增長方法、精確方法、近似方法、假陽性方法、假陰性方法、在線方法和離線方法等,本文對幾種主要方法介紹。表6給出了幾種經典數據流頻繁模式挖掘算法概述,從使用的窗口模型、衰減制度、使用方式、采用何種近似算法以及發現的模式類型等方面進行介紹。
3.1 窗口方法
數據流處理常用的窗口模型有三種:界標窗口(landmark window)、滑動窗口(sliding window)和傾斜窗口/衰減窗口(damped window)。界標窗口固定窗口的起始點s,窗口的另一端e隨著數據的不斷到達而增長,不斷地把得到的結果輸出。算法處理Ts和Te之間的最新事務數據。滑動窗口對窗口的起始與結束都沒有明確的定義,定義的是窗口的長度N。即算法處理Tnew-N+1和Tnew之間的最新事務數據。當新事物Tnew+1到達時,歷史事務Tnew-N+1會移除窗口。處在窗口內的事務具有相等的重要性。窗口保持一定的長度在數據流上進行滑動,不斷地把得到的結果輸出。衰減窗口是由固定的時間起點s,窗口的另一端e隨著數據流的到達不斷增長。但是不同時間段的數據具有不同的權重。即歷史數據所占權重很小,而新數據權重大。算法處理Ts和Te之間的最新事務數據。
數據流挖掘最常用的窗口模型是滑動窗口模型(Slidng Window Model, SWM)。滑動窗口模型包括固定SWM與可變SWM。在任意時刻,前者中窗口內最新事務的個數是固定的;而后者的最新事務個數是可變的。算法設計對窗口內的最新事務進行處理。
圖1是采用固定滑動窗口處理新事務的過程。圖1(a)中處理最新事務Tnew,采用的滑動窗口大小為N。當處理新事務Tnew′時,由于滑動窗口大小N,則事務Tnew-N+1和Tnew′-N+1之間的|new′-new|個事務將被移出窗口,如圖1(b)所示。移出的方法可以是單個移出或批量移出。為了避免出現窗口內的事務出現概念漂移現象,一般窗口的大小不會很大。
以采用概念漂移檢測器調整滑動窗口為例介紹窗口的變化,當出現概念漂移則收縮窗口,否則擴展窗口。假設給定窗口大小N,圖2表示了可變滑動窗口擴展和收縮的過程,其中|new′-new|表示Tnew′與Tnew之間的實例個數或者時間的距離。圖2(b)表示沒有發生概念漂移時,滑動窗口會擴展窗口的尺寸,從N擴展到N+|new′-new|。圖2(c)表示發生概念改變時,滑動窗口會縮減尺寸,窗口大小會從N收縮至N′。
固定SWM會按照經驗給定窗口大小,且該值是固定的。如SWCA[38]、EclatDS[39]、MSW[6]、SWP-Tree[40]和SA-Miner[41]采用滑動窗口發現模式結果集。TKRES算法[27]使用滑動窗口模型挖掘信號數據流中的top-k頻繁模式。窗口中包含m組數據,每一組數據是用戶定義的時間單位內產生的數據,如一天或者一周。CanTree-GTree算法[14]基于固定滑動窗口和Hadoop框架挖掘數據流中的全集頻繁模式。當一個窗口裝滿事務時,歷史事務將被移出,新近事務會被加入。FTK算法[32]使用滑動窗口模型挖掘top-k頻繁模式。該算法給出了滑動窗口大小的上限,可以處理上限范圍內任意大小窗口中的事務從而得到頻繁模式。該算法使用的內存空間大小與窗口大小成對數關系。算法設定滑動窗口大小范圍從3600~360000個事務,用來驗證算法的優勢。雖然是任意大小,但在每次實驗中,窗口大小是固定的。WOB點陣算法[25]使用滑動窗口模型挖掘數據流中的權重MFPs。通過窗口的滑動刪除歷史事務信息增加新近事務信息,這樣可以避免重建整個樹結構。SysTree算法[15]基于樹結構且分別采用界標窗口和滑動窗口來挖掘數據流中的頻繁模式。該文中解釋道大窗口會產生大量的模式,小窗口會產生少的模式;因此,不能說明哪個窗口大小更好,這取決于不同的用戶需求。
可變滑動窗口大小的改變有多種策略。在時間衰減模型中按照高查全率假設,通過對頻繁項集的衰減頻度估計來縮短或擴大窗口[40]。FIMoTS算法[42]使用基于時間戳的滑動窗口模型,接著轉化為基于事務的可變滑動窗口進行處理。窗口大小的改變受到模式的頻度變化影響。VSW算法[43]提出一種可變大小滑動窗口發現數據流中的頻繁模式。窗口大小由達到數據的概念改變數量動態決定。當概念平穩時,窗口擴展。而當概念改變時,窗口收縮。CCFPM算法[44]使用可變滑動窗口發現數據流中的閉合頻繁模式。窗口的收縮和擴展受到概念改變的影響。
3.2 衰減方法
很多數據流頻繁模式挖掘算法為每個事務賦予相同的重要性或權重。然而,一些時間敏感的數據流應用認為最新產生的事務比歷史事物更重要。時間衰減模型是處理時間敏感數據流頻繁模式挖掘的一種有效方法,它是一種隨著時間的推移而逐步衰減歷史模式支持數權重的方法,它強調新近事務產生模式的重要性。衰減方法的核心是衰減因子的設置,通常有三類設置方式:隨機值、固定值、計算值。隨機值設置衰減因子的方法的不足在于隨機性使得得到的模式結果集合不穩定;固定值設置方法的優劣取決于專家知識;計算值會根據算法中設計的其他參數值,如窗口大小、最小支持度等進行計算,從實驗驗證這種方式更合理。常見的幾種設置衰減因子與衰減函數的方法如表7所示。
如MSW(Mining Sliding Window)算法[6]是使用固定滑動窗口模型和時間衰減模型挖掘數據流中的全集頻繁模式的經典算法之一。該算法使用一種滑動窗口樹SW-tree存儲最新的模式信息,并周期性地對樹結構剪枝,去除歷史頻繁模式和不頻繁的模式。該算法使用時間衰減模型逐步降低歷史事務模式支持數的權重,并由此來區分最近產生事務與歷史事務的模式。算法SWP-Tree[40]使用可變滑動窗口發現數據流中的頻繁模式。為了強調最新頻繁模式,使用時間衰減模型來區分新舊事務產生的模式;設計一種增量更新的樹結構記錄模式信息,從而提高事務的處理速度。DFPMiner算法[45]挖掘數據流中的全局頻繁模式,它動態構建全局模式樹, 利用時間指數衰減函數對模式樹中各模式的支持數進行統計, 以此發現界標窗口內的模式。PFP-growth算法[46]用于挖掘事務不確定數據流中的頻繁模式,它使用概率衰減窗口模型,通過計算各概率數據項的期望支持度以發現模式。IncSpam算法[47]使用固定衰減因子值的時間衰減模型發現可擴展滑動窗口模型中的頻繁項集。它使用可擴展排序樹存儲所有當前滑動窗口內的模式,可以減少時間和內存消耗。λ-Hcount算法[48]采用時間衰減模型計算數據流中的頻度,其中設定衰減因子為0.98~1之間的常量值。采用哈希函數估計數據流中項的密度值,從而發現頻繁模式。TDMCS算法[49]采用衰減模型挖掘數據流中的閉合頻繁模式。提出一種均值衰減因子方法,可以得到穩定的和查全率和查準率更均衡的模式結果集合。TwMinSwap算法[31]使用衰減方法挖掘數據流中的top-k頻繁模式。該算法采用衰減評估模式的頻度,核心思想是隨著時間的推進歷史模式頻度會逐漸衰減。衰減因子的取值是范圍是(0, 1)。
4 其他模式技術
數據流中挖掘出的模式除了頻繁模式以外,還包含:序列模式(Sequential Patterns, SPs)[50-51],用于發現具有先后次序的復雜項集;高效用模式(High Utility Patterns, HUPs)[52-53],用于發現具有高價值或效用的項集;圖模式(SubGraphs Patterns, SGPs)[54-55],用于發現滿足用戶閾值的子圖結構;片斷(EPisode, EP)[27],用于發現連續的事件(event);非頻繁模式(INFrequent Patterns, INFPs)[37],用于發現出現頻度低的項集;概率頻繁模式(Probabilistic Frequent Patterns, PFPs)[16],用于發現不確定數據流中滿足最小支持度和最小概率參數的頻繁項集;以及其他類型的模式等[56]。這些模式的相同之處是它們都是頻繁的,不同之處可以從項/項集是否有序、權重是否相等和是否連續三個方面區分,具體如表8所示。針對不同的數據特征可以挖掘出不同類型的模式,不同的模式具有不同的應用。本章主要介紹序列模式和高效用模式。
4.1 序列模式
序列模式(Sequential Patterns, SPs)挖掘用于發現序列數據集合中出現次數不低于用戶定義閾值的項集序列,這些頻繁的項集序列稱為序列模式。最早的序列模式挖掘算法是prefixSpan[57],這是基于投影數據庫和前綴樹結構的靜態數據集合處理方法。它可以挖掘出全集序列模式,并且可以減少候選項集數量。
數據流中序列模式挖掘算法采用的主要數據結構之一是樹結構。如StrPMiner算法[58]挖掘多數據流中最優的SPs。該算法僅對多數據流掃描一次,壓縮數據信息并使用PBuilder方法進行處理。StrPMiner算法使用T0樹結構保存候選項集。BFSPMiner算法[59]采用滑動窗口挖掘數據流中的SPs。該算法使用倒置T0樹結構存儲模式信息。該算法得到的模式結果集合更加準確,且可以降低運行時間。算法MAHUSP[60]挖掘數據流中的高效用SPs。該算法使用一個稱為MAS-tree的樹結構存儲可能的模式信息。當發現一個可能的模式時則更新MAS-tree。算法同時設計兩個機制來更好地利用有效的存儲空間。
4.2 高效用模式
高效用模式(High Utility Patterns, HUPs)挖掘用于發現事務數據集合中效用不低于用戶定義閾值的項或項集。在真實應用中,效用可以指單位利潤或者購買數量等。高效用模式挖掘方法通常可以分為一階段和二階段兩類。
較早的HUPs挖掘算法是二階段的。算法TWU[61]提出二階段方法挖掘數據集合中的高效用模式。該算法使用過估計概念,以滿足高效用模式挖掘中的抗單調性。二階段方法的主要問題之一是需要多次掃描數據集合產生大量候選集。數據流中挖掘HUPs的方法主要是一階段的。如算法SHU-Growth[62]使用滑動窗口技術挖掘HUPs。為了產生更少的候選集合降低空間消耗,該算法使用基于樹的結構存儲HUPs。LIHUP算法[63]使用基于list的數據結構挖掘HUPs。基于list的數據機構的重建依賴于一種最優排序策略,并且在重建的同時可以有效地更新效用信息。該算法也不產生候選集合,可以有效提高算法效率。Vert_top_k_DS[64]算法使用滑動窗口模型挖掘數據流中的top-k HUPs。該算法只有一層結構,且不產生任何候選集合。算法中定義新的數據結構iList用于存儲項的信息,且這個結構在合并和刪除項時工作效率很高。HAUPM算法[65]使用衰減窗口挖掘平均HUPs。該算法使用衰減窗口關注新近事務中的HUPs,使用時間因子發現顯著的新近的模式信息。該算法使用新的衰減平均效用樹(DAT)結構和事務效用list(TUL)來提高挖掘效率。HUDD-TDS算法[66]挖掘事務數據流中的HUPs,并且檢測模式效用分布的變化。該算法關注局部和全局的效用改變。其中局部效用改變是指一個模式的效用分布變化,而全部效用改變是指所有高效用模式的效用分布變化。關注這兩種變化可以提高模式挖掘的效率。Choi等[66]提出算法挖掘Twitter數據流中HUPs,用于檢測新興話題。該方法使用滑動窗口技術計算每批推特中單詞的效用,確定每批數據中的最小效用。該方法使用TP樹結構從候選主題模式中提取實際主題模式。相比已有算法,該算法可以提高查全率。
4.3 其他模式
數據流中非頻繁模式挖掘用于提取數據集中的稀有或者異常模式,是一種新的數據流異常檢測方法[67]。Hemalatha等[68]提出一種基于最小非頻繁模式的數據流孤立點檢測方法MIP-DS。該算法挖掘數據流中的最小非頻繁模式。它首先挖掘滑動窗口內的最新模式,再生成所有的候選后篩選非頻繁模式。通過實驗驗證,該方法可以提高孤立點檢測的效率。Duong等[69]提出算法挖掘信號數據流(不確定數據流)中的非頻繁權重模式。這些模式滿足基于距離的約束條件,用于分析兩類信號數據:一是在相同環境下彼此相似的連續信號;二是在不同環境下或不同條件下的距離信號。該算法的優勢在于在知識提取過程中使用約束,從而挖掘出更壓縮的模式集合。
不確定數據流中發現的頻繁模式通常是概率頻繁模式,這些模式需要滿足最小支持度和最小概率參數。Cuzzocrea等[67]分析挖掘不確定數據集合中頻繁模式的一些算法。這些算法通常使用UF樹結構來存儲模式,使用概率支持度的上界值來降低計算量。Li等[16]提出算法PFIMoS使用滑動窗口模型挖掘不確定數據流中的概率頻繁模式。該算法設計了一種壓縮的數據結構概率頻繁項集樹PFIT,并采用自底向上的方式來存儲數據信息,從而有效地減低搜索空間。PFIMoS使用概率支持度估計方法來計算概率支持度的上下界值,這樣可以降低計算時間。
5 進一步的研究方向
數據流挖掘中概念漂移問題的解決方法在過去十多年中得到了一定的發展,但是現有的方法仍然存在著不足之處,這為研究者提供了進一步的研究方向。
1) 大規模數據流中模式挖掘結果集數量巨大,其中存在大量無用的模式。當事務長或最小支持度閾值低時,這個問題尤其嚴重。如何挖掘更加滿足用戶需求的有趣模式,且模式的數量盡可能地壓縮;在模式挖掘過程中如何解決概念漂移帶來的頻繁與非頻繁項的轉變所帶來的丟失可能模式的現象等問題需要進一步研究。
2) 在某些應用中概念漂移是可以預期的,它沿時間軸或在不同對象中的模型化區域可能重新出現。例如糧食需求預測,可以用模糊周期性季節的影響為對象設定特定子群,或者傳遞不同的上下文之間的學習似乎是一個潛在的研究可預測概念漂移的路線。但是在很多的應用中,概念漂移的工作是在隱藏背景下發生,是不可觀測到的。如何更好地分析這類概念漂移現象還需要進一步研究。
3) 基于模式的分類方法研究。數據流中包含無限的數據,這些數據包含大量的冗余信息甚至是噪聲,而模式發現可以去除數據中的冗余信息且不受噪聲的影響。因此,挖掘有趣的、頻繁的和有區分力的模式,可以用于有效的分類或聚類。基于模式的分類或聚類具有更高的準確性,并且可以很好地解決缺失值的問題。可以進一步對基于模式的數據分類方法進行研究。
4) 由于云的出現,研究者提出了使用邊緣計算和云計算來實現數據流處理,這是大數據發展帶來的新計算方法[70-71]。如何更好地利用云技術來提高大數據挖掘效率也是需要繼續研究的內容。
參考文獻 (References)
[1] BIFET A. Adaptive stream mining: pattern learning and mining from evolving data stream [C]// Proceedings of the 2010 Conference on Adaptive Stream Mining: Pattern Learning and Mining from Evolving Data Streams. Amsterdam, Netherlands: IOS Press, 2010: 1-212.
[2] MANKU G S, MOTWANI R. Approximate frequency counts over data streams [C]// Proceedings of the 28th International Conference on Very Large DataBases. San Francisco, CA: Morgan Kaufmann, 2002: 346-375.
MANKU G S, MOTWANI R. Approximate frequency counts over data streams [J]. Proceedings of the VLDB Endowment, 2012, 5(12): 1699.
[3] CHARIKAR M, CHEN K, FARACH-COLTON M. Finding frequent items in data streams [C]// Proceedings of the 2002 International Colloquium on Automata, Languages and Programming, LNCS 2380. 2002: 693-703.
[4] YANG T, ZHOU Y, JIN H, et al. Pyramid sketch: a sketch framework for frequency estimation of data streams [J]. Proceedings of the VLDB Endowment, 2017, 10(11): 1442-1453.
[5] LI H-F, SHAN M-K, LEE S-Y. DSM-FI: an efficient algorithm for mining frequent itemsets in data streams [J]. Knowledge Information Systems, 2008, 17(1): 79-97.
[6] 李國徽,陳輝.挖掘數據流任意滑動時間窗口內頻繁模式[J].軟件學報,2008,19(19):2585-2596.(LI G H, CHEN H. Mining the frequent patterns in an arbitrary sliding window over online data streams [J]. Journal of Software, 2008, 19(10): 2585-2596.)
[7] MEMAR M, SADREDDINI M H, DEYPIR M, et al. A block-based approach for frequent itemset mining over data streams [C]// Proceedings of the 2011 8th International Conference on Fuzzy Systems and Knowledge Discovery. Piscataway, NJ: IEEE, 2011: 1647-1651.
[8] LI H-F, LEE S-Y. Mining frequent itemsets over data streams using efficient window sliding techniques [J]. Expert Systems with Applications, 2009, 36(2): 1466-1477.
[9] FAN G, YIN S. A frequent itemset mining algorithm based on matrix in sliding window over data steam [C]// ISDEA '13: Proceedings of the 2013 3rd International Conference on Intelligent System Design and Engineering Applications. Washington, DC: IEEE Computer Society, 2013: 66-69.
[10] CHANG J H, LEE W S. Finding recent frequent itemsets adaptively over online data streams [C]// KDD '03: Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2003: 487-492.
[11] SHIN S J, LEE D S, LEE W S. CP-tree: an adaptive synopsis structure for compressing frequent itemsets over online data streams [J]. Information Sciences, 2014, 278: 559-576.
[12] SILVA A, ANTUNES C. Pushing constraints into data streams [C]// BigMine '13: Proceedings of the 2nd International Workshop on Big Data, Streams and Heterogeneous Source Mining: Algorithms, Systems, Programming Models and Applications. New York: ACM, 2013: 79-86.
[13] FARHAT A, GOUIDER M S, SAID L B. New algorithm for frequent itemsets mining from evidential data streams [J]. Procedia Computer Science, 2016, 96: 645-653.
[14] KUSUMAKUMARI V, SHERIGAR D, CHANDRAN R, et al. Frequent pattern mining on stream data using Hadoop CanTreeGTree [J]. Procedia Computer Science, 2017, 115: 266-273.
[15] BUSTIO-MARTNEZ L, CUMPLIDO R, HERNNDEZ-LEN R, et al. On the design of hardware-software architectures for frequent itemsets mining on data streams [J]. Journal of Intelligent Information Systems, 2018, 50(3): 415-440.
[16] LI H, ZHANG N, ZHU J, et al. Probabilistic frequent itemset mining over uncertain data streams [J]. Expert Systems with Applications, 2018, 112: 274-287.
[17] CHI Y, WANG H, YU P S, et al. Catch the moment: maintaining closed frequent itemsets over a data stream sliding window [J]. Knowledge and Information Systems, 2006, 10(3): 265-294.
[18] YEN S-J, WU C-W, LEE Y-S, et al. A fast algorithm for mining frequent closed itemsets over stream sliding window [C]// Proceedings of the 2011 IEEE International Conference on Fuzzy Systems. Piscataway, NJ: IEEE, 2011: 996-1002.
[19] NORI F, DEYPIR M, SADREDDINI M H. A sliding window based algorithm for frequent closed itemset mining over data streams [J]. Journal of Systems and Software, 2013, 86(3): 615-623.
[20] DAI C, CHEN L. An algorithm for mining frequent closed itemsets in data stream [J]. Physics Procedia, 2012, 24(C): 1722-1728.
[21] HAN M, DING J, Li J. TDMCS: an efficient method for mining closed frequent patterns over data streams based on time decay model [J]. International Arab Journal of Information Technology, 2017, 14(6): 851-860.
[22] REDDY V S, RAO T V, GOVARDHAN A. Fast and Lossless Mining of Closed Frequent Itemsets (FLMCFI) over data streams [J]. Journal of Advanced Research in Dynamical and Control Systrems, 2018, 10: 256-263.
[23] LEE G, YUN U, RYU K H. Sliding window based weighted maximal frequent pattern mining over data streams [J]. Expert Systems with Applications, 2014, 41(2): 694-708.
[24] KARIM M R, COCHEZ M, BEYAN O D, et al. Mining maximal frequent patterns in transactional databases and dynamic data streams: a Spark-based approach [J]. Information Sciences, 2018, 432: 278-300.
[25] CHANG Y I, LI C E, CHOU T J, et al. A weight-order-based lattice algorithm for mining maximal weighted frequent patterns over a data stream sliding window [C]// Proceedings of the 2018 IEEE International Conference on Applied System Innovation. Piscataway, NJ: IEEE, 2018: 961-964.
[26] HOMEM N, CARVALHO J P. Finding top-k elements in data streams [J]. Information Sciences, 2010, 180(24): 4958-4974.
[27] AMPHAWAN K, SOULAS J, LENCA P. Mining top-k regular episodes from sensor streams [C]// Proceedings of the 7th International Conference on Advances in Information Technology, 2015: 76-85.
AMPHAWAN K, SOULAS J, LENCA P. Mining top-k regular episodes from sensor streams [J]. Procedia Computer Science, 2015, 69: 76-85.
[28] LI J, GONG S. Top-k-FCI: mining top-k frequent closed itemsets in data streams [J]. Journal of Computational Information Systems, 2011, 7(13): 4819-4826.
[29] TSAI P S M. Mining top-k frequent closed itemsets over data streams using the sliding window model [J]. Expert Systems with Applications, 2010, 37(10): 6968-6973.
[30] AMPHAWAN K, LENCA P. Mining top-k frequent-regular closed patterns [J]. Expert Systems with Applications, 2015, 42(21): 7882-7894.
[31] LIM Y, KANG U. Time-weighted counting for recently frequent pattern mining in data streams [J]. Knowledge and Information Systems, 2017,53(2): 391-422.
[32] SONG C, LIU X, GE T. Top-k frequent items and item frequency tracking over sliding windows of any sizes [C]// Proceedings of the 2017 IEEE 33rd International Conference on Data Engineering. Washington, DC: IEEE Computer Society, 2017: 199-202.
[33] LEUNG C K-S, HAO B, JIANG F. Constrained frequent itemset mining from uncertain data streams [C]// Proceedings of the 2010 IEEE 26th International Conference on Data Engineering Workshops. Washington, DC: IEEE Computer Society, 2010: 120-127.
[34] HU W-C, WANG B-N, CHENG Z-L. Mining frequent closed patterns with item constraints in data streams [C]// Proceedings of the 2008 International Conference on Machine Learning and Cybernetics. Piscataway, NJ: IEEE, 2008: 274-280.
[35] CUZZOCREA A, LEUNG C K S, MacKINNON R K. Mining constrained frequent itemsets from distributed uncertain data [J]. Future Generation Computer Systems, 2014, 37: 117-126.
[36] KIRAN R U, KITSUREGAWA M, REDDY P K. Efficient discovery of periodic-frequent patterns in very large databases [J]. Journal of Systems and Software, 2016, 112: 110-121.
[37] CAGLIERO L, CERQUITELLI T, CHIUSANO S, et al. Characterizing unpredictable patterns in wireless sensor network data [J]. Information Sciences, 2018,467: 149-162.
[38] LI C-W, JEA K-F. An adaptive approximation method to discover frequent itemsets over sliding-window-based data streams [J]. Expert Systems with Applications, 2011, 38(10): 13386-13404.
[39] DEYPIR M, SADREDDINI M H. EclatDS: an efficient sliding window based frequent pattern mining method for data streams [J]. Intelligent Data Analysis, 2011, 15(4): 571-587.
[40] CHEN H, SHU L, XIA J, et al. Mining frequent patterns in a varying-size sliding window of online transactional data streams [J]. Information Sciences, 2012, 215: 15-36.
[41] LI C-W, JEA K-F. An approach of support approximation to discover frequent patterns from concept-drifting data streams based on concept learning [J]. Knowledge and Information Systems, 2014, 40(3): 639-671.
[42] 李海峰,章寧,朱建明,等.時間敏感數據流上的頻繁項集挖掘算法[J].計算機學報,2012,35(11):2283-2293.(LI H F, ZHANG N, ZHU J M, et al. Frequent itemset mining over time sensitive streams[J]. Chinese Journal of Computers, 2012, 35(11): 2283-2293.)
[43] DEYPIR M, SADREDDINI M H, HASHEMI S. Towards a variable size sliding window model for frequent itemset mining over data streams [J]. Computers and Industrial Engineering, 2012, 63(1): 161-172.
[44] 韓萌,王志海,丁劍.一種頻繁模式決策樹處理可變數據流[J].計算機學報,2016,39(8):1541-1554.(HAN M, WANG Z H, DING J. Efficient decision tree for evolving data streams based on frequent patterns [J]. Chinese Journal of Computers, 2016, 39(8): 1541-1554.)
[45] 吳楓,仲妍,吳泉源.基于時間衰減模型的數據流頻繁模式挖掘[J].自動化學報,2010,36(5):674-684.(WU F, ZHONG Y, WU Q Y. Ming frequent patterns over data stream under the time decaying model [J]. Acta Automatica Sinica, 2010, 36(5): 674-684.)
[46] 廖國瓊,吳凌琴,萬常選.基于概率衰減窗口模型的不確定數據流頻繁模式挖掘[J].計算機研究與發展,2012,49(5):1105-1115.(LIAO G Q, WU L Q, WANG C X. Frequent patterns mining over uncertain data streams based on probability decay window model [J]. Journal of Computer Research and Development, 2012, 49(5): 1105-1115.)
[47] LI H, HO C, et al. A single-scan algorithm for mining sequential patterns from data streams [J]. International Journal of Innovative Computing, 2012, 8(3): 1799-1820.
[48] CHEN L, MEI Q. Mining frequent items in data stream using time fading model [J]. Information Sciences, 2014, 257: 54-69.
[49] 韓萌,王志海,原繼東.一種基于時間衰減模型的數據流閉合模式挖掘方法[J].計算機學報,2015,38(7):1473-1482.(HAN M, WANG Z H, YUAN J D. Efficient method for mining closed frequent patterns from data streams based on time decay model [J]. Chinese Journal of Computers, 2015, 38(7): 1473-1482.)
[50] CHEN J, CHEN P. Sequential pattern mining for uncertain data streams using sequential sketch [J]. Journal of Networks, 2014, 9(2): 252-258.
[51] CHENG X, SU S, XU S, et al. Differentially private maximal frequent sequence mining [J]. Computers and Security, 2015, 55(C): 175-192.
[52] AHMED C F, TANBEER S K, JEONG B-S, et al. Single-pass incremental and interactive mining for weighted frequent patterns [J]. Expert Systems with Applications, 2012, 39(9): 7976-7994.
[53] AHMED C F, TANBEER S K, JEONG B-S, et al. Interactive mining of high utility patterns over data streams [J]. Expert Systems with Applications, 2012, 39(15): 11979-11991.
[54] BRAUN P, CAMERON J J, CUZZOCREA A, et al. Effectively and efficiently mining frequent patterns from dense graph streams on disk [J]. Procedia Computer Science, 2014, 35: 338-347.
[55] CUZZOCREA A, HAN Z, JIANG F, et al. Edge-based mining of frequent subgraphs from graph streams [J]. Procedia Computer Science, 2015, 60: 573-582.
[56] FOURNIER-VIGER P, LIN J C W, KIRAN R U, et al. A survey of sequential pattern mining [J]. Data Science and Pattern Recognition, 2017,1(1): 54-77.
[57] PEI J, HAN J, MORTAZAVI-ASL B, et al. Mining sequential patterns by pattern-growth: the PrefixSpan approach [J]. IEEE Transactions on Knowledge and Data Engineering, 2004, 16(11): 1424-1440.
[58] TWS D, HASSANI M, BEECKS C, et al. Optimizing sequential pattern mining within multiple streams [C]// Proceedings of the Workshops of the Conference on Database Systems for Business, Technology and Web (BTW 2015), 2015: 223-232.
TWS D, HASSANI M, BEECKS C, et al. Optimizing sequential pattern mining within multiple streams [EB/OL]. [2018-07-07]. http://cs.emis.de/LNI/Proceedings/Proceedings242/223.pdf.
[59] HASSANI M, TWS D, SEIDL T. Understanding the bigger picture: batch-free exploration of streaming sequential patterns with accurate prediction [C]// Proceedings of the 32nd Annual ACM Symposium on Applied Computing. New York: ACM, 2017: 866-869.
[60] ZIHAYAT M, CHEN Y, AN A. Memory-adaptive high utility sequential pattern mining over data streams [J]. Machine Learning, 2017, 106(6): 799-836.
[61] LIU Y, LIAO W, CHOUDHARY A. A two-phase algorithm for fast discovery of high utility itemsets [C]// Proceedings of the 2005 Pacific-Asia Conference on Knowledge Discovery and Data Mining, LNCS 3518. Berlin: Springer, 2005: 689-695.
[62] YUN U, KIM D, RYANG H, et al. Mining recent high average utility patterns based on sliding window from stream data [J]. Journal of Intelligent and Fuzzy Systems, 2016, 30(6): 3605-3617.
[63] YUN U, RYANG H, LEE G, et al. An efficient algorithm for mining high utility patterns from incremental databases with one database scan [J]. Knowledge-Based Systems, 2017, 124: 188-206.
[64] DAWAR S, SHARMA V, GOYAL V. Mining top-k high-utility itemsets from a data stream under sliding window model [J]. Applied Intelligence, 2017, 47(4): 1240-1255.
[65] YUN U, KIM D, YOON E, et al. Damped window based high average utility pattern mining over data streams [J]. Knowledge-Based Systems, 2018,144: 188-205.
[66] CHOI H-J, PARK C H. Emerging topic detection in twitter stream based on high utility pattern mining [J]. Expert Systems with Applications, 2019, 115: 27-36.
[67] CUZZOCREA A, LEUNG C K. Computing theoretically-sound upper bounds to expected support for frequent pattern mining problems over uncertain big data [C]// Proceedings of the 2016 International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems, CCIS 611. Berlin: Springer, 2016: 379-392.
[68] HEMALATHA C S, VAIDEHI V, LAKSHMI R. Minimal infrequent pattern based approach for mining outliers in data streams [J]. Expert Systems with Applications, 2015, 42(4): 1998-2012.
[69] DUONG Q-H, RAMAMPIARO H, NRVG K, et al. High utility drift detection in quantitative data streams [J]. Knowledge-Based Systems, 2018, 157: 34-51.
[70] de ASSUNO M D, da SILVA VEITH A, BUYYA R. Distributed data stream processing and edge computing: a survey on resource elasticity and future directions [J]. Journal of Network and Computer Applications, 2018, 103: 1-17.
[71] ur REHMAN M H, LIEW C S, WAH T Y, et al. Towards next-generation heterogeneous mobile data stream mining applications: opportunities, challenges, future research directions [J]. Journal of Network and Computer Applications, 2017, 79: 1-24.