曾 蔚,吳伊萍
(1.泉州師范學(xué)院 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 泉州 362000;2.福建省大數(shù)據(jù)管理新技術(shù)與知識(shí)工程重點(diǎn)實(shí)驗(yàn)室,福建 泉州 362000;3.智能計(jì)算與信息處理福建省高等學(xué)校重點(diǎn)實(shí)驗(yàn)室,福建 泉州 362000)
隨著近年來(lái)大數(shù)據(jù)和云計(jì)算的廣泛應(yīng)用,用戶在互聯(lián)網(wǎng)上的活動(dòng)產(chǎn)生了大量行為數(shù)據(jù),如何充分利用在線系統(tǒng)日志中海量的用戶行為數(shù)據(jù),對(duì)用戶行為數(shù)據(jù)進(jìn)行深度分析及挖掘從而發(fā)現(xiàn)用戶行為數(shù)據(jù)中的內(nèi)在規(guī)律及價(jià)值日趨重要。然而用戶行為往往復(fù)雜且難以預(yù)測(cè),通常在同一系統(tǒng)中活動(dòng)的用戶可以看成是一個(gè)群體,同一群體中的個(gè)體傾向于采取相同或相近的策略,因此群體行為首先具有一致性。其次,群體是由個(gè)體構(gòu)成的,個(gè)體行為同時(shí)又受個(gè)人習(xí)慣或愛好等個(gè)人內(nèi)在因素影響而具有獨(dú)特性。而更復(fù)雜的情況是,如個(gè)人習(xí)慣或愛好等個(gè)人內(nèi)在因素并非一成不變,更有可能的是隨著時(shí)間演變而發(fā)生遷移。此外,個(gè)體行為尤其是網(wǎng)絡(luò)用戶行為還通常會(huì)表現(xiàn)出隨機(jī)性和不可預(yù)測(cè)性,且無(wú)論是群體行為和個(gè)體行為都受短期記憶效應(yīng)影響而呈現(xiàn)長(zhǎng)尾分布的特征。綜合上述所有影響因素,用戶行為復(fù)雜且難以刻畫,至今仍沒(méi)有較為通用的解釋分析模型。卷積神經(jīng)網(wǎng)絡(luò)作為目前廣泛應(yīng)用的深度學(xué)習(xí)模型,具有優(yōu)異的主動(dòng)特征提取性能,在一些模式分類問(wèn)題中,將卷積神經(jīng)網(wǎng)絡(luò)用于特征提取,性能能夠得到顯著的提升[1]。雖然卷積神經(jīng)網(wǎng)絡(luò)在很多實(shí)際應(yīng)用中均取得了突出的效果,但也存在著一定局限性。卷積神經(jīng)網(wǎng)絡(luò)作為一種判別模型,能夠得到準(zhǔn)確度很好的分類結(jié)果,但對(duì)于為何給出這樣的判別結(jié)果卻無(wú)法解釋,這也就是人們所說(shuō)的——黑盒模型。但現(xiàn)實(shí)生活中,人們感興趣的往往是數(shù)據(jù)特征的未知部分,人們希望能夠了解隱含在黑盒模型中的因果關(guān)系,希望能通過(guò)這些因果關(guān)系更清晰地理解問(wèn)題、發(fā)現(xiàn)問(wèn)題,從而最終解決問(wèn)題。以上兩點(diǎn)都是黑盒模型所無(wú)法解決的。相比于黑盒模型,貝葉斯網(wǎng)絡(luò)[2]作為人工智能領(lǐng)域中知識(shí)表達(dá)與推理的重要方法之一,因其具有透明的網(wǎng)絡(luò)結(jié)構(gòu),在因果推理方面具有無(wú)可比擬的優(yōu)勢(shì)。本文將卷積神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)相結(jié)合,首先基于群體行為一致性特征,利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)群體共性行為進(jìn)行建模。接著,充分利用貝葉斯網(wǎng)絡(luò)模型在因果推理方面的優(yōu)勢(shì),引入個(gè)人內(nèi)在因素、短期記憶特征及外在客觀因素影響等特征構(gòu)建貝葉斯網(wǎng)絡(luò),對(duì)卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果進(jìn)行校正,旨在幫助人們了解用戶行為數(shù)據(jù)中隱含的因果關(guān)系,發(fā)現(xiàn)問(wèn)題所在,最終解決問(wèn)題。
卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)中廣泛應(yīng)用的一種深度模型,近年來(lái)在計(jì)算機(jī)視覺[3]、自然語(yǔ)言處理[4]及語(yǔ)音識(shí)別[5]等諸多領(lǐng)域均取得了顯著進(jìn)展。卷積神經(jīng)網(wǎng)絡(luò)通常由輸入層、卷積層、激活層、池化層、全連接層和輸出層構(gòu)成。不同于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)中相鄰層間結(jié)點(diǎn)采用的全連接形式,卷積神經(jīng)網(wǎng)絡(luò)中的局部連接、權(quán)值共享及池化操作大大減少了需要學(xué)習(xí)的權(quán)重參數(shù),從而提高了訓(xùn)練性能。在卷積層中有多個(gè)卷積核對(duì)輸入數(shù)據(jù)進(jìn)行卷積運(yùn)算來(lái)捕捉數(shù)據(jù)的多個(gè)局部特征,接著通過(guò)激活函數(shù)對(duì)卷積層的輸出結(jié)果進(jìn)行非線性映射,隨后的池化層進(jìn)行下采樣來(lái)對(duì)卷積層輸出的特征圖進(jìn)行降維,這不僅能夠進(jìn)一步減少訓(xùn)練參數(shù),也能降低模型過(guò)擬合的程度。因此,輸入的數(shù)據(jù)經(jīng)過(guò)多個(gè)連續(xù)的卷積-池化結(jié)構(gòu)映射到了隱層特征空間,但在全連接層前如果神經(jīng)元數(shù)目過(guò)多或訓(xùn)練數(shù)據(jù)過(guò)少時(shí)有可能會(huì)出現(xiàn)過(guò)擬合的情況,因此可以在全連接層前引入dropout操作隨機(jī)刪除部分神經(jīng)元來(lái)緩解過(guò)擬合的出現(xiàn),提高網(wǎng)絡(luò)的泛化能力。最終,位于dropout之后的全連接層將提取到的特征圖映射成一個(gè)特征向量,并進(jìn)行最終的分類輸出。
貝葉斯網(wǎng)絡(luò)[2]是一種概率圖模型,它將圖論與概率論知識(shí)相結(jié)合,能夠表示隨機(jī)變量之間的相互依賴關(guān)系及因果關(guān)系,可以用于發(fā)現(xiàn)數(shù)據(jù)中隱含的知識(shí),目前廣泛應(yīng)用于故障診斷[6]、風(fēng)險(xiǎn)評(píng)估[7]、用戶行為[8]等領(lǐng)域。貝葉斯網(wǎng)絡(luò)由兩部分構(gòu)成:1)有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG),即貝葉斯網(wǎng)絡(luò)結(jié)構(gòu),圖中的每一個(gè)結(jié)點(diǎn)都對(duì)應(yīng)了一組隨機(jī)變量,而連接結(jié)點(diǎn)的有向邊則表示父節(jié)點(diǎn)對(duì)子節(jié)點(diǎn)的直接影響;2)網(wǎng)絡(luò)參數(shù),每個(gè)結(jié)點(diǎn)都對(duì)應(yīng)著一個(gè)條件概率表(Conditional Probability Table,CPT),用于表示該結(jié)點(diǎn)與其父結(jié)點(diǎn)之間的關(guān)聯(lián)程度。結(jié)點(diǎn)Xi的條件概率分布可以用P(Xi|πi(Xi))來(lái)表示,其中πi(Xi)表示結(jié)點(diǎn)Xi的父結(jié)點(diǎn)集合。因此,隨機(jī)變量X={X1,X2,…,Xn}的聯(lián)合概率分布可以表示為:
以KDD Cup 2010所提供的智能教學(xué)輔導(dǎo)系統(tǒng)2005-2006年的用戶交互記錄日志為例,根據(jù)用戶當(dāng)前所面對(duì)的方程預(yù)測(cè)下一步將采用哪一個(gè)知識(shí)點(diǎn)進(jìn)行解題。該數(shù)據(jù)集記錄了用戶在系統(tǒng)中解數(shù)學(xué)方程的過(guò)程行為日志信息。系統(tǒng)中的題目按照單元、章節(jié)的結(jié)構(gòu)進(jìn)行劃分。系統(tǒng)將用戶答題過(guò)程中與系統(tǒng)的每一次交互操作記錄為一條日志,每條日志含有用戶Id、題目及從屬結(jié)構(gòu)、當(dāng)前步驟、用戶解當(dāng)前方程所使用的知識(shí)點(diǎn)、首次嘗試是否正確、解題次數(shù)、開始時(shí)間、正確操作持續(xù)時(shí)間、錯(cuò)誤操作持續(xù)時(shí)間、結(jié)束時(shí)間、正確次數(shù)、錯(cuò)誤次數(shù)、查看提示次數(shù)等19個(gè)特征。
由于教學(xué)系統(tǒng)中的數(shù)學(xué)方程包含了系數(shù)、常數(shù)、變量名稱、運(yùn)算符等,且所有組成部分的個(gè)數(shù)及順序均為隨機(jī)生成,顯然這樣的數(shù)學(xué)方程無(wú)法直接輸入卷積神經(jīng)網(wǎng)絡(luò),這就需要對(duì)數(shù)學(xué)方程進(jìn)行預(yù)處理。通過(guò)觀察用戶在系統(tǒng)中的解題方程,可以歸納為加號(hào)、減號(hào)、乘號(hào)、除號(hào)、等號(hào)、正變量、負(fù)變量、常數(shù)乘式、變量乘式及括號(hào)表達(dá)式等10個(gè)組成部分,因此將每一個(gè)數(shù)學(xué)方程根據(jù)以上劃分的組成部分分別以特定數(shù)字表示,并保留原始運(yùn)算順序。例如,方程828x-180+22x = -18可表示為數(shù)字序列1,2,6,9,1,5,6。其中1對(duì)應(yīng)正變量、2對(duì)應(yīng)于減號(hào)、6對(duì)應(yīng)常數(shù)項(xiàng)、9對(duì)應(yīng)加號(hào)、5對(duì)應(yīng)等號(hào)。為便于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行處理,對(duì)以上數(shù)字序列中的每個(gè)數(shù)字分別進(jìn)行one-hot編碼后均可形成1*10的行向量,因此包含了m個(gè)數(shù)字的數(shù)字序列最終可構(gòu)成m*10的矩陣。而數(shù)據(jù)集中方程的組成部分不超過(guò)33個(gè),因此可以將每個(gè)數(shù)學(xué)方程轉(zhuǎn)換為33*10的二維矩陣。
圖1為所采用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示,該網(wǎng)絡(luò)由2個(gè)二維卷積層,1個(gè)下采樣層、2個(gè)dropout層及2個(gè)全連接層構(gòu)成,其中C1、C2為卷積層,每個(gè)卷積層均使用32個(gè)3*3的卷積核對(duì)輸入的數(shù)據(jù)進(jìn)行二維卷積運(yùn)算,且均采用Relu函數(shù)進(jìn)行激活。其中C1卷積層卷積時(shí)不使用填充,但C2卷積層卷積時(shí)使用填充。在C2卷積層之后設(shè)置一個(gè)下采樣層S3用于特征圖降維。隨后有兩個(gè)全連接層F5和F7用于將特征映射為特征向量,為防止過(guò)擬合,在兩個(gè)全連接層前分別設(shè)置兩個(gè)dropout層D4和D6,分別進(jìn)行25%和50%的隨機(jī)失活,最后一個(gè)全連接層F7采用softmax函數(shù)輸出最終的預(yù)測(cè)結(jié)果。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
同一個(gè)群體通常具有相同的共同活動(dòng)內(nèi)容和形式,因此具有群體共性。而群體中的每個(gè)個(gè)體同時(shí)還擁有不同的個(gè)性、喜好及個(gè)人習(xí)慣等個(gè)人內(nèi)在因素,因此用戶行為也同時(shí)擁有個(gè)性化特征。不同的用戶在面對(duì)相同問(wèn)題時(shí),由于個(gè)人習(xí)慣或個(gè)人喜好等因素,可能采取完全不同的應(yīng)對(duì)方式。例如,給定數(shù)學(xué)方程403x+992-27x=-31,由于方程左側(cè)的加號(hào)與減號(hào)優(yōu)先級(jí)一致,用戶可以選擇先進(jìn)行變量消元,也可以選擇先消除常數(shù)項(xiàng),而用戶如何選擇取決于兩方面因素。第一個(gè)因素是客觀外在因素,例如教學(xué)內(nèi)容總是按教學(xué)順序隨時(shí)間逐漸推進(jìn)。例如上述變量消元、消除常數(shù)項(xiàng)等兩種方法,用戶在前一階段先學(xué)習(xí)的變量消元法,此時(shí)用戶只會(huì)采取先進(jìn)行變量消元的解法。在后一階段又學(xué)習(xí)了消除常數(shù)項(xiàng),此時(shí)用戶就有可能隨機(jī)采取其中一種方法進(jìn)行解題。第二個(gè)因素是個(gè)性因素,經(jīng)觀察,部分用戶的解題行為相對(duì)固定,這表現(xiàn)在每次遇到同類問(wèn)題時(shí)幾乎都采取一致的解法,而另外一部分用戶的行為則具有一定的隨機(jī)性,有時(shí)候采取變量消元法,有時(shí)候采取消除常數(shù)項(xiàng)法。另一方面,用戶在大部分系統(tǒng)上的行為經(jīng)常存在短期記憶效應(yīng),即面對(duì)同樣的場(chǎng)景,用戶更有可能重復(fù)最近的行為,受最近的影響最大。根據(jù)以上分析,引入貝葉斯網(wǎng)絡(luò)來(lái)對(duì)上一小節(jié)中卷積神經(jīng)網(wǎng)絡(luò)給出的預(yù)測(cè)結(jié)果進(jìn)行校正。
假設(shè)己有一組用戶、一組題目和一組解題所使用的知識(shí)點(diǎn),分別表示為U={u1,u2,u3,…,ul}、P={p1,p2,p3,…,pm}及K={k1,k2,k3,…,kn}。與此同時(shí),3.2小節(jié)中卷積神經(jīng)網(wǎng)絡(luò)輸出層對(duì)于每一條輸入的日志數(shù)據(jù)均給出了20個(gè)類別的預(yù)測(cè)概率,取出預(yù)測(cè)概率值最高的兩個(gè)類別及對(duì)應(yīng)的概率分別記為(ki,kj)及(pki,pkj)。為充分提高貝葉斯網(wǎng)絡(luò)的訓(xùn)練及預(yù)測(cè)效率,減少結(jié)點(diǎn)個(gè)數(shù),需要進(jìn)行以下處理:1)、對(duì)得出的每對(duì)(ki,kj)進(jìn)行編號(hào),記為C={C1,C2,C3…Cz},Ch為提取出的每對(duì)(ki,kj);2)、根據(jù)每對(duì)(ki,kj)的預(yù)測(cè)結(jié)果進(jìn)行分類,計(jì)算Pki-Pkj的值,等距分為8組,記為Pv={Pv1,Pv2,Pv3…Pv8};3)、對(duì)于每對(duì)(ki,kj),記錄用戶最終采用的知識(shí)點(diǎn),記為R={R1,R2}。此外,根據(jù)上文分析,用戶的個(gè)人內(nèi)在因素表明用戶與知識(shí)點(diǎn)之間存在使用偏向性、客觀外在因素和短期效應(yīng)因素表明時(shí)間與知識(shí)點(diǎn)間存在使用偏向性。對(duì)于用戶與知識(shí)點(diǎn)之間的偏向性,每一對(duì)用戶與知識(shí)點(diǎn)計(jì)算偏向性權(quán)重取決用戶使用該知識(shí)點(diǎn)的頻率,因此對(duì)于任一知識(shí)點(diǎn),根據(jù)用戶使用的頻率來(lái)計(jì)算其權(quán)重。此時(shí)值得注意的是,用戶使用系統(tǒng)的次數(shù)存在較大差異,小部分用戶只有幾條或是幾十條日志記錄,但近半用戶則擁有數(shù)千條日志記錄,這時(shí)就需要對(duì)使用頻率進(jìn)行歸一化處理,本文采取公式(1)計(jì)算用戶-知識(shí)點(diǎn)偏向性權(quán)重,其中Fu,k1和Fu,k2分別表示用戶u使用知識(shí)點(diǎn)k1和k2的頻率,max(Fk1)和max(Fk2)分別表示單個(gè)用戶使用知識(shí)點(diǎn)k1和k2的最高頻率,因此Wu.c可以表示用戶使用知識(shí)點(diǎn)的偏向度,若Wu.c為正數(shù)表示偏向k1,為負(fù)則表示偏向k2,且Wu.c的絕對(duì)值越高表明用戶越偏向使用某一知識(shí)點(diǎn),而Wu.c絕對(duì)值趨向于0則表示用戶對(duì)于知識(shí)點(diǎn)k1和k2沒(méi)有明顯偏向。根據(jù)Wu.c的值,將用戶-知識(shí)點(diǎn)偏向度按照以下區(qū)間劃分為6個(gè)類別[0,0.1),[0.1,0.3),[0.3,1],[-0.1,0),[-0.3,0.1),[-1,0.3),記為Utype={U1,U2,U3,U4,U5,U6}。
(1)
另外,用戶行為同樣也取決于如教學(xué)過(guò)程推進(jìn)等當(dāng)下客觀外在因素及短期記憶效應(yīng)因素,因此根據(jù)用戶行為發(fā)生時(shí)間,提取用戶最近行為及近一月對(duì)于相同問(wèn)題所有用戶行為同時(shí)作為貝葉斯網(wǎng)絡(luò)結(jié)點(diǎn),采用公式(2),(3)如下所示。對(duì)于題目p及類別c,若近一月所有用戶采用k1的頻率大于k2的頻率,將GRECENT設(shè)為0,否則為1。對(duì)于題目p及類別c,若用戶u最近一次采用k1,URECENT設(shè)為0,否則為1。
GRECENT={0Fp,c,k1>Fp,c,k21Fp,c,k1<=Fp,c,k2
(2)
URECENT={0lastActionu,p,c=k11lastActionu,p,c=k2
(3)
最后,建立貝葉斯網(wǎng)絡(luò)CNN-Bayes=
圖2 用戶行為預(yù)測(cè)貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)
實(shí)驗(yàn)采用KDD Cup 2010所提供的智能教學(xué)輔導(dǎo)系統(tǒng)2005-2006年的用戶與系統(tǒng)交互記錄日志,選取涉及題目EG45、EG45A、EG51、EG51A等日志記錄共40436條含有解題方程步驟的用戶行為記錄作為實(shí)驗(yàn)數(shù)據(jù)。為保證每個(gè)題目都含有足夠的訓(xùn)練數(shù)據(jù),對(duì)實(shí)驗(yàn)數(shù)據(jù)按題目分組,每一組的前80%作為訓(xùn)練數(shù)據(jù),剩余20%作為測(cè)試數(shù)據(jù)。實(shí)驗(yàn)將預(yù)測(cè)所有用戶面對(duì)當(dāng)前方程時(shí)將采取哪一個(gè)知識(shí)點(diǎn)進(jìn)行下一步解題。根據(jù)3.1小節(jié)的方法提取方程特征,可得數(shù)據(jù)集中共含有963種方程,用戶面對(duì)963種方程時(shí)可選用的知識(shí)點(diǎn)共有20種。在提取特征后首先采用3.2小節(jié)中設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行用戶行為預(yù)測(cè),最終正確率達(dá)到83.3%??芍矸e神經(jīng)網(wǎng)絡(luò)已經(jīng)能夠較好的根據(jù)群體行為共性預(yù)測(cè)出用戶下一步將采取的行為。提取預(yù)測(cè)結(jié)果部分類別混淆矩陣如表1所示,該混淆矩陣所涉及的11個(gè)類別已經(jīng)涵蓋了測(cè)試集98%的數(shù)據(jù)。觀察表1的混淆矩陣可知,與其他類別相比較,K1、K4及K8的正確率偏低,而原因正如4.1小節(jié)所述,用戶行為具有一定的隨機(jī)性,而隨機(jī)性可能取決于客觀外在因素、個(gè)人內(nèi)在因素及短期記憶效應(yīng)因素。
因此,在卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果的基礎(chǔ)上,繼續(xù)采用4.1節(jié)所設(shè)計(jì)貝葉斯網(wǎng)絡(luò)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果進(jìn)行進(jìn)一步校正。由于訓(xùn)練集和測(cè)試集按時(shí)間先后順序劃分,因此在測(cè)試集中可能出現(xiàn)新用戶或者老用戶對(duì)某個(gè)題目沒(méi)有歷史答題情況等冷啟動(dòng)問(wèn)題,對(duì)于此類缺失數(shù)據(jù)的填充均采取填充最高頻數(shù)所屬類別的方法,最終得出的最終正確率為89.7%,得到了6.4%的提升,經(jīng)貝葉斯網(wǎng)絡(luò)校正后的部分類別混淆矩陣及正確率如表2及圖3所示。對(duì)比兩個(gè)混淆矩陣可知,經(jīng)貝葉斯網(wǎng)絡(luò)校正后,K1、K4及K8的正確率有了顯著提升,但在K9、K11上也出現(xiàn)了個(gè)位數(shù)的預(yù)測(cè)偏差。
表1 CNN部分預(yù)測(cè)結(jié)果混淆矩陣
表2 貝葉斯網(wǎng)絡(luò)校正后的混淆矩陣
圖3 卷積神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)校正后的正確率對(duì)比
提出了一種用戶行為預(yù)測(cè)模型,該模型將卷積神經(jīng)網(wǎng)絡(luò)與貝葉斯網(wǎng)絡(luò)相融合,首先利用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)出群體共性行為,接著采用貝葉斯網(wǎng)絡(luò),引入短期效應(yīng)因素、客觀情景因素、個(gè)人內(nèi)在因素等特征,對(duì)卷積神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果進(jìn)行進(jìn)一步校正,最后的實(shí)驗(yàn)結(jié)果表明,經(jīng)貝葉斯網(wǎng)絡(luò)校正后,預(yù)測(cè)正確率得到了顯著提升。比起單一的卷積神經(jīng)網(wǎng)絡(luò),采用貝葉斯網(wǎng)絡(luò)的優(yōu)勢(shì)在于其強(qiáng)大的因果推理,其透明的網(wǎng)絡(luò)結(jié)構(gòu)有利于發(fā)現(xiàn)用戶發(fā)生行為的原因,為決策提供了依據(jù)。
安陽(yáng)師范學(xué)院學(xué)報(bào)2019年2期