AIOps從運維到運營:多維數(shù)據(jù)熱點發(fā)現(xiàn)算法

AIOps從運維到運營:多維數(shù)據(jù)熱點發(fā)現(xiàn)算法

原創(chuàng):?鄒磊 張明

簡介

? ? ? ?本文介紹一種多維數(shù)據(jù)熱點發(fā)現(xiàn)的AIOps算法桶雀,既可應(yīng)用于運維, 也可以應(yīng)用于運營,都是Ops (Operations)唬复。該工作發(fā)表于《小型微型計算機系統(tǒng)》矗积。

?該方法通過對多維數(shù)據(jù)進行聚類,找出數(shù)據(jù)聚集的區(qū)域敞咧,并通過特征取值組合(例如{時間∈[18,24]棘捣,所在城市∈[北京,深圳,上海]休建,網(wǎng)絡(luò)延遲<30ms})將其表示出來乍恐。本文將數(shù)據(jù)聚集的區(qū)域稱為數(shù)據(jù)熱點,數(shù)據(jù)熱點可以作為多維數(shù)據(jù)的一種可視化方法测砂。

作者|鄒磊 張明

編輯|Vicky

背景

用戶數(shù)據(jù)分析是企業(yè)優(yōu)化服務(wù)質(zhì)量茵烈、提升用戶體驗的重要一環(huán),常用的用戶數(shù)據(jù)分析方法包括細分分析砌些、對比分析呜投、漏斗分析、同期群分析存璃、聚類分析仑荐、AB測試、埋點分析纵东、來源分析粘招、用戶分析、表單分析等偎球,而熱點發(fā)現(xiàn)是用戶數(shù)據(jù)分析中沒有使用的方法男图。熱點發(fā)現(xiàn)的概念大家在生活中會經(jīng)常接觸示姿,例如微博熱搜、百度的搜索熱點等逊笆,這些熱點發(fā)現(xiàn)的工作本質(zhì)上都是對大量的文本數(shù)據(jù)進行挖掘栈戳,找出這些文本數(shù)據(jù)聚集的區(qū)域,即熱搜难裆、熱點子檀、主流觀點等。用戶數(shù)據(jù)通常組織為多維數(shù)據(jù)的形式乃戈,針對文本數(shù)據(jù)進行的熱點發(fā)現(xiàn)工作無法直接應(yīng)用于多維數(shù)據(jù)褂痰。

多維數(shù)據(jù)通常包含多個與目標(biāo)事件相關(guān)的特征,這些特征可以是用戶的手機品牌症虑、使用的服務(wù)類型缩歪、事件發(fā)生的時間、用戶的地理位置谍憔、用戶的網(wǎng)絡(luò)延遲匪蝙、軟件版本、服務(wù)器負載习贫、用戶年齡等逛球,每次目標(biāo)事件發(fā)生都對應(yīng)一條多維數(shù)據(jù)。例如圖 1所示苫昌,該多維數(shù)據(jù)包含5個特征颤绕,并且展示了7條數(shù)據(jù)作為示例。

圖 1多維數(shù)據(jù)示例

如果把多維數(shù)據(jù)的每一個特征都看作一個維度祟身,那么多維數(shù)據(jù)就是分布于由各個特征的取值范圍構(gòu)成的特征空間中的數(shù)據(jù)奥务。例如圖 2所示,在由時間袜硫、網(wǎng)絡(luò)延遲和所在城市三個特征構(gòu)成的特征空間中汗洒,每個黑色方格都是一條數(shù)據(jù),白色方格表示該處沒有數(shù)據(jù)父款。多維數(shù)據(jù)的熱點發(fā)現(xiàn)希望能夠找出圖中數(shù)據(jù)集中的兩個熱點區(qū)域(圖中的虛線處),并以特征取值組合{時間∈[18,24]瞻凤,所在城市∈[北京,深圳憨攒,上海],網(wǎng)絡(luò)延遲<30ms}和{時間∈[6,9]}將這兩個熱點區(qū)域的信息呈現(xiàn)給數(shù)據(jù)分析人員阀参,特征取值組合通過限定一個或者多個特征的取值范圍來表示數(shù)據(jù)的取值范圍肝集。實際的特征空間通常會超過三維,但是受限于圖片的表達能力蛛壳,在這里僅以三維特征空間作為例子杏瞻。

