潘理虎,郝彥杰,周耀輝,龔大立
(1.太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024;2.山西省華晉焦煤集團(tuán),山西 呂梁 033300;3.精英數(shù)智科技股份有限公司,山西 太原 030024)
伴隨著日益蓬勃發(fā)展的信息產(chǎn)業(yè)技術(shù)和信息化管理在企業(yè)中的普及,眾多傳統(tǒng)煤企都從“白紙黑字”式的辦公方式進(jìn)而轉(zhuǎn)向新型的數(shù)字網(wǎng)絡(luò)信息化以提高工作效率。不僅僅在礦井下開采的環(huán)境數(shù)字化、技術(shù)手段的智能化及信息網(wǎng)絡(luò)的傳輸方面,甚至可以延伸到煤炭銷售領(lǐng)域,在客戶依據(jù)煤炭產(chǎn)品種類、發(fā)熱量、發(fā)售地區(qū)等多種因素綜合考慮后做出購(gòu)買決策上提供信息化技術(shù)的支持,其本質(zhì)是一種基于協(xié)同過濾思想的推薦系統(tǒng)。
針對(duì)協(xié)同過濾算法與推薦系統(tǒng)的結(jié)合方面,文獻(xiàn)[1]提出一種基于文本情感分析的推薦算法,將評(píng)論文本的相似度計(jì)算視為協(xié)同過濾中的部分影響因子,利用LDA主題模型分析用戶在物品各個(gè)屬性面中的偏好以計(jì)算用戶間的相似度,從而構(gòu)建較為新穎的推薦模型。文獻(xiàn)[2]為解決新聞、音樂、電影、餐飲等領(lǐng)域內(nèi)的用戶群推薦問題,比較模型融合與推薦融合的優(yōu)缺點(diǎn),得出了用戶群偏好與個(gè)體用戶偏好間具有相似性的結(jié)論,是一種效果顯著的基于模型的協(xié)同過濾推薦算法。文獻(xiàn)[3]結(jié)合信任用戶間兩種評(píng)分方式提出一種融合建模的概率矩陣分解模型,對(duì)用戶內(nèi)在影響因子做出了分類和量化,實(shí)現(xiàn)了聚類算法與推薦系統(tǒng)的有機(jī)融合。文獻(xiàn)[4]利用文本數(shù)據(jù)提取物品的隱性特征,在推薦系統(tǒng)與深度學(xué)習(xí)算法結(jié)合的基礎(chǔ)上構(gòu)建一種變分矩陣分解推薦模型,以處理物品輔助信息的方式,盡可能地彌補(bǔ)了用戶對(duì)物品評(píng)分信息缺失的問題。傳統(tǒng)協(xié)同過濾算法會(huì)因其用戶數(shù)量和產(chǎn)品數(shù)量急劇增大時(shí),用戶不可能對(duì)所有產(chǎn)品均提供評(píng)分的必然性導(dǎo)致其評(píng)分矩陣稀疏,且當(dāng)新用戶加入體系時(shí),因得不到其興趣偏好導(dǎo)致的冷啟動(dòng)問題都會(huì)使得基于協(xié)同過濾的推薦算法近鄰計(jì)算結(jié)果不準(zhǔn)確,推薦質(zhì)量差[5-7]。這些研究都從用戶之間、產(chǎn)品之間的相似性入手,僅僅把用戶對(duì)產(chǎn)品的評(píng)分作為相似度計(jì)算的唯一指標(biāo),然而一種煤炭產(chǎn)品可能具有多種特征,用戶屬性基因也不應(yīng)僅僅捕捉用戶本身的特性,還應(yīng)與其對(duì)煤炭產(chǎn)品偏好具備一定的相關(guān)影響,因此傳統(tǒng)協(xié)同過濾算法在實(shí)際的推薦過程中因矩陣數(shù)據(jù)稀疏、系統(tǒng)的冷啟動(dòng)問題等效果較差。
針對(duì)以上問題,該文提出一種基于煤炭產(chǎn)品的多特性因素綜合評(píng)價(jià)的協(xié)同過濾算法[8-10]。綜合考慮將煤炭產(chǎn)品的種類、發(fā)熱量、銷售地區(qū)作為煤炭產(chǎn)品特征,用戶的公司、規(guī)模和地區(qū)相結(jié)合以概括用戶的特征,在此基礎(chǔ)上定義一種新的煤炭產(chǎn)品推薦方式,改善了以往算法中因用戶評(píng)判標(biāo)準(zhǔn)過于單一和數(shù)據(jù)矩陣稀疏導(dǎo)致的相似偶然性問題,提高了推薦精度。
TCRM模型主要包括數(shù)據(jù)的預(yù)處理模塊、神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)模塊、訓(xùn)練模塊、用戶對(duì)煤炭產(chǎn)品評(píng)分部分及推薦部分。數(shù)據(jù)的預(yù)處理模塊主要包括格式轉(zhuǎn)換、數(shù)據(jù)清洗及抽取、文本轉(zhuǎn)數(shù)字字典、空白填充四大類,將處理完畢后的數(shù)據(jù)信息按照7∶3的比例分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù);特征提取后直接將訓(xùn)練數(shù)據(jù)置于模型中按照相關(guān)參數(shù)設(shè)定進(jìn)行迭代,其余訓(xùn)練數(shù)據(jù)用于模型的測(cè)試和校正,待模型訓(xùn)練完成后依據(jù)設(shè)定好的評(píng)分規(guī)則進(jìn)行計(jì)算,按照相似度大小排列得到相應(yīng)的推薦列表,完成不同要求前提下的推薦功能[11-13]。整個(gè)推薦系統(tǒng)流程如圖1所示。
圖1 推薦系統(tǒng)流程
本實(shí)驗(yàn)所使用的用戶和評(píng)分?jǐn)?shù)據(jù)集是來自企業(yè)內(nèi)收集的6 039條客戶信息表及10 000條購(gòu)買意向評(píng)分表;煤炭產(chǎn)品類數(shù)據(jù)集是經(jīng)過采集整理后得到200種包含煤炭產(chǎn)品ID、煤炭名稱、發(fā)熱量、銷往地區(qū)四個(gè)字段。對(duì)于煤炭名稱和銷往地區(qū)等諸如“Steam coal”及“Ningbo port”這樣的String字段,需要先把該詞組拆分成各個(gè)單詞再將其轉(zhuǎn)換為數(shù)字字典,然后根據(jù)具體單詞種類數(shù)轉(zhuǎn)換為不重復(fù)的數(shù)字列表,將其空白部分用
完成數(shù)據(jù)的預(yù)處理后,需要從中提取用戶和煤炭產(chǎn)品的特征。對(duì)于較為復(fù)雜的煤炭產(chǎn)品特征的提取,因其不僅包含數(shù)字字段,還包含文本字段如單詞和詞組,通常的做法是將其轉(zhuǎn)化成one hot編碼,但考慮到其過于稀疏的矩陣形式可能會(huì)導(dǎo)致輸入數(shù)據(jù)維度的急劇性膨脹,所以該文引入一種基于文本的卷積神經(jīng)網(wǎng)絡(luò)。以獲取煤炭產(chǎn)品名稱字段的特征為例,網(wǎng)絡(luò)結(jié)構(gòu)在第一層將從原始數(shù)據(jù)中的詞字段轉(zhuǎn)換成數(shù)字作為嵌入矩陣的索引,將這些訓(xùn)練而得到的詞向量以字嵌入的形式插入至一個(gè)低維向量中。在第二層利用多個(gè)卷積核在前一層的基礎(chǔ)上進(jìn)行卷積操作,比如設(shè)置不同大小的卷積窗口,每次滑動(dòng)2個(gè),3個(gè),4個(gè)或5個(gè)單詞。在第三層添加一個(gè)max-pooling層,添加dropout正則項(xiàng),在保留文本主要特征的同時(shí)減少參數(shù)以達(dá)到提高模型的泛化能力和防止過擬合的作用。通過以上三層結(jié)構(gòu)的網(wǎng)絡(luò)得出煤炭產(chǎn)品名稱的特征。
由于NLP中句子長(zhǎng)度不同,所以在CNN神經(jīng)網(wǎng)絡(luò)中輸入矩陣的形狀也不相同,T是一個(gè)D維長(zhǎng)度為M的句子,要從名稱為Yulin Bituminous coal這種煤炭產(chǎn)品中提取出CoalName的特征,首先需將其名稱詞組拆分成Yulin、Bituminous、coal三個(gè)單詞,這樣的文本T1:n可以表示為:
T1:n=T1⊕T2⊕…⊕Tn
(1)
其中,⊕表示將單詞拼接成詞組的級(jí)聯(lián)操作符,通常將Ti:i+j代表由Ti,Ti+1至Ti+j拼接而成的文本。卷積層在本質(zhì)上作為抽取特征的途徑,設(shè)置不同的超參數(shù)會(huì)導(dǎo)致特征抽取的結(jié)果不盡相同,對(duì)于卷積的移動(dòng)窗口來講,可以對(duì)窗口大小做出合理的假設(shè),如其尺寸為K*D,K代表窗口的大小即每次滑動(dòng)的單詞數(shù),D等同于嵌入矩陣的維度,通過神經(jīng)網(wǎng)絡(luò)中的非線性變換,窗口不斷向后移動(dòng),卷積核所對(duì)應(yīng)的特征值不斷產(chǎn)生從而形成特征向量。不同卷積窗口h會(huì)導(dǎo)致卷積產(chǎn)生的特征并不完全相同,例如特征Fi是由Ti:i+h-1長(zhǎng)度的文本經(jīng)過式(2)變換產(chǎn)生的:
Fi=f(w*Ti:i+h-1+b)
(2)
其中,b是一個(gè)等同于卷積核維度的固定大小的常量,f是一個(gè)類雙曲線正切的非線性函數(shù),根據(jù)不同卷積窗口大小和不同詞組F={F1,F2,…,Fn-h+1}會(huì)產(chǎn)生一個(gè)特征集合公式,表示為:
{T1:h,T2:h+1,…,Tn-h+1:n}
(3)
其中,F(xiàn)屬于R:n-h+1。由于卷積核尺寸不同,每個(gè)卷積核經(jīng)過卷積操作后產(chǎn)生的張量維度也不同,所以所有卷積層都需要?jiǎng)?chuàng)建一層網(wǎng)絡(luò),最后需把所有卷積之后的結(jié)果及不需要卷積的嵌入字段全連接合并成一個(gè)大的特征向量。
在初步了解煤炭產(chǎn)品名稱的前提下,如果存在某一種產(chǎn)品其名稱為Yulin Bituminous coal或者Bituminous Yulin coal的情況,本質(zhì)上兩者代表同樣的煤種,故可應(yīng)用Max Pooling Over Time下采樣操作在Feature Map抽取到的若干特征中僅保留最顯著的特征即得分最大的值作為pooling層值,而拋棄其他弱特征,這樣做不僅可以保證特征位置及旋轉(zhuǎn)不變性,還可以固定pooling層長(zhǎng)度即確定之后輸出結(jié)果進(jìn)入全連接層的神經(jīng)元個(gè)數(shù),以滿足網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)。在dropout層中規(guī)定只允許部分比例的節(jié)點(diǎn)參與學(xué)習(xí)過程,通過減少神經(jīng)元數(shù)量降低模型復(fù)雜度,增強(qiáng)模型泛化能力,防止過擬合。不同卷積核根據(jù)其窗口大小采用不同filter_weight,將卷積操作之后的結(jié)果通過不同的激活函數(shù)進(jìn)行非線性處理得到輸出值,每個(gè)卷積核都將完全覆蓋詞向量的長(zhǎng)度,但其每次滑動(dòng)覆蓋的單詞數(shù)卻是不同的。在單詞上滑動(dòng)時(shí)采取不對(duì)邊緣進(jìn)行填充的窄卷積操作,最后輸出的維度為[1,coal_name_max-window_size,1,1]。對(duì)特定卷積的輸出做最大池化操作,得到維度為[batch_size,1,1,filter_num]的特征向量,其中最后一個(gè)維度與特征值相對(duì)應(yīng),將所有來自各個(gè)卷積核的輸出向量合并成一個(gè)維度為[batch_size,max_num]長(zhǎng)的特征向量即為該文本對(duì)應(yīng)的特征向量。
特征提取步驟僅僅是從用戶和煤炭產(chǎn)品的信息中得到相對(duì)應(yīng)的用戶特征和煤炭特征,為衡量用戶對(duì)煤炭之間的偏好關(guān)系,可以在訓(xùn)練好的網(wǎng)絡(luò)上通過正向傳播得到用戶對(duì)煤炭的評(píng)分inference概念。inference指用戶對(duì)煤炭產(chǎn)品的偏好程度,對(duì)于inference的定義方式,該文給出兩種可供考慮的選擇:一種是將來自池化層的用戶特征和煤炭特征向量作為輸入,經(jīng)過全連接做特征加權(quán)得到一個(gè)分?jǐn)?shù)最高的類別,其公式表示為:
inference=w(u,c)x+b
(4)
其中,w(u,c)為一個(gè)從截?cái)嗟恼龖B(tài)分布中輸出的服從具有制定平均值和標(biāo)準(zhǔn)偏差的隨機(jī)值,b為一個(gè)滿足以上矩陣相加的常量。
評(píng)分矩陣生成算法流程:
輸入:需要預(yù)測(cè)的用戶特征集U1,需要預(yù)測(cè)的煤炭產(chǎn)品特征集C1。
輸出:TCRM預(yù)測(cè)評(píng)分矩陣T1。
1.forU1i∈{U11,U12,…,U1n}andC1i∈{C11,C12,…,C1n}do:
2.for useri∈U1iand itemi∈C1ido:
3.用式(4)中方法計(jì)算用戶對(duì)產(chǎn)品的評(píng)分
4.end for
5.end for
其中,U1i={user1,user2,…},C1i={item1,item2,…}。
另一種比例特征法是在將用戶特征與電影特征做除法運(yùn)算的基礎(chǔ)上再乘一個(gè)特定的系數(shù)cf,cf為用戶數(shù)量與煤炭產(chǎn)品數(shù)量的比值,這樣做避免了在某些特殊情況下用戶和煤炭產(chǎn)品某一方抽取特征為0的情況,其公式表示為:
(5)
其中,F(xiàn)u表示該用戶的所有特征,F(xiàn)c表示該煤炭產(chǎn)品所包含的所有特征。這樣得出的inference作為用戶對(duì)煤炭產(chǎn)品打分的預(yù)測(cè)值,在數(shù)據(jù)預(yù)處理部分將用戶表與評(píng)分表及煤炭產(chǎn)品表合并只取出其中的評(píng)分列得出的targets作為用戶與煤炭產(chǎn)品對(duì)應(yīng)分?jǐn)?shù)的真實(shí)值。
評(píng)分矩陣生成算法流程:
輸入:需要預(yù)測(cè)的用戶特征集U1,需要預(yù)測(cè)的煤炭產(chǎn)品特征集C1。
輸出:TCRM預(yù)測(cè)評(píng)分矩陣T1。
1.forU2i∈{U21,U22,…,U2n}andC2i∈{C21,C22,…,C2n}do:
2.for useri∈U2iand itemi∈C2ido:
3.用式(5)中方法計(jì)算用戶對(duì)產(chǎn)品的評(píng)分
4.end for
5.end for
其中,U2i={user1,user2,…},C2i={item1,item2,…}。
損失值是對(duì)模型所造成的誤差的度量,以下給出損失計(jì)算losses的公式:
(6)
其中,N表示batchsize,targets和inference分別表示實(shí)際分?jǐn)?shù)和經(jīng)過評(píng)分計(jì)算得到的預(yù)測(cè)分?jǐn)?shù),該公式將不斷累加各批次損失直至推薦結(jié)束。由于推薦結(jié)果只能無限接近真實(shí)情況,準(zhǔn)確率用于訓(xùn)練階段和測(cè)試階段跟蹤模型的性能,以下給出準(zhǔn)確率計(jì)算的公式:
(7)
其中,N表示batchsize,num_correct表示預(yù)測(cè)得到inference中分?jǐn)?shù)等于targets樣本真實(shí)評(píng)分的個(gè)數(shù),num_items表示targets標(biāo)簽的個(gè)數(shù),整個(gè)公式可以計(jì)算所有批次中預(yù)測(cè)結(jié)果準(zhǔn)確地占所有真實(shí)分?jǐn)?shù)情況的比例。
協(xié)同過濾是近年來一種信息系統(tǒng)中很受歡迎的推薦算法思想,相較于傳統(tǒng)的基于內(nèi)容過濾,協(xié)同過濾會(huì)從用戶興趣入手,找到與指定用戶興趣類似的用戶,結(jié)合相似用戶對(duì)某一產(chǎn)品的評(píng)分,預(yù)測(cè)用戶對(duì)該產(chǎn)品的喜好程度。協(xié)同過濾主要包括基于用戶的協(xié)同過濾(user-based)、基于項(xiàng)目的協(xié)同過濾(item-based)、基于模型的協(xié)同過濾(model-based)[14-16]。以用戶和項(xiàng)目為基礎(chǔ)的協(xié)同過濾統(tǒng)稱為以記憶為基礎(chǔ)的協(xié)同過濾技術(shù)(memory-based),但是在數(shù)據(jù)稀疏和數(shù)據(jù)量很大時(shí),其推薦難以達(dá)到令人滿意的效果,因此衍生出一種以模型為基礎(chǔ)的協(xié)同過濾,其核心思想是先用歷史數(shù)據(jù)得出一個(gè)模型,再在此模型的基礎(chǔ)上進(jìn)行預(yù)測(cè)。想要實(shí)現(xiàn)推薦功能,其基本思路是將訓(xùn)練好的用戶特征和煤炭特征組合成用戶的特征矩陣和煤炭的特征矩陣并保存。計(jì)算當(dāng)前煤炭產(chǎn)品與整個(gè)煤炭特征矩陣的相似度,在計(jì)算相似度時(shí),由于傳統(tǒng)余弦相似度計(jì)算只關(guān)注方向上的差異,而對(duì)具體數(shù)值的絕對(duì)值大小不敏感,而歐氏距離只關(guān)注具體數(shù)值特征的差異,但可能會(huì)忽視個(gè)體向量不同維度的數(shù)值差異,也會(huì)造成推薦結(jié)果與實(shí)際情況不符的情況。一種較為合理的相似度計(jì)算方法是利用皮爾遜相關(guān)系數(shù)公式(Pearson similarity)計(jì)算向量每個(gè)維度上的均值,每個(gè)向量在各個(gè)維度上都減去均值后再進(jìn)行相似度的計(jì)算,其計(jì)算公式如下:
(8)
在相似度計(jì)算完成后,為了完成推薦同類型煤炭的目標(biāo),需要從煤炭特征矩陣中取得與已知煤炭產(chǎn)品相似度最大的topN個(gè),忽略用戶等其他影響因素,直接推薦最類似于這個(gè)煤炭產(chǎn)品的其他產(chǎn)品;當(dāng)推薦當(dāng)前用戶喜歡的其他煤炭產(chǎn)品時(shí),需要使用用戶的特征向量與煤炭特征矩陣計(jì)算該用戶對(duì)所有煤炭產(chǎn)品的inference評(píng)分,這里的評(píng)分計(jì)算可使用1.3節(jié)評(píng)分計(jì)算方法中的任意一種inference求解公式,取得矩陣中得分最高的topN個(gè)作為推薦列表;當(dāng)推薦購(gòu)買過該煤炭產(chǎn)品的人還可能喜歡哪些煤炭產(chǎn)品時(shí),先使用煤炭特征向量與用戶特征矩陣求得所有用戶對(duì)該煤炭產(chǎn)品的inference矩陣,從中選出最喜歡該產(chǎn)品的topN個(gè)人,然后分別計(jì)算這些人對(duì)煤炭產(chǎn)品矩陣中所有煤炭產(chǎn)品的評(píng)分,選擇每個(gè)人評(píng)分最高的煤炭產(chǎn)品作為推薦。
為了更高效快速地完成煤炭產(chǎn)品推薦系統(tǒng)搭建的Spark集群,使用了實(shí)驗(yàn)室中3臺(tái)普通計(jì)算機(jī),組成了一個(gè)由Master主節(jié)點(diǎn)和Slave1、Slave2兩個(gè)從節(jié)點(diǎn)構(gòu)成的運(yùn)行環(huán)境,三臺(tái)計(jì)算機(jī)均采用Centos7 Linux操作系統(tǒng),這樣可以實(shí)現(xiàn)Spark在服務(wù)器環(huán)境中的快速部署,進(jìn)而便于有效進(jìn)行特征的提取,完成算法的實(shí)現(xiàn)以及數(shù)據(jù)模型的構(gòu)建。所有實(shí)驗(yàn)開發(fā)語(yǔ)言為Python,Hadoop版本為hadoop-2.6.5.tar.gz,Spark版本為spark-1.6.2-bin-hadoop2.6.tgz,軟件開發(fā)環(huán)境采用JetBrains PyCharm。集群中所有軟件安裝并配置完畢后方可啟動(dòng)Spark分布式集群進(jìn)行實(shí)驗(yàn)。
該文將從兩種不同評(píng)分計(jì)算方式入手通過分析模型的損失和準(zhǔn)確率指標(biāo)、數(shù)據(jù)集大小對(duì)推薦系統(tǒng)運(yùn)行的時(shí)間影響,衡量基于文本卷積模型的多因素煤炭產(chǎn)品協(xié)同過濾推薦模型的性能好壞。根據(jù)用戶對(duì)煤炭產(chǎn)品評(píng)分的計(jì)算方式不同分為兩組對(duì)照實(shí)驗(yàn)A和B。實(shí)驗(yàn)A采取特征加權(quán)全連接的方法,其推薦模型的損失和準(zhǔn)確率如圖2、圖3所示。
圖2 全連接方式計(jì)算評(píng)分模型損失
圖3 全連接方式計(jì)算評(píng)分模型準(zhǔn)確率
由圖2、圖3可以看出,當(dāng)采取特征全連接方式擬合用戶對(duì)煤炭產(chǎn)品的評(píng)分時(shí),模型的損失隨批次增加逐漸減小最終穩(wěn)定在1.0左右,準(zhǔn)確率隨批次增加不斷升高最終穩(wěn)定在0.251左右。實(shí)驗(yàn)B采用數(shù)值比例特征法求得用戶對(duì)煤炭產(chǎn)品的評(píng)分inference,其推薦模型的損失和準(zhǔn)確率如圖4、圖5所示。
圖4 比例特征法計(jì)算評(píng)分模型損失
由圖4、圖5可以看出,當(dāng)采用比例特征法擬合用戶對(duì)煤炭產(chǎn)品的評(píng)分時(shí),模型的損失隨批次增加逐漸減小最終穩(wěn)定在1.2左右,準(zhǔn)確率隨批次增加不斷升高最終穩(wěn)定在0.262左右。A、B兩組實(shí)驗(yàn)中系統(tǒng)運(yùn)行時(shí)間隨著數(shù)據(jù)集大小的變化情況如圖6所示。
圖5 比例特征法計(jì)算評(píng)分模型準(zhǔn)確率
圖6 系統(tǒng)運(yùn)行時(shí)間隨數(shù)據(jù)集大小的變化情況
在數(shù)據(jù)集大小對(duì)推薦系統(tǒng)運(yùn)行的響應(yīng)時(shí)間上,當(dāng)數(shù)據(jù)量較小時(shí),特征全連接擬合評(píng)分的實(shí)驗(yàn)方法系統(tǒng)運(yùn)行所需時(shí)間較小,然而當(dāng)數(shù)據(jù)量達(dá)到一定程度,相比于比例特征法擬合評(píng)分,全連接帶來的網(wǎng)絡(luò)損失和偏置將導(dǎo)致系統(tǒng)運(yùn)行效率顯著降低,響應(yīng)時(shí)間過長(zhǎng)。經(jīng)過以上幾組實(shí)驗(yàn)可以看出,由于在實(shí)際的推薦系統(tǒng)中數(shù)據(jù)量往往較大,推薦準(zhǔn)確率評(píng)價(jià)指標(biāo)的重要性往往也大于模型損失指標(biāo),此時(shí)應(yīng)采用特征全連接加權(quán)的方式計(jì)算用戶對(duì)煤炭產(chǎn)品的評(píng)分可以提高推薦的準(zhǔn)確率,但同時(shí)也要付出更長(zhǎng)時(shí)間的代價(jià)。在衡量系統(tǒng)能否正常滿足實(shí)際推薦需求時(shí),根據(jù)推薦需求的不同共分為3組實(shí)驗(yàn),每個(gè)小組的實(shí)驗(yàn)結(jié)果如下:
實(shí)驗(yàn)一:通過相似度計(jì)算公式隨機(jī)對(duì)煤炭產(chǎn)品ID為100、120、140、160、180的煤種推薦與其最相似的煤炭產(chǎn)品。按照該煤炭產(chǎn)品與煤炭產(chǎn)品矩陣中所有產(chǎn)品的相似度由大到小排序可以得出煤炭產(chǎn)品ID為192、134、26、61、376的五種煤分別最類似于這些煤種(見表1)。
表1 實(shí)驗(yàn)1推薦效果
實(shí)驗(yàn)二:分別采用全連接評(píng)分計(jì)算法和比例特征法為用戶ID編號(hào)為234、235、236、237、238的隨機(jī)5名用戶推薦最可能受到其歡迎的煤炭產(chǎn)品。按照用戶對(duì)煤炭產(chǎn)品矩陣中所有產(chǎn)品的打分由高到低排序可以得出煤炭產(chǎn)品ID為41、72、199、82、223的五種煤最可能受到該用戶喜愛,從表2可以看出,全連接評(píng)分計(jì)算法推薦效果好于采用比例特征法計(jì)算評(píng)分時(shí)的推薦效果。
表2 實(shí)驗(yàn)2推薦效果
實(shí)驗(yàn)三:分別采用比例全連接評(píng)分計(jì)算法及比例特征法隨機(jī)為購(gòu)買過煤炭產(chǎn)品ID編號(hào)為100、101、102、103、104煤種的用戶找到與其興趣相似的用戶,并向其推薦購(gòu)買過同類型產(chǎn)品的用戶還喜歡瀏覽哪些煤種。先將該煤炭產(chǎn)品與用戶矩陣中所有用戶計(jì)算評(píng)分得到相似用戶列表,得出用戶ID為911、2 755、4 233、4 006、21的幾位用戶最有可能購(gòu)買過該種煤炭產(chǎn)品,再將這些用戶分別與煤炭產(chǎn)品特征矩陣中所有產(chǎn)品進(jìn)行評(píng)分計(jì)算,其結(jié)果中按照由高到低順序排列的煤炭產(chǎn)品ID為162、199、114、97、322的幾種煤即為這些用戶還可能感興趣的產(chǎn)品,將其作為最終推薦列表。由表3可以看出,采用全連接計(jì)算評(píng)分方式的推薦效果好于采用比例特征法評(píng)分計(jì)算的推薦結(jié)果。
表3 實(shí)驗(yàn)3推薦效果
從用戶及煤炭產(chǎn)品各個(gè)屬性面的文本角度分析,提出一種基于文本卷積神經(jīng)網(wǎng)絡(luò)的推薦模型。在煤炭產(chǎn)品間采用物品相似度排序方式推薦,用戶與產(chǎn)品間引入新的評(píng)分矩陣排序規(guī)則進(jìn)行推薦,并在不同評(píng)分矩陣生成方式下的模型損失及準(zhǔn)確率上驗(yàn)證了該模型在實(shí)際應(yīng)用中的可行性,克服了傳統(tǒng)協(xié)同過濾中的矩陣稀疏問題,能夠更充分有效地挖掘用戶及煤炭產(chǎn)品文本中的隱式信息,使推薦效率得到提升。