基于神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法的日志分類系統(tǒng)設(shè)計(jì)

一、設(shè)計(jì)目標(biāo)
輸出一個(gè)通用化的匹配模型竭钝,可以通過日志內(nèi)容實(shí)現(xiàn)快速識(shí)別,實(shí)現(xiàn)日志快速分類茧泪。

二、設(shè)計(jì)思路
通過現(xiàn)有的部分日志數(shù)據(jù)作為基本訓(xùn)練數(shù)據(jù)穴吹。
通過日志文字進(jìn)行分類,并讓模型進(jìn)行學(xué)習(xí)顷霹,讓模型對(duì)于文字具備識(shí)別能力。
設(shè)計(jì)符合設(shè)計(jì)目標(biāo)的計(jì)算模型。
通過基本驗(yàn)證標(biāo)準(zhǔn)后袍辞,將計(jì)算模型應(yīng)用于日志更新的策略中,實(shí)現(xiàn)快速日志識(shí)別目標(biāo)谎懦。

三、基本實(shí)現(xiàn)策略
1呛谜、提取部分有效的日志數(shù)據(jù)
2、進(jìn)行關(guān)鍵數(shù)據(jù)分析聚凹,劃分?jǐn)?shù)據(jù)列,并提取具備共性的核心關(guān)鍵特征
3、將日志中表現(xiàn)關(guān)鍵指標(biāo)的數(shù)據(jù)作為訓(xùn)練的X和Y
4、在X數(shù)據(jù)中進(jìn)行關(guān)鍵詞的分詞旗们,提取訓(xùn)練所需的詞庫,并形成id數(shù)據(jù)
5、轉(zhuǎn)換X數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)矩陣
6、設(shè)計(jì)基本計(jì)算模型漓库,形成合理的多層模型彪薛,確保計(jì)算的穩(wěn)定性以及可靠性
7城侧、進(jìn)行多輪驗(yàn)證,直到尋求到最佳模型結(jié)構(gòu)以及訓(xùn)練結(jié)果,并保存炮温。
8棋枕、提取保存的模型,動(dòng)態(tài)刷新es日志數(shù)據(jù)重斑,并使用模型進(jìn)行預(yù)測(cè)
9兵睛、將預(yù)測(cè)結(jié)果批量刷新至es數(shù)據(jù)庫中祖很,實(shí)現(xiàn)日志分類
10假颇、將結(jié)果進(jìn)行二次運(yùn)用于其他分析和問題排查操作中形耗。

四倦踢、核心算法
本系統(tǒng)主要涉及以下幾個(gè)核心算法
1硼一、分詞算法
分詞是本系統(tǒng)的核心需求累澡,有效的分詞能夠幫助模型記憶數(shù)據(jù)含義。最終進(jìn)行預(yù)測(cè)時(shí)哼蛆,可以根據(jù)詞意進(jìn)行理解蕊梧,提高最終識(shí)別的有效性和穩(wěn)定性。
日志分詞的特殊性在于日志文字的復(fù)雜性腮介,往往是中文肥矢、英文、數(shù)字和特殊字符的混合體叠洗。因?yàn)樵谝话阕匀徽Z言處理時(shí)甘改,會(huì)考慮忽略特殊字符,但日志系統(tǒng)中的特殊字符往往具有其含義灭抑,因此實(shí)現(xiàn)分詞時(shí)十艾,保留特殊字符也是尤為重要。也因此腾节,本系統(tǒng)的分詞算法是實(shí)現(xiàn)最終目標(biāo)的第一重要算法忘嫉。
算法涉及主要方法的方法名偽代碼如下:
change_mark_to_sp_word()
first_split_sentence('\W+')
analysis_word_for_chn_and_split_ag()
get_and_save_word_index()
append_word_index_array()