圖 2多維數(shù)據(jù)聚集區(qū)域示例

術(shù)語定義

熱點定義:熱點是指特征空間中的數(shù)據(jù)區(qū)域所刀,其數(shù)據(jù)密度D>= Dthr,并且數(shù)據(jù)量Q>=Qthr捞挥。Dthr和Qthr為常數(shù)閾值浮创,其取值根據(jù)具體應(yīng)用由專家根據(jù)相關(guān)領(lǐng)域的專業(yè)知識選取。

數(shù)據(jù)密度定義:用于描述特征取值組合的數(shù)據(jù)集中程度的數(shù)據(jù)密度D的計算方式為


其中#data為該特征取值組合覆蓋的數(shù)據(jù)數(shù)量砌函;Li為該特征取值組合所確定的區(qū)域中特征i 的長度斩披。

多維數(shù)據(jù)熱點發(fā)現(xiàn)算法介紹

1. 基本思想

圖 3熱點發(fā)現(xiàn)算法基本思路示意圖

本文使用聚類方法來解決多維數(shù)據(jù)的熱點發(fā)現(xiàn)問題。例如圖 3中的二維數(shù)據(jù)所示讹俊,其中的黑色點就是業(yè)務(wù)數(shù)據(jù)垦沉,數(shù)據(jù)集中分布在兩片區(qū)域A和B中,區(qū)域C的數(shù)據(jù)則非常的稀疏仍劈。根據(jù)前面提到的需求厕倍,理想的情況是能夠找出表示A和B兩個區(qū)域的特征取值組合。為了實現(xiàn)這個目標(biāo)贩疙,首先對數(shù)據(jù)進行聚類讹弯,在數(shù)據(jù)被聚成A,B和C三個類之后,再用剛好能夠覆蓋類中所有數(shù)據(jù)的特征取值的組合來界定每個類的邊界屋群。描述類A和類B邊界的特征取值組合就是多維數(shù)據(jù)熱點發(fā)現(xiàn)希望找到的結(jié)果闸婴。

2.? ?聚類算法選擇

?CLTree的聚類結(jié)果的邊界整齊,可以直接用特征的取值組合進行表示芍躏,并且不需要預(yù)先輸入需要將數(shù)據(jù)分成多少類邪乍,CLTree會根據(jù)數(shù)據(jù)的特點決定聚類結(jié)果中類的數(shù)目,因此本文選擇CLTree作為基線算法对竣。但是CLTree僅支持處理數(shù)值型特征庇楞、處理具有周期性的數(shù)值型特征效果不好,并且計算效率低否纬。本文創(chuàng)新設(shè)計的CLTree+算法有效解決了CLTree的上述缺點吕晌。

CLTree+ 相對于 CLTree 進行了如下三點改進:

? 通過剪枝提升了聚類的計算效率。

? 增加對類別型特征的聚類支持临燃。

? 提升了具有周期性特征的數(shù)值型特征的聚類效果睛驳。

3.? ?數(shù)據(jù)熱點獲取

?CLTree+是沿著數(shù)據(jù)的整齊邊界分裂數(shù)據(jù)的,因此CLTree+的聚類結(jié)果能夠天然地用特征取值的組合來表示膜廊。從根結(jié)點到該葉結(jié)點的分裂路徑即一系列特征取值條件的組合就可以表示該類乏沸。

?本文以整體數(shù)據(jù)的密度Dglob作為基準(zhǔn)線,并為所有類計算其數(shù)據(jù)密度與Dglob的比值爪瓜。CLTree+的聚類結(jié)果中數(shù)據(jù)密度大于Dglob的類即可視作熱點蹬跃。用戶在實際使用該算法時可以根據(jù)實際情況選擇密度最大的若干個類作為數(shù)據(jù)熱點。

4.? ?算法時間復(fù)雜度分析

對于類別型特征铆铆,CLTree+采用one-against-others二分裂蝶缀,只需要遍歷O(n)個分裂點丹喻,并且不需要對數(shù)據(jù)進行排序,處理每個特征時只需要遍歷一次數(shù)據(jù)翁都。只包含類別型特征的CLTree+的時間復(fù)雜度為O(mn)碍论。

