劉倫琿,吳麗萍
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
隨著5G時(shí)代的序幕漸漸拉開,大數(shù)據(jù)流如同潮水一般涌入人們的生活,其中包含大量不同領(lǐng)域的專業(yè)知識(shí)和信息。用戶需要一種輔助工具,幫助他們從這些專業(yè)或者冗余的信息中篩選推薦得到符合用戶個(gè)性的產(chǎn)品或內(nèi)容。目前為了得到準(zhǔn)確的個(gè)性化推薦信息,依舊存在一些問題需要去解決,如在分析用戶歷史評(píng)論內(nèi)容時(shí),由于每條評(píng)論的長(zhǎng)短不同,評(píng)論的方式不同。傳統(tǒng)的機(jī)器學(xué)習(xí)方法如協(xié)同過濾并不能很好地理解評(píng)論獲得更準(zhǔn)確的推薦結(jié)果。因此輔助決策算法需要更好地去挖掘評(píng)論中的特征,理解評(píng)論中的上下文信息。
為了得到評(píng)論中用戶的情感極性,YIN ZHANG等人在文獻(xiàn)[1]中提出了一種為情感打分的方法,根據(jù)情感詞匯表對(duì)每一條評(píng)論進(jìn)行打分,從而得到每一條評(píng)論的情感狀態(tài)。為了更好地挖掘數(shù)據(jù)中的深層和表層的信息,Google公司提出了Wide&Deep模型,其核心思想是結(jié)合廣義線性模型的記憶能力和深度前饋神經(jīng)網(wǎng)絡(luò)模型的泛化能力,利用廣義線性模型從數(shù)據(jù)中學(xué)習(xí)特征相關(guān)性,再通過深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)去挖掘隱藏特征。但如CHEN J 等人在文獻(xiàn)[2]中所說,Wide&Deep模型在wide part部分的數(shù)據(jù)輸入依舊需要專業(yè)人工特征工程。為了使模型能夠更好地考慮數(shù)據(jù)中特征組合交叉的影響并且不需要人工特征工程,GUO H等人在文獻(xiàn)[6]中提出了DeepFM模型,可以更快地訓(xùn)練并且更精確地學(xué)習(xí)。為了讓模型能夠更好地應(yīng)用在醫(yī)療信息推薦領(lǐng)域,本文提出一種在DeepFM模型的基礎(chǔ)上融合了狄利克雷分配(Latent Dirichlet Allocation,LDA)主題模型和Doc2vec算法的方法。實(shí)驗(yàn)表明,這種方法能較好地應(yīng)對(duì)數(shù)據(jù)冷啟動(dòng)問題,并且有較好的推薦性能表現(xiàn)。本文以真實(shí)的醫(yī)療評(píng)論數(shù)據(jù)集為例,驗(yàn)證了所提出的改進(jìn)DeepFM算法的優(yōu)越性。
主題模型是針對(duì)文本數(shù)據(jù)中的隱藏主題的一種建模方法。以一條評(píng)論文本來說,可能以不同的概率包含了多個(gè)不同的主題,而每個(gè)主題中又以不同的概率包含著許多個(gè)不同的單詞詞匯。主題模型本質(zhì)上起源于向量空間模型,將文本映射到向量空間中,可以更加方便地進(jìn)行操作和計(jì)算相似度等。為了能更好地挖掘出醫(yī)療評(píng)論中的隱藏主題特征,本文采用了主題模型中的狄利克雷分配(Latent Dirichlet Allocation,LDA)方法。
狄利克雷分配(Latent Dirichlet Allocation,LDA) 是由BLEI等人在文獻(xiàn)[3]中提出的一種主題生成模型,通過無監(jiān)督學(xué)習(xí)的方法發(fā)現(xiàn)文檔中隱藏的主題信息。一條文本評(píng)論可以看成一組有序的詞序列,而文本的生成過程可以簡(jiǎn)單地理解為三步:首先對(duì)于每一篇文檔從主題分布中抽取一個(gè)主題,其次從上述被抽到的主題所對(duì)應(yīng)的單詞分布中抽取一個(gè)單詞,最后一步就是重復(fù)上述過程直到遍歷文檔中的每一個(gè)單詞。LDA概率圖模型表示如圖1所示,可以看出,LDA為一個(gè)三層的貝葉斯模型。其中,K為假定的主題數(shù),α為每篇文章的主題分布的先驗(yàn)分布參數(shù),β表示K個(gè)主題的詞分布,θ是一個(gè)m×K(m為文檔個(gè)數(shù))的矩陣,表示文檔的主題分布,z表示文檔中的詞語被分配的主題向量,W表示文檔中的詞語。
圖1 LDA概率圖模型表示
首先選擇一個(gè)主題分布向量θ,得到每個(gè)主題被選擇的概率,在生成每一個(gè)單詞的同時(shí)從主題分布向量θ中抽取一個(gè)主題Z,按照主題Z中單詞的概率分布生成一個(gè)單詞。因此在給定先驗(yàn)參數(shù)α和?的前提下,LDA聯(lián)合概率分布的公式如式(1)所示:
根據(jù)式(1)可以估計(jì)出θ和β的值,而本文的實(shí)驗(yàn)需要用到的參數(shù)是主題分布向量。
將主題數(shù)K設(shè)置為10,利用LDA對(duì)yelp醫(yī)療評(píng)論數(shù)據(jù)進(jìn)行建模,將醫(yī)療評(píng)論劃分為10個(gè)隱藏主題。表1為劃分出的十個(gè)隱藏主題中概率最高的9個(gè)關(guān)鍵詞。根據(jù)關(guān)鍵詞可以對(duì)每一個(gè)隱藏主題進(jìn)行合理的解釋。
表1 K=10時(shí)LDA挖掘隱藏主題情況
由表1中的關(guān)鍵詞可知,10個(gè)隱藏主題大體為:(1)眼部醫(yī)療服務(wù);(2)預(yù)約等待時(shí)間;(3)運(yùn)動(dòng)護(hù)理損傷康復(fù);(4)保險(xiǎn);(5)口腔牙部護(hù)理; (6)醫(yī)院醫(yī)藥基礎(chǔ)設(shè)施環(huán)境;(7)專業(yè)的醫(yī)療水平,友好的服務(wù)態(tài)度;(8)手術(shù)及手術(shù)護(hù)理;(9)按摩,放松,減壓;(10)美容,女性皮膚護(hù)理。
表1 幾種方法的均方差比較
LDA主題模型雖然能夠挖掘到醫(yī)療評(píng)論中的隱藏主題和特征,但在實(shí)驗(yàn)中發(fā)現(xiàn)由于每一次生成的隱藏主題不同,使得這種方法很難調(diào)整。當(dāng)挖掘到的隱藏特征不夠好時(shí),會(huì)使最后的推薦準(zhǔn)確度降低。為了讓模型的性能更加穩(wěn)定,本文利用Doc2vec方法來保留更多表層特征和信息,使模型更好地理解評(píng)論的語義。
Doc2vec又叫做段向量(Paragraph Vector),是由MIKOLOV在文獻(xiàn)[4]中基于word2vec提出來的。Doc2vec是一種無監(jiān)督的學(xué)習(xí)方法,可以使用不同句子長(zhǎng)度的數(shù)據(jù)作為訓(xùn)練樣本,最終目標(biāo)是用預(yù)測(cè)的向量來表示不同的文檔。Doc2vec的訓(xùn)練方法和詞向量的訓(xùn)練方式十分相像,其本質(zhì)就是根據(jù)每個(gè)單詞的上下文進(jìn)行預(yù)測(cè),其結(jié)構(gòu)框架如圖2所示。
圖2 Doc2vec結(jié)構(gòu)框架圖
用矩陣D中的某一列向量代表一句話,每一個(gè)單詞也用一個(gè)唯一的向量即矩陣W中的某一列來表示。其主要過程主要分成兩步:第一步為訓(xùn)練模型,通過已知的訓(xùn)練數(shù)據(jù)得到詞向量以及句向量/段向量;第二步則是推斷過程,對(duì)于新的段落,利用梯度下降的方法更新矩陣D,增加新的列,從而得到新的段落向量。經(jīng)過訓(xùn)練后,段落向量可以當(dāng)做段落的特征,可以將這些段落特征直接輸入到后面的模型中。Doc2vec算法本身有兩個(gè)關(guān)鍵點(diǎn):一是無監(jiān)督訓(xùn)練得到字向量W,二是推理階段得到段落向量D。Doc2vec算法的主要優(yōu)勢(shì)在于:首先,Doc2vec能夠從未經(jīng)過標(biāo)簽處理的文本數(shù)據(jù)中學(xué)到特征,同時(shí)能夠很好地應(yīng)對(duì)有時(shí)數(shù)據(jù)不夠豐富的問題;其次,繼承了詞向量在向量空間中對(duì)于單詞語義的理解;最后,Doc2vec算法保留了很多的文本信息比如詞語之間的序列信息等。這些優(yōu)勢(shì)能夠使最后推薦的性能變得更加穩(wěn)定且能夠在一定程度上提高推薦的準(zhǔn)確度。本文將在第2部分對(duì)融合了Doc2vec后對(duì)于模型的影響進(jìn)行分析 和對(duì)比。
1.4.1 因子分解機(jī)
因子分解機(jī)(Factorization Machines,F(xiàn)M)是由RENDLE在文獻(xiàn)[5]中提出的一種與支持向量機(jī)(Support Vector Machine,SVM)類似的預(yù)測(cè)器,但因子分解機(jī)能很好地應(yīng)對(duì)數(shù)據(jù)稀疏的情況,即使在數(shù)據(jù)高稀疏的情況下也能估計(jì)得到可靠的參數(shù)。FM具有線性復(fù)雜度,并且能夠考慮特征之間的相互關(guān)系。普通的線性模型如式(2)所示:
式中:y為目標(biāo)值,w0為偏置項(xiàng),wi為每一個(gè)特征的權(quán)重,xi為第i個(gè)特征。由式(2)可知,普通的線性模型獨(dú)立地考慮每一個(gè)特征的影響,對(duì)于特征2階及以上的交叉情況并未考慮。而FM模型則對(duì)此進(jìn)行了改進(jìn),如式(3)所示:
式中:n表示輸入數(shù)據(jù)經(jīng)過OneHot處理(將評(píng)論文本通過獨(dú)熱編碼轉(zhuǎn)換成向量表示)后的數(shù)據(jù)維度,xi表示第i個(gè)特征,wij是特征組合的參數(shù)。當(dāng)數(shù)據(jù)十分稀疏的時(shí)候,特征xi和xj都不為0的情況較少,導(dǎo)致特征組合的參數(shù)比較難訓(xùn)練。為了更好地求解得到特征組合參數(shù)wij,F(xiàn)M對(duì)于每一個(gè)特征xi引入了輔助向量Vi=(Vi1,Vi2,Vi3,…,Vik),然后利用向量之間的內(nèi)積得到特征組合參數(shù)wij,如式(4)所示:
與詞向量的表現(xiàn)形式類似,詞向量是將一個(gè)詞轉(zhuǎn)換成一個(gè)向量,而在FM中則是將一個(gè)特征轉(zhuǎn)換成了一個(gè)向量。利用輔助向量對(duì)特征組合參數(shù)矩陣進(jìn)行分解的主要優(yōu)勢(shì)在于:首先,求解的參數(shù)數(shù)量降低,從本來的n(n-1)/2個(gè)參數(shù)變成了求解矩陣V,即參數(shù)數(shù)量變成了n×k;其次,削弱了高階參數(shù)間的數(shù)據(jù)獨(dú)立性,k值越大,輔助向量對(duì)于特征的表現(xiàn)能力越強(qiáng),而高階參數(shù)間的數(shù)據(jù)獨(dú)立性越強(qiáng),模型則越精細(xì),而較小的k值則會(huì)使模型獲得更好的泛化能力。因此在實(shí)驗(yàn)中選擇較小的k值以獲得較好的醫(yī)療推薦效果。
1.4.2 DeepFM
DeepFM模型由GUO H等人于2017年提出[6],可以將其看成是因子分解機(jī)FM的衍生,將深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)與FM相結(jié)合,利用FM挖掘低階特征組合的同時(shí)利用DNN挖掘高階特征組合,通過并行的方式將兩種方式組合。其模型框架如圖3所示。
圖3 DeepFM框圖
由結(jié)構(gòu)圖可以看出DeepFM由FM和DNN兩部分構(gòu)成,模型最終的輸出也由這兩部分構(gòu)成,如式(5)所示:
本文的上一部分已經(jīng)詳細(xì)地介紹了FM部分,DeepFM模型中DNN部分的具體結(jié)構(gòu)如圖4所示。
圖4 DNN部分結(jié)構(gòu)圖
DNN部分的作用是構(gòu)造高維的特征,挖掘高階特征相互作用的影響。其輸入與FM層一樣,是嵌入層的嵌入向量,這也是DeepFM模型的特點(diǎn)之一即權(quán)值共享。在Wide&Deep模型之后,很多模型都延續(xù)了雙模型組合的結(jié)構(gòu)。DeepFM相對(duì)于谷歌公司提出的Wide&Deep[7]模型而言,用FM部分替換了原來的Wide部分,加強(qiáng)了淺層網(wǎng)絡(luò)部分特征組合的能力,使Wide部分具有了自動(dòng)的特征組合能力,其主要過程就是利用FM部分對(duì)不同的特征域的Embedding進(jìn)行了兩兩交叉,最后將FM的輸出與DNN部分的輸出一同輸入最后的輸出層,參與最后的目標(biāo)擬合。
DeepFM模型的優(yōu)勢(shì)主要在于結(jié)合了廣度模型和深度模型的優(yōu)點(diǎn),在訓(xùn)練了FM模型的同時(shí)也訓(xùn)練了DNN模型,同時(shí)學(xué)習(xí)到了低階組合特征和高階組合特征[8]。DeepFM模型并不像Deep&Wide模型一樣在輸入層需要進(jìn)行人工特征工程。
通過實(shí)驗(yàn)對(duì)比發(fā)現(xiàn),DeepFM模型在真實(shí)的醫(yī)療數(shù)據(jù)集上的推薦性能優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)方法和普遍使用的深度學(xué)習(xí)方法。本文在DeepFM模型的基礎(chǔ)上,利用LDA主題模型和Doc2vec方法進(jìn)行了優(yōu)化,使最后的推薦性能有了一定的提升,其框架結(jié)構(gòu)如圖5所示。
圖5 融合LDA主題模型以及Doc2vec方法的DeepFM模型框架圖
利用LDA主題模型挖掘評(píng)論信息中的潛在主題和特征,同時(shí)利用Doc2vec方法保留文本淺層的特征,使模型能夠更好地理解文本語義信息并增加模型推薦效果的穩(wěn)定性。將LDA模型挖掘出的特征和段向量拼接后輸入DeepFM模型,得到預(yù)測(cè)的評(píng)分并與實(shí)際評(píng)分?jǐn)M合。
該方法相較于DeepFM方法增強(qiáng)了模型對(duì)于隱藏特征和隱藏特征交叉情況的學(xué)習(xí)和挖掘,同時(shí)相比傳統(tǒng)的OneHot方法,LDA主題模型和Doc2vec拼接的方法可以降低輸入層的維度。經(jīng)過實(shí)驗(yàn)發(fā)現(xiàn),該方法在醫(yī)療評(píng)論數(shù)據(jù)集上的推薦性能相對(duì)于DeepFM模型有了一定的提高。
本文的實(shí)驗(yàn)旨在驗(yàn)證融合了LDA主題模型和Doc2vec的DeepFM模型相較于傳統(tǒng)的機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法有更好的準(zhǔn)確性和穩(wěn)定性。本文所有的實(shí)驗(yàn)都運(yùn)行在一臺(tái)具有8 GB內(nèi)存、3.6 GHz主頻 Intel(R)Core(TM)CPU的機(jī)器上。實(shí)驗(yàn)主要分為兩個(gè)部分:第一部分對(duì)比DeepFM模型、傳統(tǒng)協(xié)同過濾方法、寬深網(wǎng)絡(luò)結(jié)構(gòu)(Deep&Wide)方法以及經(jīng)典的循環(huán)神經(jīng)網(wǎng)絡(luò)(Rerrent Neural Network,RNN)深度學(xué)習(xí)方法的準(zhǔn)確率;第二部分對(duì)比DeepFM模型和分別加入LDA主題模型、Doc2vec的DeepFM模型以及將三者結(jié)合的模型的準(zhǔn)確率和穩(wěn)定性。
實(shí)驗(yàn)使用的數(shù)據(jù)來源于Yelp數(shù)據(jù)集。Yelp數(shù)據(jù)集是一個(gè)經(jīng)典的推薦數(shù)據(jù)集,因擁有大量的真實(shí)數(shù)據(jù)而被廣泛地使用。從Yelp數(shù)據(jù)集中篩選抽取134 701條有關(guān)醫(yī)療評(píng)論的數(shù)據(jù)記錄進(jìn)行整合和預(yù)處理。將預(yù)處理后的數(shù)據(jù)集的80%抽取作為訓(xùn)練集,并將其中20%的數(shù)據(jù)抽取為驗(yàn)證集。剩余的20%的數(shù)據(jù)抽取為測(cè)試集,用來檢測(cè)算法的效果。實(shí)驗(yàn)使用的評(píng)價(jià)標(biāo)準(zhǔn)為均方根誤差(Root Mean Square Error,RMSE)。RMSE是推薦領(lǐng)域最常見的評(píng)價(jià)標(biāo)準(zhǔn)之一,其計(jì)算如式(6)所示:
式中:n為測(cè)試的總數(shù)量,p為模型預(yù)測(cè)的評(píng)分,r為用戶的真實(shí)評(píng)分。顯然,RMSE的值越小越好。
首先需要找到LDA主題模型中最優(yōu)的隱含主題數(shù)K值和Doc2vec中段落嵌入向量的大小M,如圖6、圖7所示。
圖6 尋找最優(yōu)K
圖7 尋找最優(yōu)M
由實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),當(dāng)LDA主題模型中的隱藏主題數(shù)目K設(shè)置為20時(shí)實(shí)驗(yàn)效果接近最優(yōu),當(dāng)Doc2vec嵌入向量大小設(shè)置為300維時(shí)實(shí)驗(yàn)效果接近最優(yōu)。
為了驗(yàn)證DeepFM模型方法能夠提高評(píng)分推薦的準(zhǔn)確度,分別使用傳統(tǒng)的協(xié)同過濾方法、經(jīng)典的深度學(xué)習(xí)RNN方法、近幾年提出的寬深網(wǎng)絡(luò)模型方法以及DeepFM模型方法在數(shù)據(jù)集上進(jìn)行試驗(yàn)。實(shí)驗(yàn)結(jié)果如圖8所示。在該數(shù)據(jù)集上,DeepFM方法相較于另外三種方法,對(duì)于評(píng)分推薦的準(zhǔn)確度有了一定的提升。
圖8 DeepFM和其他方法結(jié)果的對(duì)比情況
融合LDA主題模型和Doc2vec的DeepFM模型與普通的DeepFM模型對(duì)比實(shí)驗(yàn)結(jié)果如圖9和圖10所示。可以看出,融合了LDA的模型收斂速度更快,且在推薦性能上表現(xiàn)更好。但在實(shí)驗(yàn)過程中發(fā)現(xiàn),由于LDA主題模型每一次生成的隱藏主題不同,當(dāng)隱藏主題劃分情況較好時(shí)推薦性能較好,反之推薦性能會(huì)受到一定的影響。因而在多次實(shí)驗(yàn)的過程中,評(píng)估標(biāo)準(zhǔn)RMSE值表現(xiàn)出一定的波動(dòng)性和不穩(wěn)定性。但當(dāng)加入了Doc2vec段落嵌入后,測(cè)試結(jié)果的穩(wěn)定性增加。結(jié)果如圖11所示。
圖9 訓(xùn)練時(shí)RMSE下降情況
圖10 在測(cè)試集上模型的RMSE比較情況
圖11 多次實(shí)驗(yàn)中兩個(gè)模型的穩(wěn)定性比較情況
實(shí)驗(yàn)結(jié)果對(duì)比顯示,DeepFM模型相較于經(jīng)典的機(jī)器學(xué)習(xí)方法和目前常用的深度學(xué)習(xí)方法在醫(yī)療推薦方面具有一定的優(yōu)勢(shì)。根據(jù)RMSE評(píng)估,融合了LDA主題模型后,其推薦性能又得到了一定的提高但穩(wěn)定性下降。結(jié)合了Doc2vec段落嵌入后,雖然其RMSE值比只融入了LDA主題模型的DeepFM模型上升了3%,但該模型的穩(wěn)定性得到了提高,使得模型更好操控和調(diào)整。
現(xiàn)實(shí)生活中為用戶實(shí)現(xiàn)個(gè)性化的推薦是一個(gè)難題和挑戰(zhàn)。為了解決這個(gè)問題,本文提出了融合LDA主題模型和Doc2vec的DeepFM模型來挖掘用戶評(píng)論中的隱藏主題和隱藏特征,并且學(xué)習(xí)其中淺層和深層的特征,為輔助用戶決策得到較為準(zhǔn)確的推薦結(jié)果。實(shí)驗(yàn)結(jié)果表明,本文提出的方法在真實(shí)數(shù)據(jù)集上的醫(yī)療推薦性能比傳統(tǒng)的協(xié)同過濾方法、寬深網(wǎng)絡(luò)模型(Wide&Deep)、RNN以及一般DeepFM方法表現(xiàn)更優(yōu)。未來,希望能夠從社交網(wǎng)絡(luò)數(shù)據(jù)中抽取出更多的特征并且盡可能實(shí)時(shí)地為用戶提供更準(zhǔn)確、更可靠、更個(gè)性化的推薦內(nèi)容。