亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用GNN 與RNN 實(shí)現(xiàn)用戶行為分析

        2021-05-14 03:41:58王曉東趙一寧肖海力王小寧遲學(xué)斌
        計(jì)算機(jī)與生活 2021年5期
        關(guān)鍵詞:用戶方法模型

        王曉東,趙一寧,肖海力,王小寧,遲學(xué)斌

        1.中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京100190

        2.中國(guó)科學(xué)院大學(xué),北京100049

        中國(guó)國(guó)家高性能計(jì)算環(huán)境(China National Grid,CNGrid)是由國(guó)內(nèi)眾多超算中心和高校的計(jì)算集群組成的國(guó)家級(jí)大型高性能計(jì)算環(huán)境,采用中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心自主研發(fā)的網(wǎng)格環(huán)境中間件SCE[1]聚合了大量的通用計(jì)算資源,為全國(guó)眾多高校和研究機(jī)構(gòu)的用戶提供了優(yōu)質(zhì)的計(jì)算服務(wù)。作為開放式服務(wù)環(huán)境,用戶服務(wù)是在環(huán)境運(yùn)維過程中的一項(xiàng)重要任務(wù)。實(shí)現(xiàn)用戶行為分析有助于發(fā)現(xiàn)用戶行為習(xí)慣,從而為針對(duì)性用戶服務(wù)提供數(shù)據(jù)支持,同時(shí)也能實(shí)現(xiàn)異常用戶行為的判別,因此可以對(duì)運(yùn)維工作起到重要的支撐作用。

        以點(diǎn)擊預(yù)測(cè)、用戶推薦為代表的用戶行為分析問題自從計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展起來后就一直處于計(jì)算機(jī)領(lǐng)域研究的熱點(diǎn)。國(guó)家高性能計(jì)算環(huán)境中包含大量的真實(shí)用戶操作記錄,具有寶貴的實(shí)際分析價(jià)值,如何從大量的用戶中發(fā)掘有意義的信息對(duì)于維護(hù)環(huán)境的穩(wěn)定以及減少維護(hù)人員的工作是非常重要的。比如當(dāng)客戶端存在一個(gè)未正確實(shí)現(xiàn)的通信流程時(shí),一個(gè)用戶由于忘記關(guān)閉腳本可能造成嘗試連接的命令大量重復(fù)出現(xiàn),最終導(dǎo)致運(yùn)維人員花費(fèi)很長(zhǎng)時(shí)間進(jìn)行問題排查。如果此時(shí)能夠?yàn)橛脩舻恼2僮鹘⒁惶啄P?,那么?dāng)用戶出現(xiàn)異常操作時(shí)就能很快對(duì)該異常行為進(jìn)行診斷,使得維護(hù)人員快速地排查異常并進(jìn)行相關(guān)異常處理操作,從而為國(guó)家高性能計(jì)算環(huán)境保持穩(wěn)定運(yùn)行提供保障。因此用戶行為分析模型對(duì)于指導(dǎo)實(shí)際異常檢測(cè)工作具有重要意義。

        由于用戶行為分析問題具有較高的實(shí)用價(jià)值,人們對(duì)該問題的興趣也日益濃厚,因此近年來研究人員提出了多種研究模型?;跈C(jī)器學(xué)習(xí)的用戶行為分析的研究目標(biāo)是創(chuàng)建一個(gè)適當(dāng)?shù)哪P皖A(yù)測(cè)用戶下一步的行為。通過對(duì)環(huán)境中的用戶操作記錄進(jìn)行觀察,發(fā)現(xiàn)用戶有不同的操作習(xí)慣,比如不同用戶的每個(gè)會(huì)話操作的長(zhǎng)度可能是不同的。因此,模型需要具有一定的通用性,即該模型能夠同時(shí)適用于長(zhǎng)會(huì)話和短會(huì)話,甚至能夠處理長(zhǎng)會(huì)話和短會(huì)話交替的會(huì)話組合。上述需求對(duì)模型的穩(wěn)定性和可擴(kuò)展性帶來了很大的挑戰(zhàn)。此外,在模型的建立過程中還應(yīng)考慮用戶在兩個(gè)連續(xù)操作之間所消耗的時(shí)間,因?yàn)橛脩粼趦蓚€(gè)操作之間的時(shí)間間隔對(duì)于用戶下一次操作的決策具有一定的影響。因此,如何將時(shí)間信息添加到模型中,從而進(jìn)一步優(yōu)化模型來提高預(yù)測(cè)精度也是構(gòu)建該模型的重點(diǎn)研究?jī)?nèi)容。

        為了解決上述問題,本文提出了一種新的圖神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)疊加的方法(graph and recurrent neural network,GR-NN)。圖神經(jīng)網(wǎng)絡(luò)層用來學(xué)習(xí)一個(gè)操作與它周圍所有其他操作之間的關(guān)系,并為每一種操作類型生成一個(gè)潛向量,從而學(xué)習(xí)到用戶的局部偏好。然后,循環(huán)神經(jīng)網(wǎng)絡(luò)用來學(xué)習(xí)操作序列之間隱藏的信息。圖1 顯示了該方法的總體工作流程。下面根據(jù)圖中所示,簡(jiǎn)要地描述該模型的工作流程。首先,根據(jù)用戶操作順序構(gòu)造一個(gè)圖的數(shù)據(jù)結(jié)構(gòu)。然后,利用圖神經(jīng)網(wǎng)絡(luò)對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理,得到所有操作類別的潛向量。之后將這些操作類別按照輸入的操作順序重新排列并利用循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)排列后的潛向量進(jìn)行學(xué)習(xí),得到用戶的全局操作偏好。最后,將循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出向量傳遞給Softmax 層,得到用戶下一步每種操作類型出現(xiàn)的概率。在實(shí)踐中,使用環(huán)境中真實(shí)的用戶行為操作數(shù)據(jù)集進(jìn)行了大量實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明了該方法的有效性。

        Fig.1 GNN and RNN superimposed workflow圖1 GNN 和RNN 疊加模型的工作流程

        綜上所述,本文的研究?jī)?nèi)容主要有以下三個(gè)貢獻(xiàn)點(diǎn):

        (1)將用戶會(huì)話數(shù)據(jù)轉(zhuǎn)換為圖結(jié)構(gòu),并根據(jù)需要加入時(shí)間信息。

        (2)圖神經(jīng)網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)疊加的建模技術(shù)使得模型獲得兩者的優(yōu)點(diǎn),提高了預(yù)測(cè)精度。

        (3)該方法已在CNGrid 的實(shí)際數(shù)據(jù)中進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明該方法具有較高的實(shí)用價(jià)值。

        1 相關(guān)研究

        本章簡(jiǎn)單介紹一下用戶行為分析在傳統(tǒng)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)以及圖神經(jīng)網(wǎng)絡(luò)中的相關(guān)研究。

        1.1 傳統(tǒng)機(jī)器學(xué)習(xí)相關(guān)的用戶行為分析研究

        矩陣因子分解是用戶行為分析的一般方法[2-4],其基本目標(biāo)是將用戶與項(xiàng)目評(píng)價(jià)的矩陣分解為兩個(gè)低秩矩陣,每個(gè)低秩矩陣表示用戶或項(xiàng)目的潛在因素。它不太適合基于會(huì)話的推薦,因?yàn)橛脩羝庙?xiàng)僅由一些相關(guān)的點(diǎn)擊事件來提供。Sarwar 等[5]根據(jù)在會(huì)話中同時(shí)出現(xiàn)的項(xiàng)目來計(jì)算項(xiàng)目的相似性,然后以此為基礎(chǔ)推斷用戶的下一個(gè)行為。Linden 等[6]提出了項(xiàng)目到項(xiàng)目的協(xié)同濾波推薦方法。以上這些方法簡(jiǎn)單有效,并得到了廣泛的應(yīng)用,但它們僅根據(jù)最后一次點(diǎn)擊生成預(yù)測(cè),實(shí)際上忽略了用戶歷史的點(diǎn)擊信息,因此有提升的空間。隨后基于馬爾可夫鏈的序列預(yù)測(cè)方法應(yīng)運(yùn)而生,Shani等[7]提出了馬爾可夫決策過程(Markov decision processes,MDP),對(duì)基于會(huì)話的推薦系統(tǒng)提出推薦項(xiàng)目,最簡(jiǎn)單的MDP 可以歸結(jié)為一階馬爾可夫鏈,其下一個(gè)推薦可以通過項(xiàng)目之間的轉(zhuǎn)移概率簡(jiǎn)單地計(jì)算出來。Rendle 等[8]為每?jī)纱蜗噜忺c(diǎn)擊之間的順序行為建模,并為每個(gè)序列提供更準(zhǔn)確的預(yù)測(cè)。然而,基于馬爾可夫鏈模型的主要不足在于它們獨(dú)立地組合了過去的組件,這種獨(dú)立性假設(shè)過于強(qiáng)烈,限制了預(yù)測(cè)精度。

        1.2 深度學(xué)習(xí)相關(guān)的用戶行為分析研究

        深度學(xué)習(xí)技術(shù)在最近幾年來廣泛用于各個(gè)領(lǐng)域,并且取得了非常有前景的效果[9-12]。受到自然語言領(lǐng)域最新進(jìn)展[13]的啟發(fā),一些專家開始將這個(gè)領(lǐng)域的知識(shí)運(yùn)用到用戶行為推薦的問題上來。Hidasi等[14]使用帶有門控遞歸單元的深度遞歸神經(jīng)網(wǎng)絡(luò)對(duì)會(huì)話數(shù)據(jù)建模,該模型直接從給定會(huì)話中的前一次單擊中學(xué)習(xí)會(huì)話表示,并為下一步操作提供預(yù)測(cè)。這是首次嘗試將循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)應(yīng)用于用戶行為推薦的問題上來,由于RNN 強(qiáng)大的序列建模能力,其模型可以在預(yù)測(cè)下一步行動(dòng)時(shí)考慮用戶的歷史行為。Tan 等[15]使用適當(dāng)?shù)臄?shù)據(jù)增強(qiáng)技術(shù)以及將用戶行為時(shí)間變化的技術(shù)加入到RNN網(wǎng)絡(luò)中,從而提高了遞歸模型的性能。Tuan 等[16]將會(huì)話點(diǎn)擊與內(nèi)容特性(如項(xiàng)目描述和項(xiàng)目類別)結(jié)合起來,使用三維卷積神經(jīng)網(wǎng)絡(luò)生成用戶行為推薦的操作。Li 等[17]設(shè)計(jì)了一個(gè)名叫NARM(neural attentive recommendation machine)的方法,該方法通過一個(gè)全局以及一個(gè)局部RNN 推薦器來同時(shí)捕獲用戶的順序行為和主要目的。與之類似,Liu 等[18]同樣也設(shè)計(jì)了STAMP(short term attention/memory priority)方法來利用簡(jiǎn)單的MLP 網(wǎng)絡(luò)和一個(gè)注意力機(jī)制的網(wǎng)絡(luò),捕捉用戶的普遍興趣和當(dāng)前興趣,以此來提高模型的預(yù)測(cè)準(zhǔn)確度。雖然上述方法取得了令人滿意的效果,具有很好的應(yīng)用價(jià)值,但是RNN 模型通常適合處理用戶會(huì)話的長(zhǎng)度比較長(zhǎng)的情況,同時(shí)這些方法容易忽略遠(yuǎn)距離用戶行為操作之間的復(fù)雜轉(zhuǎn)換。

        1.3 圖卷積神經(jīng)網(wǎng)絡(luò)相關(guān)的用戶行為分析研究

        “圖網(wǎng)絡(luò)”是指在圖上構(gòu)建神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行分析的方法,該類方法已經(jīng)被廣泛開發(fā)和探索了十多年[19-22],但近年來發(fā)展更為迅速。最近,圖神經(jīng)網(wǎng)絡(luò)作為一種強(qiáng)大的表示學(xué)習(xí)方法開始應(yīng)用于諸如腳本時(shí)間預(yù)測(cè)[23]、姿態(tài)識(shí)別[24]、圖像分類等領(lǐng)域[25]。當(dāng)輸入的數(shù)據(jù)結(jié)構(gòu)是圖的時(shí)候,卷積神經(jīng)網(wǎng)絡(luò)可以捕獲數(shù)據(jù)圖節(jié)點(diǎn)周圍的潛在關(guān)系。Shuman 等[26]詳細(xì)介紹了如何將代數(shù)和頻譜圖理論概念與計(jì)算諧波分析相結(jié)合來處理圖上的卷積操作。在此基礎(chǔ)上,第一代圖卷積神經(jīng)網(wǎng)絡(luò)[27]根據(jù)卷積在圖網(wǎng)絡(luò)結(jié)構(gòu)上的特點(diǎn)簡(jiǎn)單地將頻域上的卷積核參數(shù)設(shè)置為節(jié)點(diǎn)數(shù)目來進(jìn)行學(xué)習(xí),之后Defferrard 等[28]優(yōu)化了頻域上卷積核參數(shù)的設(shè)置,并且利用切比雪夫多項(xiàng)式擬合卷積核的方法降低了圖卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算復(fù)雜度。Li等[22]將門控單元引入到圖卷積神經(jīng)網(wǎng)絡(luò)中,在此基礎(chǔ)上Wu 等[29]將此方法應(yīng)用到用戶行為分析中,取得了良好的效果。然而,基于圖卷積的方法雖然具有強(qiáng)大的邏輯推理能力,但是該網(wǎng)絡(luò)在消息傳遞時(shí)根據(jù)其相鄰的局部節(jié)點(diǎn)進(jìn)行迭代操作,因此其僅適用于長(zhǎng)度比較短的用戶會(huì)話序列。本課題實(shí)際需要根據(jù)單個(gè)用戶分別建模,由于每個(gè)用戶的操作特點(diǎn)不同,因此需要處理的用戶操作會(huì)話長(zhǎng)度可能會(huì)出現(xiàn)大小不一的情況,這樣就對(duì)模型處理不同輸入數(shù)據(jù)的能力提出了挑戰(zhàn)。

        2 GR-NN 用戶行為分析方法

        本章首先介紹背景和需要解決的問題,然后具體描述本文方法的各個(gè)步驟。

        2.1 背景與問題描述

        國(guó)家高性能計(jì)算環(huán)境作為運(yùn)行國(guó)內(nèi)眾多超算中心和高校的計(jì)算集群組成的國(guó)家級(jí)大型高性能計(jì)算環(huán)境,每天都會(huì)收到大量用戶獲取相關(guān)計(jì)算資源的請(qǐng)求,然而由于每個(gè)用戶的操作習(xí)慣各不相同,不同用戶對(duì)于平臺(tái)操作的熟練程度也都有區(qū)別,因此可能會(huì)在進(jìn)行請(qǐng)求操作的過程中出現(xiàn)一些異常的操作情況。而這些異常操作隱藏在大量的正常操作之中,如何從中找到這些異常是一項(xiàng)需要解決的實(shí)際問題。顯然,使用傳統(tǒng)的人工方法手動(dòng)檢測(cè)每個(gè)用戶的操作是一項(xiàng)不可能完成的任務(wù),因此就需要一個(gè)自動(dòng)化的用戶行為異常檢測(cè)系統(tǒng)。該系統(tǒng)能夠自動(dòng)搜集到每個(gè)用戶的操作信息,并對(duì)每個(gè)用戶的操作習(xí)慣進(jìn)行建模,之后當(dāng)用戶進(jìn)行相關(guān)操作時(shí)能夠?qū)ζ溥M(jìn)行檢測(cè),通過該自動(dòng)化檢測(cè)系統(tǒng)可以過濾掉大量的正常操作數(shù)據(jù),將過濾后的數(shù)據(jù)發(fā)送給管理員進(jìn)一步分析就能夠顯著地減少管理員的工作。整個(gè)用戶行為異常檢測(cè)系統(tǒng)的流程圖如圖2 所示。

        從圖2 中可以看出,該系統(tǒng)的核心是構(gòu)建一個(gè)預(yù)測(cè)模型,該模型能夠準(zhǔn)確地通過用戶的歷史操作序列預(yù)測(cè)用戶的下一個(gè)操作類型。顯然,模型預(yù)測(cè)的準(zhǔn)確度越高,那么當(dāng)用戶的操作與預(yù)測(cè)操作不符并使得系統(tǒng)發(fā)出警告時(shí),更有可能說明該用戶出現(xiàn)了操作不規(guī)范或者用戶賬號(hào)被盜等異常情況。這時(shí)候通過人工判別實(shí)際操作數(shù)據(jù),如果真的發(fā)生了這些情況,就給相關(guān)用戶發(fā)送異常情況的提醒郵件,從而帶來更好的用戶體驗(yàn)。

        面對(duì)這樣一個(gè)用戶行為建模以及盡量提高模型準(zhǔn)確度的問題,需要使用先進(jìn)的技術(shù)構(gòu)造一個(gè)恰當(dāng)?shù)挠脩粜袨椴僮黝A(yù)測(cè)模型,下面分步驟說明構(gòu)建該預(yù)測(cè)模型的具體過程。

        2.2 符號(hào)定義

        通過上一節(jié)的介紹可以看出,用戶行為分析的目標(biāo)是根據(jù)用戶一次會(huì)話中已知的歷史操作類型序列來預(yù)測(cè)用戶下一個(gè)操作類型,因此這里首先需要定義基本的用戶操作類型。設(shè)用戶操作類型的集合為V={v1,v2,…,vm},即用戶的每次操作只能是集合V中的唯一元素。在實(shí)際整理用戶會(huì)話數(shù)據(jù)時(shí),可以根據(jù)數(shù)據(jù)的會(huì)話ID 段位得到一次會(huì)話的所有操作,然后將一次會(huì)話的所有操作數(shù)據(jù)通過數(shù)據(jù)的時(shí)間戳段位進(jìn)行排序。這里將排好序的一次會(huì)話中的數(shù)據(jù)列表設(shè)為s=[vs,1,vs,2,…,vs,n],其中vs,i代表用戶在會(huì)話操作列表S中第i次的操作類型。用戶行為異常檢測(cè)模型的目標(biāo)就是預(yù)測(cè)用戶下一個(gè)操作的類型,比如根據(jù)操作列表[vs,1,vs,2,…,vs,n-1]推出下一個(gè)操作類型vs,n,然后使用該預(yù)測(cè)結(jié)果和用戶實(shí)際操作進(jìn)行對(duì)比,如果不同則說明該用戶可能進(jìn)行了一次異常操作。

        Fig.2 User behavior anomaly detection flow chart圖2 用戶行為異常檢測(cè)系統(tǒng)的流程圖

        為了使得用戶序列數(shù)據(jù)適用于圖卷積神經(jīng)網(wǎng)絡(luò)模型,用戶會(huì)話數(shù)據(jù)在輸入模型進(jìn)行訓(xùn)練之前首先需要轉(zhuǎn)換成圖數(shù)據(jù)結(jié)構(gòu)。實(shí)際上每一個(gè)會(huì)話都可以當(dāng)作一個(gè)有向圖Gs(Vs,εs),在這個(gè)會(huì)話組成的圖中,每一個(gè)節(jié)點(diǎn)代表一個(gè)操作類型vs,i∈V,每一條邊(vs,i-1,vs,i)∈εs代表該次會(huì)話中用戶在進(jìn)行vs,i-1操作后,下一次進(jìn)行了vs,i操作。由于每個(gè)操作之間都有時(shí)間間隔,因此每一條邊都可以增加一個(gè)基于時(shí)間間隔的權(quán)重,之后可以將每一個(gè)會(huì)話圖的每一個(gè)條目v∈V通過嵌入層嵌入到一個(gè)統(tǒng)一維度的歐式空間,然后經(jīng)過圖卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練得到的節(jié)點(diǎn)向量v′∈Rd表示學(xué)習(xí)到的潛向量,其中d表示該潛向量的維度。

        2.3 圖卷積網(wǎng)絡(luò)與循環(huán)網(wǎng)絡(luò)的疊加模型

        本節(jié)首先詳細(xì)介紹如何將一個(gè)用戶會(huì)話數(shù)據(jù)轉(zhuǎn)換成適合圖神經(jīng)網(wǎng)絡(luò)的輸入,然后講解如何根據(jù)圖卷積神經(jīng)網(wǎng)絡(luò)獲得用戶行為操作的潛向量。

        假設(shè)有用戶操作序列是[v1,v3,v5,v3,v4],其中{v1:登錄,v2:運(yùn)行命令,v3:提交命令,v4:運(yùn)行作業(yè),v5:查看資源}代表國(guó)家高性能計(jì)算環(huán)境中用戶操作類型的編碼,則該序列就代表用戶進(jìn)行一次簡(jiǎn)單的操作流程。由于圖數(shù)據(jù)結(jié)構(gòu)中每種操作類型僅能出現(xiàn)一次,因此該會(huì)話轉(zhuǎn)換成圖數(shù)據(jù)結(jié)構(gòu)時(shí)僅有{v1,v3,v4,v5}這四種節(jié)點(diǎn)。為了使得每個(gè)節(jié)點(diǎn)可以數(shù)值化表示,需要將每種節(jié)點(diǎn)編碼為唯一的自然數(shù)。例如{v1→0,v3→1,v4→3,v5→2}為本例中的編碼。按此規(guī)則將本例中的用戶操作序列轉(zhuǎn)換成會(huì)話的圖結(jié)構(gòu),如圖3 最左邊的結(jié)構(gòu)所示。隨后,該會(huì)話圖可以轉(zhuǎn)換成一個(gè)矩陣表示,但是通常圖節(jié)點(diǎn)之間的聯(lián)系并不密集,屬于稀疏圖,因此使用COO(coordinate format)進(jìn)行存儲(chǔ)。圖3 中間的矩陣代表該會(huì)話圖轉(zhuǎn)換成矩陣的形式,而圖3 右邊的數(shù)據(jù)展示了該用戶會(huì)話的圖矩陣轉(zhuǎn)換成對(duì)應(yīng)的COO表示。具體來說,其中的edge_index變量使用一個(gè)二維張量存儲(chǔ)有線節(jié)點(diǎn)之間按順序出現(xiàn)的節(jié)點(diǎn)編號(hào),例如第一列[0,1](圖中紅色強(qiáng)調(diào)的數(shù)值)代表圖中0 號(hào)節(jié)點(diǎn)到1 號(hào)節(jié)點(diǎn)之間有一條連線。edge_attr 的維度與edge_index 的列數(shù)相同,存儲(chǔ)了對(duì)應(yīng)連線上的權(quán)重。node_value 的維度與節(jié)點(diǎn)的個(gè)數(shù)相同,按照順序存儲(chǔ)了每個(gè)節(jié)點(diǎn)編號(hào)對(duì)應(yīng)的操作類型。

        Fig.3 User behavior data conversion圖3 用戶行為操作序列數(shù)據(jù)轉(zhuǎn)換

        由于用戶在進(jìn)行兩個(gè)操作之間的時(shí)間間隔在數(shù)據(jù)預(yù)測(cè)中起著非常重要的作用,因此處理時(shí)把這些數(shù)據(jù)轉(zhuǎn)換成圖結(jié)構(gòu)上邊的權(quán)值。在實(shí)踐中,每一個(gè)時(shí)間數(shù)據(jù)都是一個(gè)連續(xù)的非負(fù)實(shí)數(shù),需要標(biāo)準(zhǔn)化時(shí)間數(shù)據(jù)。由于時(shí)間數(shù)據(jù)的范圍比較大,因此這里使用Softmax 函數(shù)對(duì)時(shí)間數(shù)據(jù)進(jìn)行歸一化處理。這樣在每一條邊上設(shè)置的權(quán)重計(jì)算公式如下:

        其中,tj代表第j條連接兩個(gè)操作節(jié)點(diǎn)之間的間隔時(shí)間。根據(jù)上述規(guī)則將輸入的會(huì)話數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的圖結(jié)構(gòu)后,為了提高模型的準(zhǔn)確度,首先使用表示學(xué)習(xí)中的分布式表示法來構(gòu)造一個(gè)嵌入層,即將每個(gè)類別向量通過嵌入層轉(zhuǎn)換成一個(gè)低維稠密向量。然后即可通過圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。圖卷積操作的關(guān)鍵是將卷積運(yùn)算符推廣到不規(guī)則域的方法,該方法通常表示為鄰域聚合或消息傳遞模式[30],其中傳遞模式可以使用如下的公式進(jìn)行計(jì)算[31]:

        其中,□代表一個(gè)可微的排列不變函數(shù)(differentiable,permutation invariant function)。例如:求和、求平均、取最大。γ和φ代表可微函數(shù),比如在神經(jīng)網(wǎng)絡(luò)中常用的多層感知機(jī)。這里設(shè)經(jīng)過嵌入層后得到的數(shù)據(jù)為X,則可以使用文獻(xiàn)[32]中提出的圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行卷積,其正向的消息傳遞函數(shù)如下:

        到目前為止,所構(gòu)建模型的圖卷積神經(jīng)網(wǎng)絡(luò)模塊通過消息傳遞機(jī)制已經(jīng)使得潛向量學(xué)習(xí)到了每個(gè)操作之間的局部轉(zhuǎn)換以及操作之間的時(shí)間間隔信息。然而圖數(shù)據(jù)結(jié)構(gòu)忽略了用戶操作的順序信息,因此為了更好地對(duì)用戶的全局信息進(jìn)行學(xué)習(xí),后續(xù)還要使循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步學(xué)習(xí)。實(shí)際上,選擇圖卷積網(wǎng)絡(luò)后進(jìn)行循環(huán)神經(jīng)網(wǎng)絡(luò)的疊加方式的原因是圖卷積層可以看作數(shù)據(jù)的預(yù)處理部分,相較于普通的卷積神經(jīng)網(wǎng)絡(luò),圖卷積神經(jīng)網(wǎng)絡(luò)可以滿足會(huì)話圖結(jié)構(gòu)這種相鄰節(jié)點(diǎn)數(shù)量是變化的情況,同時(shí)能夠?qū)W習(xí)到節(jié)點(diǎn)前后操作的邏輯關(guān)系。然而在進(jìn)行循環(huán)神經(jīng)網(wǎng)絡(luò)模塊之前,潛向量首先要根據(jù)輸入時(shí)用戶的操作順序從新排列。這里為了簡(jiǎn)化,使用符號(hào)X代表排列好的潛向量,則使用的正向傳播循環(huán)神經(jīng)網(wǎng)絡(luò)公式如下:

        其中,ht代表第t個(gè)時(shí)間步時(shí)的隱狀態(tài),h(t-1)代表該層在t-1 時(shí)間步時(shí)的隱狀態(tài)或者是初始狀態(tài),rt、zt、nt分別為重置門、更新門和新門。σ是sigmoid函數(shù),計(jì)算符號(hào)*代表矩陣之間的哈達(dá)瑪積。因?yàn)楦麻T用于控制前一時(shí)刻的狀態(tài)信息被帶入到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時(shí)刻的狀態(tài)信息帶入越多,重置門控制前一狀態(tài)有多少信息被寫入到當(dāng)前的新門nt,因此數(shù)據(jù)流通過更新門的式(4)和重置門的式(5)分別決定保存和丟棄哪些信息并根據(jù)式(6)得出新門。

        2.4 預(yù)測(cè)和模型訓(xùn)練

        得到循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出后,通過一個(gè)全連接網(wǎng)絡(luò)將向量的維度線性變換為操作類別的維度,變換后得到的向量為,并用多分類問題的softmax 函數(shù)進(jìn)行計(jì)算從而得到輸出向量:

        其中,y表示真實(shí)值的一個(gè)獨(dú)熱編碼向量。最后使用反向傳播算法來訓(xùn)練。

        2.5 實(shí)現(xiàn)和部署

        使用Python 實(shí)現(xiàn)了本文方法。在模型搭建的過程中,使用Pytorch[33]庫進(jìn)行深度學(xué)習(xí)算法的實(shí)現(xiàn),使用PyG[31]進(jìn)行圖卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)。在實(shí)際部署的時(shí)候,可以分為線上和線下部分。線下部分的作用是根據(jù)歷史數(shù)據(jù)訓(xùn)練并構(gòu)建模型,得到模型后,線上進(jìn)行檢測(cè)時(shí)就不再更新模型參數(shù),直接進(jìn)行預(yù)測(cè)。經(jīng)過一段時(shí)間后,根據(jù)新搜集的數(shù)據(jù)繼續(xù)線下更新迭代模型參數(shù)。該模型在線上預(yù)測(cè)時(shí),可以根據(jù)不同的用戶調(diào)用不同的參數(shù)模型,然后預(yù)測(cè)該用戶的操作并與該用戶的實(shí)際操作進(jìn)行對(duì)比,如果不同則認(rèn)為該用戶的此次操作是一次異常行為。整體的異常診斷流程如圖4 所示,當(dāng)輸入動(dòng)作v1時(shí),可以通過該模型預(yù)測(cè)出用戶行為,當(dāng)實(shí)際用戶動(dòng)作v2出現(xiàn)時(shí)與之進(jìn)行對(duì)比,如果不同則進(jìn)行異常標(biāo)記,然后通過動(dòng)作[v1,v2]輸入模型預(yù)測(cè)下一個(gè)動(dòng)作,并當(dāng)用戶實(shí)際動(dòng)作v3出現(xiàn)時(shí)與之進(jìn)行比較,以此類推并設(shè)定警戒閾值,比如設(shè)定閾值為3 次錯(cuò)誤進(jìn)行報(bào)警,則當(dāng)同時(shí)出現(xiàn)時(shí)進(jìn)行報(bào)警。

        Fig.4 Abnormal diagnosis flow chart圖4 異常診斷流程圖

        3 實(shí)驗(yàn)結(jié)果與分析評(píng)價(jià)

        本章首先演示如何使用本文方法來分析CNGrid中的實(shí)際的用戶行為數(shù)據(jù)。然后,將所提出的方法與其他方法進(jìn)行比較。最后,通過不同的實(shí)驗(yàn)設(shè)置對(duì)本文方法進(jìn)行了詳細(xì)的分析。

        3.1 數(shù)據(jù)集

        本文搜集CNGrid 用戶的實(shí)際操作內(nèi)容作為數(shù)據(jù)集,并以該數(shù)據(jù)集來實(shí)驗(yàn)并評(píng)估本文方法。數(shù)據(jù)集的時(shí)間段為2019 年1 月至4 月,在預(yù)處理階段,所有操作都已經(jīng)被整理并編碼成唯一整數(shù)。然后挑選單個(gè)用戶作為主要實(shí)驗(yàn)對(duì)象。所有其他用戶的數(shù)據(jù)作為對(duì)比實(shí)驗(yàn)對(duì)象。

        首先過濾掉長(zhǎng)度為1 和長(zhǎng)度大于50 的所有會(huì)話,剩下464 條單用戶會(huì)話,910 條其余用戶會(huì)話。此外,與文獻(xiàn)[29]類似,通過分割會(huì)話數(shù)據(jù)來生成輸入序列和相應(yīng)的預(yù)測(cè)標(biāo)簽。例如,設(shè)輸入會(huì)話S=[is,1,is,2,…,is,n],則該條會(huì)話可以生成一系列輸入序列和標(biāo)簽組成的元組,即([is,1],is,2),([is,1,is,2],is,3),…,([is,1,is,2,…,is,n-1],is,n),其中最后一個(gè)元組的[is,1,is,2,…,is,n-1]代表輸入的動(dòng)作序列,is,n代表該動(dòng)作序列出現(xiàn)時(shí)下一個(gè)預(yù)測(cè)的動(dòng)作類型。最終,整理后得到的數(shù)據(jù)集數(shù)如表1 所示。

        Table 1 Number of dataset表1 數(shù)據(jù)集數(shù)量

        3.2 基線算法

        為了評(píng)價(jià)該方法的性能,將該方法與以下具有代表性的基線方法進(jìn)行了比較:

        (1)POP(popularity predictor)和S-POP(session popularity predictor)算法:分別選取訓(xùn)練集和當(dāng)前會(huì)話中最常出現(xiàn)的前n個(gè)操作作為預(yù)測(cè)結(jié)果的算法。

        (2)Item-KNN 算法[5]:預(yù)測(cè)的操作類基于之前會(huì)話中用戶操作與之最相似的會(huì)話類型,其中兩個(gè)會(huì)話之間的相似度使用會(huì)話向量之間的余弦相似度來計(jì)算。

        (3)BPR-MF(Bayesian personalized ranking-matrix factorization)算法[34]:通過隨機(jī)梯度下降優(yōu)化兩個(gè)會(huì)話排序的目標(biāo)函數(shù)。

        (4)FPMC(factorizing personalized Markov chains)算法[8]:使用馬爾可夫鏈捕獲用戶的行為并預(yù)測(cè)。

        (5)RNN 算法[14]:直接使用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)。

        (6)RNN+注意力機(jī)制算法:使用循環(huán)神經(jīng)網(wǎng)絡(luò)以及注意力機(jī)制對(duì)用戶行為進(jìn)行預(yù)測(cè)。

        (7)SR-GNN(session-based recommendation with graph neural networks)算法[29]:使用圖神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制對(duì)用戶行為進(jìn)行預(yù)測(cè)。

        3.3 評(píng)價(jià)指標(biāo)與參數(shù)設(shè)置

        為了比較上述方法的性能,選擇兩個(gè)評(píng)價(jià)指標(biāo)進(jìn)行對(duì)比分析。本文選擇的指標(biāo)廣泛用于基于會(huì)話的數(shù)據(jù)集[18]。其具體描述如下:

        P@3(Precision)代表模型預(yù)測(cè)結(jié)果的概率分布列表中概率值最大的前三位預(yù)測(cè)結(jié)果中的其中一個(gè)和實(shí)際結(jié)果相同,這樣的數(shù)據(jù)在所有測(cè)試數(shù)據(jù)中所占的比例。

        其中,N代表測(cè)試集中所有數(shù)據(jù)的個(gè)數(shù),nhit代表命中的數(shù)據(jù)個(gè)數(shù)。公式中一次命中是指:預(yù)測(cè)操作類型的概率分布列表中概率值最大的前K個(gè)預(yù)測(cè)結(jié)果中包含了實(shí)際的預(yù)測(cè)結(jié)果。

        MRR@3(mean reciprocal rank)代表一定范圍內(nèi)條目t的倒數(shù)秩的平均值。此處設(shè)置為如果倒數(shù)秩大于3,則倒數(shù)秩為0。

        MRR是在范圍[0,1]之間的歸一化得分,該分值的增加反映了大部分“命中”的預(yù)測(cè)結(jié)果,其排名在概率分布列表中靠前的位置,這說明相應(yīng)預(yù)測(cè)模型表現(xiàn)的效果好。

        為了使得實(shí)驗(yàn)結(jié)果公正,所有深度學(xué)習(xí)方式參數(shù)設(shè)置均一致。其中潛向量的維度都為d=100,數(shù)據(jù)訓(xùn)練時(shí)使用小批Adam 優(yōu)化器對(duì)這些參數(shù)進(jìn)行優(yōu)化,其中初始學(xué)習(xí)率設(shè)置為0.000 1,每3 次迭代后衰減0.1。訓(xùn)練每一批次數(shù)據(jù)輸入的大小和L2 值分別設(shè)置為30 和0.000 01。

        3.4 和不同的基線算法進(jìn)行比較

        為了演示所提出模型的整體性能,將本文方法進(jìn)行測(cè)試并計(jì)算出結(jié)果,然后將其與最先進(jìn)的項(xiàng)目推薦方法進(jìn)行比較,所有方法評(píng)價(jià)結(jié)果的數(shù)值如表2所示,其中每一列的最佳結(jié)果以加粗字體突出顯示。從表2 可以看出,在CNGrid 數(shù)據(jù)集上,GR-NN 在P@3 和MRR@3 方面的性能處于最優(yōu)水平,驗(yàn)證了所提出模型的有效性。

        Table 2 Experimental result of OneUser dataset表2 OneUser數(shù)據(jù)集實(shí)驗(yàn)結(jié)果%

        從表2 還可以得出以下結(jié)論:所有神經(jīng)網(wǎng)絡(luò)基線方法的結(jié)果都明顯優(yōu)于傳統(tǒng)模型,從而證明了深度學(xué)習(xí)技術(shù)在該領(lǐng)域的有效性。SR-GNN 結(jié)果略低于RNN 方法的結(jié)果數(shù)值,說明該用戶的操作序列通常較長(zhǎng),而RNN 網(wǎng)絡(luò)適合預(yù)測(cè)較長(zhǎng)的用戶操作序列數(shù)據(jù)集。以上深度學(xué)習(xí)方法明確地對(duì)用戶的整體行為偏好進(jìn)行建模,并考慮用戶先前操作和下一次單擊之間的轉(zhuǎn)換,從而獲得優(yōu)于這些傳統(tǒng)方法的性能。然而,它們的性能仍然低于本文方法。本文算法不僅通過圖卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到不同操作類型之間的用戶偏好,忽略了當(dāng)前會(huì)話中用戶動(dòng)作的干擾,還能夠通過循環(huán)神經(jīng)網(wǎng)絡(luò)自動(dòng)選擇最重要的項(xiàng)之間的轉(zhuǎn)換規(guī)則。本文方法可以通過GNN(graph neural network)捕獲短會(huì)話的內(nèi)部邏輯,通過RNN 捕獲長(zhǎng)會(huì)話的長(zhǎng)期依賴關(guān)系,實(shí)驗(yàn)結(jié)果也證明了該方法的有效性。

        3.5 和不同的圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行比較

        為了驗(yàn)證本文方法的正確性,本輪實(shí)驗(yàn)選擇了不同的GNN 和RNN 疊加進(jìn)行建模。實(shí)驗(yàn)結(jié)果如表3所示。括號(hào)中的GNN 方法是指構(gòu)造疊加模型時(shí)所選擇的不同的GNN 方案的名稱。從以上結(jié)果可以看出,不同的GNN 網(wǎng)絡(luò)對(duì)預(yù)測(cè)結(jié)果的影響很小,這意味著所有的GNN 網(wǎng)絡(luò)都具有較強(qiáng)的學(xué)習(xí)用戶行為邏輯的能力。而且表3 中所有結(jié)果都優(yōu)于表2 中其他方法的結(jié)果,這說明對(duì)于用戶操作這種數(shù)據(jù)來說,可能出現(xiàn)一些操作行之間沒有明確目的,或者在當(dāng)前會(huì)話中用戶操作的興趣在不同操作之間快速漂移時(shí),圖卷積神經(jīng)網(wǎng)絡(luò)可以在處理時(shí)有效地過濾這種有噪音的會(huì)話。以上討論驗(yàn)證了本文方法思路的有效性。

        Table 3 Result of other GNN and RNN methods表3 其他GNN 和RNN 方法結(jié)合的實(shí)驗(yàn)結(jié)果 %

        3.6 和其他所有用戶的數(shù)據(jù)集進(jìn)行比較

        為了驗(yàn)證本文方法在不同情況下的有效性和優(yōu)勢(shì),將本文方法應(yīng)用于所有其他用戶的數(shù)據(jù)集上。所有其他用戶的數(shù)據(jù)集中由于包含了各種不同用戶,而不同用戶的行為是復(fù)雜多變的,因此這些數(shù)據(jù)中包含了長(zhǎng)會(huì)話和短會(huì)話,這使得預(yù)測(cè)更加困難。由表4 的結(jié)果可知,在復(fù)雜的數(shù)據(jù)集中,GNN 網(wǎng)絡(luò)優(yōu)于RNN 網(wǎng)絡(luò),這是因?yàn)樵摲椒▽⒚總€(gè)會(huì)話建模為一個(gè)圖,從而考慮了會(huì)話中不同操作之間的轉(zhuǎn)換,所以它可以捕獲用戶單擊之間更復(fù)雜和隱式的連接關(guān)系。

        Table 4 Experimental result of AllOthers dataset表4 AllOthers數(shù)據(jù)集實(shí)驗(yàn)結(jié)果%

        表2 中使用OneUser 用戶數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果表明,RNN 網(wǎng)絡(luò)(RNN &RNN+注意力機(jī)制)的結(jié)果優(yōu)于GNN 網(wǎng)絡(luò)(SR-GNN 法),這與表4 的結(jié)果相反,這是因?yàn)閳D數(shù)據(jù)結(jié)構(gòu)忽略了用戶操作的順序信息,所以僅僅使用圖卷積神經(jīng)網(wǎng)絡(luò)容易忽略遠(yuǎn)距用戶操作之間的復(fù)雜轉(zhuǎn)換,而循環(huán)神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)到這種關(guān)系。以上討論更進(jìn)一步證明了GNN 網(wǎng)絡(luò)和RNN網(wǎng)絡(luò)各有其適應(yīng)的范圍。而本文方法在兩種情況下都得到了最好的結(jié)果,這也驗(yàn)證了本文方法的通用性。

        4 結(jié)束語

        目前GNN 和RNN 對(duì)于用戶行為預(yù)測(cè)這種序列類預(yù)測(cè)問題各有優(yōu)勢(shì)。GNN 的優(yōu)勢(shì)在于可以捕獲數(shù)據(jù)圖節(jié)點(diǎn)之間的潛在邏輯關(guān)系,其消息傳遞時(shí)根據(jù)其相鄰的局部節(jié)點(diǎn)進(jìn)行迭代操作,因此適用于長(zhǎng)度比較短的用戶會(huì)話序列。RNN 的優(yōu)勢(shì)在于其長(zhǎng)期記憶能力,適用于長(zhǎng)度比較長(zhǎng)的用戶會(huì)話序列。本文提出了一種將GNN 和RNN 結(jié)合的方法,用于用戶行為異常檢測(cè)分析。因?yàn)闃?gòu)建的模型結(jié)合了GNN 和RNN,所以吸收了兩者各自的優(yōu)點(diǎn)。在CNGrid 數(shù)據(jù)集中對(duì)用戶的實(shí)際操作進(jìn)行了大量的實(shí)驗(yàn),并證明該方法在不同的評(píng)價(jià)指標(biāo)方面能夠超越當(dāng)前主流的方法。在實(shí)驗(yàn)中還對(duì)不同的GNN 方法和不同的數(shù)據(jù)集進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果也證明了提出模型的合理性和廣泛的適用性。

        猜你喜歡
        用戶方法模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        可能是方法不對(duì)
        3D打印中的模型分割與打包
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        女同久久精品国产99国产精品 | 99久久精品免费观看国产| 国产熟女高潮视频| 亚洲欧洲AV综合色无码| 精品国产av一区二区三四区| 午夜天堂av天堂久久久| 色八区人妻在线视频免费| 久久AV中文综合一区二区| 一本久道在线视频播放| 亚洲中文无码av永久| 亚洲熟女乱色综合亚洲图片| 亚洲综合色区无码专区| 日本小视频一区二区三区| 内射白浆一区二区在线观看| 明星性猛交ⅹxxx乱大交| 精品视频专区| 蜜桃网站入口可看18禁| 亚洲色欲久久久综合网东京热| 一本大道久久香蕉成人网| 久久久久久AV无码成人| 日本刺激视频一区二区| 啦啦啦www在线观看免费视频| 欧美一级三级在线观看| 狼人综合干伊人网在线观看| 色翁荡熄又大又硬又粗又动态图| 最新高清无码专区| 日本精品免费一区二区三区 | 国产一卡2卡3卡四卡国色天香 | 人妻少妇av中文字幕乱码| 色偷偷亚洲第一成人综合网址| 国产一级做a爱免费观看| 国产精品综合色区av| 洲色熟女图激情另类图区 | 乱码一二区在线亚洲| 精品国产一区二区三区毛片| 亚洲中文无码av永久| 亚洲 暴爽 av人人爽日日碰| 99热高清亚洲无码| 亚洲va视频一区二区三区| 女人扒开屁股爽桶30分钟| 人妖另类综合视频网站|