對于周期型特征,CLTree+將其轉(zhuǎn)換成數(shù)值型特征進行處理荐吵,相當(dāng)于多了n倍特征骑冗,只包含周期型特征的CLTree+的時間復(fù)雜度為O(mn4)。

對于含有mnum個數(shù)值型特征先煎,mcat個類別型特征贼涩,mper個周期型特征的數(shù)據(jù),CLTree+的時間復(fù)雜度為:

實驗與結(jié)果分析

1. 實驗數(shù)據(jù)介紹

本次實驗使用的業(yè)務(wù)數(shù)據(jù)為國內(nèi)一家移動出行公司的訂單數(shù)據(jù)薯蝎,被使用的數(shù)據(jù)量已經(jīng)經(jīng)過了采樣遥倦,采樣之后的數(shù)據(jù)量約為10萬條。每條業(yè)務(wù)數(shù)據(jù)都包含了7個特征占锯,各個特征的信息如表 1所示:

所有實驗數(shù)據(jù)都進行了脫敏袒哥,時間特征的取值加入了一定小時數(shù)的時間偏移,其它類別型特征的取值都用編號代替消略。

2. 實驗結(jié)果介紹

將CLTree+應(yīng)用到實驗數(shù)據(jù)后得到如圖 5所示的聚類樹堡称。算法輸入?yún)?shù)葉結(jié)點最小數(shù)據(jù)量定為總數(shù)據(jù)量的5%,最小信息熵增益定為0.01艺演。圖 5記錄了數(shù)據(jù)分裂的詳細過程却紧,圖中每一個結(jié)點都表示數(shù)據(jù)分裂過程中的一個數(shù)據(jù)子集,最上層的根結(jié)點表示整體數(shù)據(jù)集胎撤。如果一個結(jié)點有子結(jié)點晓殊,則說明該數(shù)據(jù)集繼續(xù)進行了分裂。結(jié)點中的特征名表示該數(shù)據(jù)集在該特征上根據(jù)一定的條件進行分裂伤提,而連接結(jié)點的邊上的信息表示分裂該數(shù)據(jù)集的條件巫俺。例如,根結(jié)點表示的數(shù)據(jù)根據(jù)服務(wù)的取值被分成兩個子數(shù)據(jù)集肿男,一個子數(shù)據(jù)集中數(shù)據(jù)的服務(wù)特征取值均為服務(wù)4介汹,另外一個子數(shù)據(jù)集中數(shù)據(jù)的服務(wù)特征取值均為非服務(wù)4。從根結(jié)點到目標(biāo)結(jié)點的路徑上的一系列分裂條件就構(gòu)成了表示目標(biāo)結(jié)點的特征取值組合舶沛,例如圖 5中的紅色結(jié)點(虛線框)所示嘹承,從根結(jié)點到該結(jié)點的4個用紅色箭頭(粗箭頭)表示的分裂條件就構(gòu)成了表示該結(jié)點的特征取值組合{服務(wù)=服務(wù)4,版本=版本8冠王,品牌=品牌57,時間∈[0,15)}舌镶。所有的葉子節(jié)點構(gòu)成了最終的聚類結(jié)果柱彻。

圖 5移動出行公司訂單數(shù)據(jù)建立的CLTree+

表 2按數(shù)據(jù)密度與整體數(shù)據(jù)的數(shù)據(jù)密度比值降序的方式展示了聚類結(jié)果中所有的類豪娜。最后的聚類結(jié)果中能夠出現(xiàn)較多的像類1這樣的數(shù)據(jù)覆蓋量大且數(shù)據(jù)密度較高的類是比較好的結(jié)果。


3. 效果評估

并沒有一個通用的指標(biāo)可以用于評價多維數(shù)據(jù)熱點發(fā)現(xiàn)的結(jié)果哟楷,并且由于所有可能的特征取值組合數(shù)量巨大瘤载,因此也無法通過遍歷并對比所有可能的特征取值組合來評價熱點發(fā)現(xiàn)結(jié)果。目前主要依賴該移動出行公司的數(shù)據(jù)專家結(jié)合具體的專業(yè)知識對結(jié)果進行評估卖擅。通過對聚類結(jié)果的認真評估鸣奔,數(shù)據(jù)專家一致認為熱點發(fā)現(xiàn)的結(jié)果非常符合他們的歷史經(jīng)驗,結(jié)果比較理想惩阶。