2、有效詞分類算法
有效分詞是分詞系統(tǒng)中一個(gè)比較重要的子算法案腺。主要解決的問題是庆冕,由于在我們的分詞過程中,會(huì)遇到大量特殊的字符劈榨,例如hashcode访递,token等。這些字符在日志中往往不具備分類表意的作用同辣,但在分詞時(shí)拷姿,會(huì)因?yàn)樗牟恢貜?fù)性,形成大量的無效分詞邑闺。而矩陣計(jì)算時(shí)跌前,需要實(shí)現(xiàn)定長(zhǎng)矩陣的計(jì)算才能實(shí)現(xiàn)結(jié)果棕兼,因此必須要控制詞庫的容量在一定范圍內(nèi)陡舅。同時(shí)詞庫的增加也會(huì)增加計(jì)算的復(fù)雜度以及最終預(yù)測(cè)時(shí)的干擾性。
綜上伴挚,務(wù)必在分詞時(shí)靶衍,盡可能排除對(duì)于分類含義讀取無效的字符干擾灾炭,將無效詞不計(jì)入分類中。
本算法以文字形態(tài)表達(dá):
排除以下文字進(jìn)入有效詞庫:
超過特定長(zhǎng)度的字符
唱過特定長(zhǎng)度的數(shù)字
不排除所有中文字符
引入較大的英文詞庫颅眶,并根據(jù)英文詞庫蜈出,對(duì)單詞進(jìn)行有效性劃分。
排除其他特定的無效字符涛酗。
其他字符作為有效字符進(jìn)入到分詞詞庫中铡原。

3、模型構(gòu)建算法
最終的訓(xùn)練和預(yù)測(cè)模型是整個(gè)算法最終落地的環(huán)節(jié)商叹,因此選擇合理的模型是至關(guān)重要的燕刻。
本模型考慮過基于卷積算法的深度卷積文字算法和基于循環(huán)神經(jīng)網(wǎng)絡(luò)的seq2seq模型算法。
基于卷積算法的特點(diǎn)在于模型理解比較簡(jiǎn)單剖笙,訓(xùn)練時(shí)匹配度也比較高而且訓(xùn)練收斂速度快卵洗,但缺陷也非常明顯,基于卷積算法的邏輯在于基于一般詞的特征向量計(jì)算目標(biāo)關(guān)聯(lián)度弥咪,以此判斷計(jì)算結(jié)果和目標(biāo)的有效性过蹂,但一旦模型順序發(fā)生變更以及詞意發(fā)生變更,預(yù)測(cè)結(jié)果會(huì)變得相當(dāng)不穩(wěn)定聚至。但優(yōu)點(diǎn)是
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的seq2seq算法來進(jìn)行計(jì)算酷勺,最大的缺點(diǎn)是計(jì)算速度慢,收斂度遠(yuǎn)不如卷積算法的收斂速度晚岭,但優(yōu)點(diǎn)是根據(jù)詞意進(jìn)行記憶的模型鸥印,明顯更趨于理解句意,更不容易受到環(huán)境變更的影響坦报,穩(wěn)定性也更好库说。
經(jīng)過多次調(diào)整,最終模型結(jié)構(gòu)如下:

Model: "sequential"


Layer (type) Output Shape Param #

embedding (Embedding) (None, 1000, 64) 4480000


dropout (Dropout) (None, 1000, 64) 0


batch_normalization (BatchNo (None, 1000, 64) 256


gru (GRU) (None, 1000, 32) 9408


gru_1 (GRU) (None, 5) 585

Total params: 4,490,249
Trainable params: 4,490,121
Non-trainable params: 128

因?yàn)楸緫?yīng)用目標(biāo)為特定多分類片择,因此分類函數(shù)使用了softmax潜的,損失函數(shù)使用了CategoricalCrossentropy,梯度下降函數(shù)使用Adam函數(shù)字管。

模型中使用了兩次dropout和一次batchNormalization來降低模型訓(xùn)練的擬合度啰挪,提高了模型的適應(yīng)性。
最終測(cè)試集的測(cè)試結(jié)果如下:
test loss 0.09884617477655411
accuracy 0.978004515171051

五嘲叔、實(shí)現(xiàn)平臺(tái)
基于anaconda框架的python3.7版本平臺(tái)實(shí)現(xiàn)亡呵。
基礎(chǔ)環(huán)境依賴了部分es的接口和mysql數(shù)據(jù)庫。
深度學(xué)習(xí)框架采用了tensorflow2.2版本硫戈。

六锰什、實(shí)現(xiàn)結(jié)果
最終實(shí)現(xiàn)結(jié)果的幾個(gè)描述維度:
結(jié)果運(yùn)行設(shè)備的配置為:2.8GHz主頻的CPU,2C8G配置。
1汁胆、平均預(yù)測(cè)速度
在不考慮es性能的情況下梭姓,提取出的數(shù)據(jù)進(jìn)行轉(zhuǎn)換然后預(yù)測(cè)的耗時(shí),約為80-120s每2w條日志(取決于數(shù)據(jù)的長(zhǎng)度和復(fù)雜度)嫩码。

