本發(fā)明涉及大數(shù)據(jù)平臺異常檢測技術(shù)領(lǐng)域,特別涉及一種基于動態(tài)時間閾值的大數(shù)據(jù)平臺會話識別方法。
背景技術(shù):
隨著大數(shù)據(jù)技術(shù)的飛速發(fā)展,大數(shù)據(jù)平臺架構(gòu)變得愈發(fā)復(fù)雜,而大數(shù)據(jù)平臺對新風(fēng)險的安全需求也在持續(xù)增加。利用異常檢測技術(shù)保證大數(shù)據(jù)平臺的安全性是一種有效的解決方式,而對用戶日志進行精準的會話識別具有重要的意義。一方面,可利用會話異常模型檢測出會話異常;另一方面,可根據(jù)會話可疑度對用戶會話進行模式挖掘。日志挖掘的步驟主要包括數(shù)據(jù)預(yù)處理、模式識別和模式分析,其中數(shù)據(jù)預(yù)處理是首要階段。數(shù)據(jù)預(yù)處理主要包括數(shù)據(jù)清洗、用戶識別、會話識別和路徑補充。會話識別算法的好壞直接影響著后續(xù)對會話序列建模的工作,從而決定能否為異常檢測提供有意義的支持。
目前,會話識別的方法很多。按照對用戶訪問行為的不同假設(shè),會話識別的方法可分為基于時間、基于導(dǎo)航、基于語義這三類方法?;趯?dǎo)航的方法主要分析用戶整個訪問過程,并需要尋找訪問過程中斷開的位置,并從url中挖掘可以反映用戶行為的信息。這類方法主要包括基于引用的方法和基于網(wǎng)絡(luò)拓撲結(jié)構(gòu)的方法。基于網(wǎng)絡(luò)拓撲結(jié)構(gòu)的方法比基于引用的方法劃分的粒度更小,但是不同用戶在相同時間訪問相同網(wǎng)頁的后續(xù)行為會不同,因此這類方法不能模仿人的智能。而基于語義的方法為模擬人的智能提供了可能性。這類方法需要先構(gòu)建語義本體,再建立用戶會話模型,最后將語義接近到一定程度的請求資源劃分到同一個會話中。這類方法可劃分為直接使用url信息和使用url請求的頁面內(nèi)容。一方面,這類方法對url信息要求比較完整;另一方面,雖然這種方法在模擬用戶真實網(wǎng)絡(luò)行為有一定的突破,但是由于存在局限性和準確率較低的問題,目前這類方法的應(yīng)用并還沒有很廣泛。而最常用的基于時間的會話識別方法是以時間閾值為基準來確定會話邊界,優(yōu)點是這類方法在原理和實現(xiàn)上相對另兩種方法簡單,關(guān)鍵的難點是如何有效合理地設(shè)置時間閾值。該方法也可大致分為以會話時長為依據(jù)和以相鄰請求時長為依據(jù)這兩類。并且以相鄰請求時長為依據(jù)的方法比以會話時長為依據(jù)的方法更加接近用戶真實行為。
在基于時間的方法中,fernandez等人使用30min作為整個會話時長切分的時間閾值,而jonesr等人使用25.5min作為劃分時長依據(jù),甚至neelimag等人創(chuàng)新性提出使用60min作為切分閾值。這類劃分方式認為所有會話持有相同的時間,劃分相對比較粗糙。在以相鄰請求時長為依據(jù)的方法中需要預(yù)先設(shè)置一時間間隔閾值,根據(jù)判斷相鄰兩次請求的時間是否超過這一閾值確定同一用戶相鄰兩次的請求是否屬于同一會話,而時間間隔閾值通常設(shè)置為10min。這種設(shè)置固定閾值方法的不足在于一方面可能使原本在同一會話中的記錄被劃分到不同的會話中,另一方面也可能使原本不在同一會話中的記錄劃分到同一會話中。殷賢亮等人提出了一種改進的基于時間間隔的方法,考慮到不同頁面的差異性,通過根據(jù)頁面內(nèi)容及站點結(jié)構(gòu)引入鏈接內(nèi)容比作為因變量對該閾值進行調(diào)整。但是不同的用戶會有不同的興趣和習(xí)慣,這樣的差異也將會導(dǎo)致訪問時間的不同,上述這幾種方法并沒有考慮到這個層面。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于動態(tài)時間閾值的大數(shù)據(jù)平臺會話識別方法,該方法可以提高會話識別的精確率和查全率。
為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種基于動態(tài)時間閾值的大數(shù)據(jù)平臺會話識別方法,包括以下步驟:
(1)初始化頁面時間閾值集合γ={δ1,δ2,…,δn},δk表示第k個頁面的頁面時間閾值,k∈{1,2,…,n};
(2)從一用戶請求記錄的集合h={h1,h2,…,hm}中取出請求記錄hi,i∈{1,2,…,m},并判斷請求記錄hi是否為空,是則從集合h中取出下一請求記錄繼續(xù)進行判斷,否則轉(zhuǎn)下一步驟;
(3)判斷當前請求記錄與前一個請求記錄是否屬于同一個用戶,是則轉(zhuǎn)下一步驟,否則將當前請求記錄加入新會話中,并按照用戶訪問時間閾值的計算公式和設(shè)置權(quán)重公式更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷;
(4)計算請求記錄hi的訪問時間tnew,并判斷是否滿足訪問時間tnew≤δj,δj表示請求記錄hi對應(yīng)當前頁面的頁面時間閾值,是則將該請求記錄加入當前會話sc中并轉(zhuǎn)下一步驟,否則將該請求記錄加入新會話sc+1中并更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷;
(5)如果訪問時間tnew滿足時間閾值調(diào)整的條件,即訪問時間tnew超過設(shè)定的間隔時間,則更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷,否則直接返回步驟(2)取出下一請求記錄繼續(xù)進行判斷。
進一步地,按照用戶訪問時間閾值的計算公式和權(quán)重公式更新集合γ的方法為:
按如下方法計算頁面訪問時間閾值δ’:
計算鏈接內(nèi)容比rlcr:
rlcr=(a1×l1+a2×l0)/(l1+l0)
其中,l1表示頁面的鏈入數(shù),即鏈接到該頁面的頁面?zhèn)€數(shù),l0表示頁面的鏈出數(shù),即該頁面包含的鏈接個數(shù),a1表示鏈入數(shù)的權(quán)值,a2表示鏈出數(shù)的權(quán)值,a1+a2=1;
采用下式將rlcr值映射到(0,1):
β=1-exp(rlcr)
其中,β為rlcr值對頁面訪問時間閾值δ’的影響因子;
頁面訪問時間閾值δ’為:
δ’=α×t×(1+β)
其中,α為平滑系數(shù),t為頁面的實際訪問時間;
按如下方法計算用戶訪問時間閾值δ’’:
設(shè)t0為初始的頁面訪問時間閾值,tnew表示將新頁面添加到當前會話或新會話中的訪問時間;平均時間t’表達式為:
t’=(t0+tnew)/2
定義調(diào)整因子η為:
η=(t’-t0)/t0=(tnew-t0)/2t0
將調(diào)整因子適用于所有頁面,δ0表示上次調(diào)整后的時間閾值,則調(diào)整后的用戶訪問時間閾值δ’’的計算公式為:
δ’’=δ0(1+η)=δ0(tnew+t0)/2t0
按如下權(quán)重公式設(shè)置頁面時間閾值δk:
δk=aδ’+(1-a)δ’’
其中,a表示頁面訪問時間閾值δ’和用戶訪問時間閾值δ’’之間的權(quán)重因子;
計算出頁面時間閾值δk后,即可得到更新后的頁面時間閾值集合γ。
本發(fā)明的有益效果是提出了一種基于相鄰請求的動態(tài)調(diào)整時間間隔閾值的會話識別方法,該方法通過結(jié)合站點頁面因子和用戶訪問頁面時間的平均因子,對時間閾值進行動態(tài)調(diào)整劃分會話,從而可使會話識別的精確率和查全率得到較大的提高。
附圖說明
圖1是本發(fā)明實施例的實現(xiàn)流程圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進一步的詳細說明。
本發(fā)明基于動態(tài)時間閾值的大數(shù)據(jù)平臺會話識別方法(asessionidentificationalgorithmbasedonthedynamicadjustiveintervaltimethresholdofadjacentrequests,daits),同時考慮頁面內(nèi)容和用戶差異性并在兩者間加入合適的權(quán)重,如圖1所示,包括以下步驟:
(1)初始化頁面時間閾值集合γ={δ1,δ2,…,δn},δk表示第k個頁面的頁面時間閾值,k∈{1,2,…,n};
(2)從一用戶請求記錄的集合h={h1,h2,…,hm}中取出請求記錄hi,i∈{1,2,…,m},并判斷請求記錄hi是否為空,是則從集合h中取出下一請求記錄繼續(xù)進行判斷,否則轉(zhuǎn)下一步驟;
(3)判斷當前請求記錄與前一個請求記錄是否屬于同一個用戶,是則轉(zhuǎn)下一步驟,否則將當前請求記錄加入新會話中,并按照用戶訪問時間閾值的計算公式和設(shè)置權(quán)重公式更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷;
(4)計算請求記錄hi的訪問時間tnew,并判斷是否滿足訪問時間tnew≤δj,δj表示請求記錄hi對應(yīng)當前頁面的頁面時間閾值,是則將該請求記錄加入當前會話sc中并轉(zhuǎn)下一步驟,否則將該請求記錄加入新會話sc+1中并更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷;
(5)如果訪問時間tnew滿足時間閾值調(diào)整的條件,即訪問時間tnew超過設(shè)定的間隔時間(即找出時間間隔較大的記錄),則更新集合γ,然后返回步驟(2)取出下一請求記錄繼續(xù)進行判斷,否則直接返回步驟(2)取出下一請求記錄繼續(xù)進行判斷。
在本實施例中,按照用戶訪問時間閾值的計算公式和權(quán)重公式更新集合γ的方法為:
按如下方法計算頁面訪問時間閾值δ’:
使用頁面的鏈入數(shù)和鏈出數(shù)來衡量頁面的重要程度。鏈接內(nèi)容比rlcr的計算公式為:
rlcr=(l1+l0)/s
其中,l1表示頁面的鏈入數(shù),即鏈接到該頁面的頁面?zhèn)€數(shù),l0表示頁面的鏈出數(shù),即該頁面包含的鏈接個數(shù),s表示頁面大小。
一般情況下,一個頁面的鏈入比鏈出重要,所以對它們賦予不同的權(quán)值。因此,將公式調(diào)整為:
rlcr=(a1×l1+a2×l0)/(l1+l0)
a1表示鏈入數(shù)的權(quán)值,a2表示鏈出數(shù)的權(quán)值,a1+a2=1。在本實施例中,a1=0.7,a2=0.3。
為了將rlcr值用于對頁面訪問時間閾值δ’的調(diào)整,需要將rlcr值映射到(0,1)之間,采用下式將rlcr值映射到(0,1):
β=1-exp(rlcr)
其中,β為rlcr值對頁面訪問時間閾值δ’的影響因子。
則頁面訪問時間閾值δ’為:
δ’=α×t×(1+β)
其中,α為平滑系數(shù),t為頁面的實際訪問時間。在本實施例中,α取經(jīng)驗值1.2。
由于用戶閱讀習(xí)慣、閱讀速度等不同會導(dǎo)致不同的用戶訪問頁面的時間不同。一般來講,閱讀速度慢的用戶被識別的會話個數(shù)會更多。本發(fā)明提出的動態(tài)調(diào)整時間間隔閾值的方法所設(shè)定的時間閾值并不是固定的。對同一用戶進行會話識別時,只需要關(guān)注那些時間間隔較大的記錄。
按如下方法計算用戶訪問時間閾值δ’’:
設(shè)t0為初始的頁面訪問時間閾值,tnew表示將新頁面添加到當前會話或新會話中的訪問時間;平均時間t’表達式為:
t’=(t0+tnew)/2
為了將這種調(diào)整同樣適用于其他頁面,定義調(diào)整因子η為:
η=(t’-t0)/t0=(tnew-t0)/2t0
將調(diào)整因子適用于所有頁面,δ0表示上次調(diào)整后的時間閾值,則調(diào)整后的用戶訪問時間閾值δ’’的計算公式為:
δ’’=δ0(1+η)=δ0(tnew+t0)/2t0
當有新的請求記錄加入到當前會話中就按照權(quán)重公式重新對時間閾值進行調(diào)整,按如下權(quán)重公式設(shè)置頁面時間閾值δ:
δk=aδ’+(1-a)δ’’
其中,a表示頁面訪問時間閾值δ’和用戶訪問時間閾值δ’’之間的權(quán)重因子;
計算出頁面時間閾值δk后,即可得到更新后的頁面時間閾值集合γ。
本發(fā)明所提出的會話識別方法(daits)在一定程度上提高了會話識別的效率,其核心原理是基于用戶相鄰請求動態(tài)調(diào)整時間間隔閾值,能在大數(shù)據(jù)平臺的異常檢測分析過程中提供可靠的支撐。
以上是本發(fā)明的較佳實施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時,均屬于本發(fā)明的保護范圍。