4. 性能評估

用于測試實驗程序運行速度的硬件環(huán)境為一臺搭載英特爾至強E5-2620挎狸,2.4GHz,64GB內(nèi)存的服務(wù)器断楷,操作系統(tǒng)為Debian 8.7,所使用的編程語言為Python2.7锨匆。實驗程序為一個單機版單線程程序,并沒有使用任何集群技術(shù)或者多線程技術(shù)冬筒。

下面給出了將CLTree+應(yīng)用于某大型互聯(lián)網(wǎng)公司的用戶數(shù)據(jù)時得到的數(shù)據(jù)量恐锣、每條數(shù)據(jù)包含的特征、CLTree+的分裂深度對程序速度的影響舞痰。所有程序運行速度的數(shù)據(jù)都是運行5次程序取平均值得到的土榴。圖 10展示了數(shù)據(jù)量對程序運行速度的影響,從圖中可以看出程序的運行時間隨著數(shù)據(jù)量的增加基本上是呈線性增長,這是因為實驗數(shù)據(jù)中的特征除了時間以外全部為類別型特征响牛。圖 11展示了決策樹分裂深度對程序速度的影響玷禽。從圖中可以看出程序的運行時間隨著葉結(jié)點數(shù)量的增加而增加,但是增長得越來越慢娃善,基本呈對數(shù)曲線關(guān)系论衍。出現(xiàn)這種情況是因為隨著數(shù)據(jù)的分裂,子數(shù)據(jù)集中的數(shù)據(jù)量會越來越少聚磺。

圖 10數(shù)據(jù)量對程序運行速度的影響

圖 11決策樹分裂深度對程序速度的影響

結(jié)語

本文介紹了一種多維數(shù)據(jù)熱點發(fā)現(xiàn)算法坯台,通過CLTree+對數(shù)據(jù)進行聚類找出數(shù)據(jù)聚集的熱點區(qū)域。該算法應(yīng)用于真實用戶數(shù)據(jù)瘫寝,取得了很好的效果蜒蕾。

鄒磊,朱晶焕阿,聶曉輝咪啡,蘇亞,裴丹暮屡,孫宇撤摸,《基于聚類的多維數(shù)據(jù)熱點發(fā)現(xiàn)算法》,《小型微型計算機系統(tǒng)》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市准夷,隨后出現(xiàn)的幾起案子钥飞,更是在濱河造成了極大的恐慌,老刑警劉巖衫嵌,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件读宙,死亡現(xiàn)場離奇詭異,居然都是意外死亡楔绞,警方通過查閱死者的電腦和手機结闸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酒朵,“玉大人桦锄,你說我怎么就攤上這事〕芊恚” “怎么了察纯?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長针肥。 經(jīng)常有香客問我饼记,道長,這世上最難降的妖魔是什么慰枕? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任具则,我火速辦了婚禮,結(jié)果婚禮上具帮,老公的妹妹穿的比我還像新娘博肋。我一直安慰自己,他們只是感情好蜂厅,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布匪凡。 她就那樣靜靜地躺著,像睡著了一般掘猿。 火紅的嫁衣襯著肌膚如雪病游。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天稠通,我揣著相機與錄音衬衬,去河邊找鬼。 笑死改橘,一個胖子當(dāng)著我的面吹牛滋尉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播飞主,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狮惜,長吁一口氣:“原來是場噩夢啊……” “哼高诺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碾篡,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤懒叛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后耽梅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡胖烛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年眼姐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佩番。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡众旗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趟畏,到底是詐尸還是另有隱情贡歧,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布赋秀,位于F島的核電站利朵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏猎莲。R本人自食惡果不足惜绍弟,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望著洼。 院中可真熱鬧樟遣,春花似錦、人聲如沸身笤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽液荸。三九已至瞻佛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間莹弊,已是汗流浹背涤久。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忍弛,地道東北人响迂。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像细疚,于是被迫代替她去往敵國和親蔗彤。 傳聞我的和親對象是個殘疾皇子川梅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容