2誉尖、預(yù)測(cè)精度
大約95%左右的預(yù)測(cè)準(zhǔn)確度,識(shí)別誤差更多來自于未學(xué)習(xí)過內(nèi)容的判定偏差铸题,通過擴(kuò)展學(xué)習(xí)范疇可以改善铡恕。

3、語義理解能力
基本實(shí)現(xiàn)了自主語義識(shí)別丢间,經(jīng)過查詢確認(rèn)了部分應(yīng)當(dāng)標(biāo)記為異常的日志數(shù)據(jù)保存時(shí)未作為異常數(shù)據(jù)保存没咙,但仍然被模型識(shí)別為異常,且語句中并不包含常見的關(guān)鍵字千劈,例如ERROR祭刚,異常等。

七墙牌、后續(xù)擴(kuò)展考慮
1涡驮、擴(kuò)展應(yīng)用范圍
因?yàn)楸灸P途邆湟话阈裕虼藨?yīng)用范圍可以從目前的日志范圍擴(kuò)展到更大范圍喜滨,從運(yùn)維到研發(fā)層面捉捅,幫助用戶快速發(fā)現(xiàn)和識(shí)別問題。

2虽风、提升準(zhǔn)確性
通過對(duì)分析數(shù)據(jù)的二次分析棒口,增加學(xué)習(xí)的維度數(shù)據(jù),繼續(xù)訓(xùn)練模型辜膝,提升模型的預(yù)測(cè)準(zhǔn)確度无牵。

3、分類深度分析
在數(shù)據(jù)分析上厂抖,如果繼續(xù)進(jìn)行異常等級(jí)分類茎毁,可以將異常劃分為不同等級(jí),幫助開發(fā)和用戶快速發(fā)現(xiàn)和識(shí)別問題忱辅。

4七蜘、異常統(tǒng)計(jì)
根據(jù)識(shí)別結(jié)果,快速生成特定服務(wù)的異常統(tǒng)計(jì)結(jié)果墙懂,并匯總為報(bào)表橡卤,實(shí)現(xiàn)質(zhì)量報(bào)告以及用戶異常行為報(bào)告等。

5损搬、自動(dòng)文本摘要
根據(jù)語義識(shí)別碧库,形成語義文本摘要扔亥,但本目標(biāo)涉及NLG(自然語言生成),當(dāng)前模型更多為NLP(自然語言處理)谈为。實(shí)現(xiàn)邏輯上仍然有一定偏差,實(shí)現(xiàn)復(fù)雜度會(huì)更高踢关。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伞鲫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子签舞,更是在濱河造成了極大的恐慌秕脓,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件儒搭,死亡現(xiàn)場(chǎng)離奇詭異吠架,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搂鲫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門傍药,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人魂仍,你說我怎么就攤上這事拐辽。” “怎么了擦酌?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵俱诸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我赊舶,道長(zhǎng)睁搭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任笼平,我火速辦了婚禮园骆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寓调。我一直安慰自己遇伞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布捶牢。 她就那樣靜靜地躺著鸠珠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秋麸。 梳的紋絲不亂的頭發(fā)上渐排,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音灸蟆,去河邊找鬼驯耻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的可缚。 我是一名探鬼主播霎迫,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼帘靡!你這毒婦竟也來了知给?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤描姚,失蹤者是張志新(化名)和其女友劉穎涩赢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轩勘,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡筒扒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绊寻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片花墩。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖澄步,靈堂內(nèi)的尸體忽然破棺而出观游,到底是詐尸還是另有隱情,我是刑警寧澤驮俗,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布懂缕,位于F島的核電站,受9級(jí)特大地震影響王凑,放射性物質(zhì)發(fā)生泄漏搪柑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一索烹、第九天 我趴在偏房一處隱蔽的房頂上張望工碾。 院中可真熱鬧,春花似錦百姓、人聲如沸渊额。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旬迹。三九已至,卻和暖如春求类,著一層夾襖步出監(jiān)牢的瞬間唬血,已是汗流浹背痹屹。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工厅须, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惶岭。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像犯眠,于是被迫代替她去往敵國(guó)和親按灶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354