成靜, 王威, 帥正義
(1.西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 陜西 西安 710021; 2.西北工業(yè)大學(xué) 軟件學(xué)院, 陜西 西安 710072)
移動(dòng)應(yīng)用眾包測(cè)試是通過(guò)互聯(lián)網(wǎng)面向測(cè)試人員發(fā)布移動(dòng)應(yīng)用測(cè)試任務(wù),并由志愿者完成移動(dòng)應(yīng)用測(cè)試的一種測(cè)試方法[]。近年來(lái),移動(dòng)應(yīng)用眾包測(cè)試發(fā)展迅速,測(cè)試類型已涵蓋GUI測(cè)試、兼容性測(cè)試、性能測(cè)試、安全性測(cè)試等不同方面,因此對(duì)測(cè)試人員的專業(yè)技能提出了苛刻要求。如何為測(cè)試項(xiàng)目推薦合適的測(cè)試人員,是保證眾包測(cè)試質(zhì)量的關(guān)鍵。
在近年來(lái),國(guó)內(nèi)外眾多研究人員嘗試將深度學(xué)習(xí)引入到推薦算法領(lǐng)域[2],其中以基于深度神經(jīng)網(wǎng)絡(luò)的協(xié)同推薦模型最有影響力[3-4]。該算法主要是利用深度神經(jīng)網(wǎng)絡(luò)DNN對(duì)高階特征交互行為的學(xué)習(xí)能力來(lái)實(shí)現(xiàn)預(yù)測(cè)和推薦[5]。雖然DNN算法本身具有優(yōu)秀的深層特征提取能力和參數(shù)學(xué)習(xí)能力,但是推薦算法領(lǐng)域的輸入數(shù)據(jù)并不是圖像和音頻領(lǐng)域的那種稠密數(shù)據(jù),推薦算法領(lǐng)域數(shù)據(jù)具有的稀疏性往往導(dǎo)致算法模型陷入局部最優(yōu),導(dǎo)致算法模型推薦效能打折。因此針對(duì)基于深度學(xué)習(xí)的移動(dòng)應(yīng)用眾包測(cè)試推薦算法的研究,必須考慮數(shù)據(jù)稀疏度不同對(duì)模型的影響,并避免算法模型陷入局部最優(yōu)。
本文通過(guò)對(duì)移動(dòng)應(yīng)用眾包測(cè)試推薦機(jī)制進(jìn)行深度分析,發(fā)現(xiàn)解決這一問(wèn)題的關(guān)鍵在于數(shù)據(jù)稠密化過(guò)程中具有封閉式數(shù)據(jù)計(jì)算能力。而解決這一問(wèn)題的關(guān)鍵性技術(shù),堆疊邊緣降噪自動(dòng)編碼器SMDA[6-7]一方面可以對(duì)測(cè)試人員和測(cè)試項(xiàng)目的輸入向量進(jìn)行無(wú)限最大化次數(shù)加噪,另一方面計(jì)算復(fù)雜度低且具有良好的可擴(kuò)展性。然而,SMDA與DNN模型的結(jié)合卻面臨因此需要解決2個(gè)問(wèn)題:①如何利用SMDA來(lái)初始化DNN模型;②通過(guò)何種方式將2個(gè)模型結(jié)合到一起。
針對(duì)上述問(wèn)題,本文提出一種SMDA與DNN相結(jié)合的移動(dòng)應(yīng)用眾包測(cè)試任務(wù)推薦算法。該算法的解決思路是將深度神經(jīng)網(wǎng)絡(luò) DNN 和堆疊邊緣降噪自動(dòng)編碼器SMDA結(jié)合,利用 SMDA 的特征提取能力提高數(shù)據(jù)密度,從而提高 DNN 模型的訓(xùn)練速度。該算法通過(guò) SMDA 算法進(jìn)行數(shù)據(jù)加躁降維操作,提高數(shù) 據(jù)密度,DNN模型在學(xué)習(xí)這些經(jīng)過(guò)加躁和稠密化處理的數(shù)據(jù)時(shí),不僅可以提高訓(xùn)練速度還可以提高泛化能力。
移動(dòng)應(yīng)用眾包測(cè)試平臺(tái)中面向測(cè)試人員推薦測(cè)試項(xiàng)目,需要將合適的測(cè)試項(xiàng)目推薦給測(cè)試人員。而測(cè)試項(xiàng)目本身具有硬性要求和軟性要求2種內(nèi)在需求。其中測(cè)試項(xiàng)目的硬性要求主要包括兩部分:①測(cè)試應(yīng)用本身存在的限制條件,例如操作系統(tǒng)等限制;②應(yīng)用開(kāi)發(fā)商設(shè)置的硬性需求,例如測(cè)試人員等級(jí)等限制條件,利用這些強(qiáng)制條件設(shè)計(jì)一個(gè)項(xiàng)目過(guò)濾器來(lái)縮小項(xiàng)目推薦集的規(guī)模。測(cè)試項(xiàng)目的軟性需求則是將測(cè)試項(xiàng)目推薦給合適的測(cè)試人員,而這些非強(qiáng)制性需求就是推薦算法研究?jī)?nèi)容,通過(guò)深度學(xué)習(xí)算法學(xué)習(xí)測(cè)試用戶特征和測(cè)試項(xiàng)目特征從而實(shí)現(xiàn)推薦。 在SMDA-DNN算法模型中, 首先數(shù)據(jù)庫(kù)中的測(cè)試項(xiàng)目經(jīng)過(guò)過(guò)濾器過(guò)濾,將測(cè)試對(duì)象和過(guò)濾后的測(cè)試項(xiàng)目的畫像特征向量分別輸入2個(gè)SMDA模型,其次利用加噪函數(shù)得到重構(gòu)輸入向量,利用最小方差法計(jì)算SMDA原始輸入和重構(gòu)數(shù)據(jù)的損失,在學(xué)到SMDA編碼映射矩陣和解碼映射矩陣后,將隱藏層學(xué)習(xí)到的深層特征輸出。最后將測(cè)試應(yīng)用和測(cè)試人員的深層特征進(jìn)行鏈接作為DNN的輸入數(shù)據(jù),DNN通過(guò)學(xué)習(xí)該輸入數(shù)據(jù)進(jìn)行預(yù)測(cè)。SMDA和DNN進(jìn)行聯(lián)合訓(xùn)練,當(dāng)DNN損失過(guò)大的時(shí)候會(huì)回過(guò)來(lái)調(diào)整SMDA參數(shù)和DNN參數(shù),從而實(shí)現(xiàn)規(guī)避局部最優(yōu)的問(wèn)題。當(dāng)完成模型訓(xùn)練之后,將測(cè)試用戶和測(cè)試應(yīng)用的特征數(shù)據(jù)輸入模型中,按照計(jì)算的評(píng)分排序預(yù)測(cè),從而實(shí)現(xiàn)推薦。
SMDA本身是一種自動(dòng)編碼器,它通過(guò)加噪降噪來(lái)實(shí)現(xiàn)泛化,通過(guò)比較原始數(shù)據(jù)和輸出數(shù)據(jù)的損失來(lái)后向傳播。在深度學(xué)習(xí)領(lǐng)域常用的損失函數(shù)有 L1 損失函數(shù)、交叉熵?fù)p失函數(shù)和L2 損失函數(shù)等。L1 損失函數(shù)也稱為最小絕對(duì)值偏差,它由于導(dǎo)數(shù)不連續(xù),因此可能存在多個(gè)解,當(dāng)數(shù)據(jù)集出現(xiàn)微笑形狀的時(shí)候,解會(huì)出現(xiàn)一個(gè)較大的跳動(dòng);交叉熵?fù)p失函數(shù)主要應(yīng)用于分類問(wèn)題;L2 損失函數(shù)則也被稱為最小平方誤差,由于平方運(yùn)算放大了誤差,因此受奇異點(diǎn)的影響更大。SMDA 對(duì)移動(dòng)應(yīng)用眾包測(cè)試對(duì)象的特征學(xué)習(xí)本質(zhì)上是一個(gè)回歸問(wèn)題,它希望利用測(cè)試用戶和測(cè)試應(yīng)用的數(shù)據(jù)來(lái)預(yù)測(cè)一個(gè)值,而這個(gè)值就是2個(gè)項(xiàng)目的匹配度。因此本文直接排除了交叉熵?fù)p失函數(shù),而 L1 因?yàn)樽陨硎軘?shù)據(jù)集影響較大, 不穩(wěn)定的特征也被排除在外,所以本文選擇最小平方差作為損失函數(shù)計(jì)算方法。
邊緣降噪自動(dòng)編碼器常用的加噪方式有高斯加噪和無(wú)偏掩碼噪聲2種。高斯噪聲常用在處理連續(xù)值的環(huán)境中,高斯掩碼使用范圍非常廣,也較為常見(jiàn)。而無(wú)偏編碼噪聲主要是在二值環(huán)境中使用,無(wú)偏掩碼噪聲加噪的方式是將輸入數(shù)據(jù)中的每一維度以相同概率重置為0,在加噪的時(shí)候?yàn)榱朔乐乖肼暺?,一般?huì)保證沒(méi)有加噪的維度為數(shù)據(jù)維度大小的1/(1-q)。 本文選擇無(wú)偏掩碼噪聲作為輸入數(shù)據(jù)的加噪方式,使用噪聲等級(jí)為0.3的噪聲對(duì)輸入數(shù)據(jù)進(jìn)行加噪處理。
在SMDA算法中,每層MDA開(kāi)始訓(xùn)練前該層的輸入向量都會(huì)經(jīng)過(guò)加噪函數(shù)進(jìn)行加噪,加噪得到的向量經(jīng)過(guò)該層的訓(xùn)練后得到輸出向量y。利用最小平方誤差作為損失計(jì)算方法得到的移動(dòng)應(yīng)用眾包測(cè)試環(huán)境下的SMDA損失函數(shù)如(1)式。
(1)
(2)
(3)
式中
(4)
(5)
本文設(shè)計(jì)了一個(gè)項(xiàng)目過(guò)濾器來(lái)過(guò)濾測(cè)試項(xiàng)目,將待推薦的測(cè)試應(yīng)用數(shù)量降到千級(jí)別,可以大大提高系統(tǒng)推薦速度。采用的硬性指標(biāo)有:測(cè)試設(shè)備操作系統(tǒng)、測(cè)試人員等級(jí)限制、測(cè)試人員學(xué)歷和測(cè)試人員工作場(chǎng)地。
測(cè)試設(shè)備操作系統(tǒng)條件是測(cè)試用戶的設(shè)備操作系統(tǒng)屬性和測(cè)試用戶的操作系統(tǒng)需要匹配。測(cè)試人員等級(jí)條件是測(cè)試人員等級(jí)需要大于等于應(yīng)用開(kāi)發(fā)商設(shè)定值,測(cè)試人員學(xué)歷表如表1所示;測(cè)試人員學(xué)歷條件是測(cè)試人員學(xué)歷需要不低于應(yīng)用開(kāi)發(fā)商設(shè)定學(xué)歷,其匹配方法如公式(6)所示;測(cè)試人員的工作場(chǎng)地需要符合應(yīng)用開(kāi)發(fā)商的要求。
表1 測(cè)試人員學(xué)歷表
學(xué)歷匹配方式如公式(6)所示。
(6)
uEDU為測(cè)試用戶的學(xué)歷值;tEDU為測(cè)試任務(wù)要求的學(xué)歷值。
移動(dòng)應(yīng)用眾包測(cè)試推薦的測(cè)試應(yīng)用和測(cè)試人員的文本數(shù)據(jù)如何轉(zhuǎn)化為模型能進(jìn)行運(yùn)算的數(shù)據(jù)是開(kāi)始模型訓(xùn)練之前的必要步驟。通過(guò)對(duì)詞向量工具分析比較后,選用了騰訊開(kāi)源的詞向量工具作為文本向量計(jì)算方法。騰訊詞向量工具是騰訊AI實(shí)驗(yàn)室發(fā)布的一款針對(duì)中文語(yǔ)境的詞向量工具,它覆蓋范圍廣,語(yǔ)料豐富,適合于將測(cè)試項(xiàng)目和測(cè)試人員文本信息轉(zhuǎn)化成向量。使用騰訊詞向量工具將如表2所示的測(cè)試人員文本信息轉(zhuǎn)換成詞向量表達(dá)形式,將其作為提取測(cè)試人員深層特征的SMDA的輸入數(shù)據(jù)。
本文使用騰訊詞向量工具將如表3所示的測(cè)試任務(wù)文本信息轉(zhuǎn)換成詞向量表達(dá)形式,將其作為提取測(cè)試任務(wù)深層特征的SMDA的輸入數(shù)據(jù)。
表3 測(cè)試應(yīng)用特征
當(dāng)SMDA對(duì)移動(dòng)應(yīng)用眾包測(cè)試測(cè)試對(duì)象和測(cè)試人員進(jìn)行完深層特征挖掘之后,接下來(lái)就是利用DNN對(duì)測(cè)試用戶和測(cè)試人員的深層特征數(shù)據(jù)進(jìn)行學(xué)習(xí)。使用的DNN網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 DNN結(jié)構(gòu)圖
本文設(shè)計(jì)面向移動(dòng)應(yīng)用眾包測(cè)試領(lǐng)域推薦的DNN,主要解決以下問(wèn)題:①DNN學(xué)習(xí)目標(biāo);②激活函數(shù)選擇;③損失函數(shù)定義;④DNN與SMDA的聯(lián)合訓(xùn)練;⑤學(xué)習(xí)率的選擇。下文將會(huì)針對(duì)上述問(wèn)題的具體細(xì)節(jié)進(jìn)行說(shuō)明。
1) DNN學(xué)習(xí)目標(biāo)
將推薦算法作為一個(gè)多分類問(wèn)題,通過(guò)DNN網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)到一種可以實(shí)現(xiàn)測(cè)試用戶-測(cè)試項(xiàng)目數(shù)據(jù)到交互評(píng)分的非線性函數(shù),其表達(dá)式如(7)式所示。
f(Zij)=softmax(σL(HL…σl(HlZij+bl))))
(7)
式中:Zij為測(cè)試人員i和測(cè)試項(xiàng)目j經(jīng)過(guò)訓(xùn)練后得到的深層特征鏈接向量;softmax為DNN模型softMax層函數(shù);σl為第L層的激活函數(shù);Hl為第L層的權(quán)重向量;bl為第L層偏置。
2) 激活函數(shù)的選擇
激活函數(shù)在DNN網(wǎng)絡(luò)結(jié)構(gòu)中是一個(gè)驅(qū)動(dòng)單元,在DNN網(wǎng)絡(luò)結(jié)構(gòu)中采用非線性的激活函數(shù)可以將DNN的原本的線性變換進(jìn)化成非線性變換,讓DNN的表達(dá)能力更強(qiáng)。常用的激活函數(shù)有Sigmod、tanh和ReLU等。其中,Sigmod存在飽和讓梯度下降函數(shù)失效、輸出不是以0為中心和指數(shù)運(yùn)算耗時(shí)等問(wèn)題。tanh 改進(jìn)了 Sigmod,解決了以0為中心的問(wèn)題,但仍存在過(guò)飽和使梯度下降函數(shù)失效和指數(shù)運(yùn)算耗時(shí)問(wèn)題。ReLu是非飽和函數(shù),可以避免梯隊(duì)下降函數(shù)失效問(wèn)題,并通過(guò)設(shè)置合理學(xué)習(xí)率避免神經(jīng)元失效。通過(guò)分析對(duì)比,這里選擇ReLU作為DNN框架的激活函數(shù),其公式如(8)式所示。
f(x)=max(0,x)
(8)
3) 損失函數(shù)的定義
損失函數(shù)在深度學(xué)習(xí)中用來(lái)衡量模型的期望輸出與模型的實(shí)際輸出之間的差距。采用廣泛使用的最小方差作為面向移動(dòng)應(yīng)用眾包測(cè)試的DNN網(wǎng)絡(luò)的損失函數(shù),其公式如(9)式所示。
(9)
式中:M為樣本數(shù)量;C為測(cè)試對(duì)象和測(cè)試項(xiàng)目交互評(píng)分類別數(shù);tij為樣本i在one-hot映射集中第j個(gè)元素的值;Pij為DNN模型預(yù)測(cè)樣本i在one-hot集合中第j個(gè)元素的值。
4) DNN的訓(xùn)練
本文設(shè)計(jì)的SMDA-DNN框架中的DNN在計(jì)算完損失函數(shù)后會(huì)對(duì)SMDA模型進(jìn)行微調(diào)的同時(shí)也對(duì)自身的參數(shù)進(jìn)行調(diào)整。向后傳播則是利用損失函數(shù)(10)調(diào)整DNN超參數(shù)。采用隨機(jī)梯度下降算法來(lái)實(shí)現(xiàn),其公式如(10)式所示。
(10)
由于推薦算法領(lǐng)域數(shù)據(jù)集稀疏度高,深度學(xué)習(xí)在推薦算法應(yīng)用最容易出現(xiàn)過(guò)擬合現(xiàn)象,因此DNN模型中采用了dropout技術(shù),每次迭代的過(guò)程中都丟失一部分神經(jīng)元;而且為了加快模型收斂速度,防止參數(shù)震蕩,還采用動(dòng)量技術(shù)來(lái)調(diào)節(jié)梯度下降,另外輸入數(shù)據(jù)也分成一個(gè)個(gè)的小批量數(shù)據(jù),提高模型擬合度。
DNN和SMDA的聯(lián)合訓(xùn)練則通過(guò)損失函數(shù)來(lái)反向調(diào)整SMDA的層數(shù),讓SMDA重新訓(xùn)練最開(kāi)始的測(cè)試對(duì)象和測(cè)試項(xiàng)目數(shù)據(jù)。
5) 學(xué)習(xí)率設(shè)計(jì)
學(xué)習(xí)率作為DNN 模型中控制參數(shù)更新的速度控制器,選擇合適的學(xué)習(xí)率可以有效地提高模型的收斂速度,而因?yàn)檫x擇ReLU激活函數(shù),選擇過(guò)大的學(xué)習(xí)率則會(huì)導(dǎo)致模型中很多神經(jīng)元失效。因此學(xué)習(xí)率設(shè)置的相對(duì)保守為0.08,選擇指數(shù)衰減來(lái)調(diào)整學(xué)習(xí)率,使學(xué)習(xí)率隨著訓(xùn)練輪次的增加而降低。
為了評(píng)估基于堆疊邊緣降噪自動(dòng)編碼器的神經(jīng)網(wǎng)絡(luò)推薦算法在實(shí)際環(huán)境中的效果,利用某個(gè)移動(dòng)眾包測(cè)試平臺(tái)的真實(shí)數(shù)據(jù)進(jìn)行試驗(yàn)和分析。使用的數(shù)據(jù)集是針對(duì)獲取到的某個(gè)測(cè)試平臺(tái)實(shí)際數(shù)據(jù)通過(guò)表2~3的特征工程進(jìn)行構(gòu)建的標(biāo)準(zhǔn)數(shù)據(jù)集,并且經(jīng)過(guò)數(shù)據(jù)清洗,得到了適合進(jìn)行算法性能驗(yàn)證的實(shí)驗(yàn)數(shù)據(jù)集。移動(dòng)應(yīng)用眾包測(cè)試項(xiàng)目和測(cè)試人員都有詳細(xì)的結(jié)構(gòu)化數(shù)據(jù),但是無(wú)論是測(cè)試項(xiàng)目數(shù)據(jù)還是測(cè)試人員數(shù)據(jù)都是離散數(shù)據(jù),因此采用詞向量工具來(lái)實(shí)現(xiàn)測(cè)試項(xiàng)目和測(cè)試人員的詞向量表達(dá)。此外,用戶行為記錄數(shù)據(jù)中可能存在隱性反饋,即當(dāng)一個(gè)用戶對(duì)一個(gè)項(xiàng)目打分為0的時(shí)候,可能是系統(tǒng)根本沒(méi)有向該用戶推薦過(guò)這個(gè)項(xiàng)目,可能是用戶不喜歡這個(gè)項(xiàng)目,還有可能是用戶忘記給這個(gè)項(xiàng)目打分,因此在設(shè)計(jì)實(shí)驗(yàn)數(shù)據(jù)集的時(shí)候設(shè)置了項(xiàng)目評(píng)分必須超過(guò)3個(gè)的限制條件,因此實(shí)驗(yàn)數(shù)據(jù)集設(shè)計(jì)如表4所示。
表4 試驗(yàn)數(shù)據(jù)集規(guī)模
實(shí)驗(yàn)硬件環(huán)境如表5所示,算法實(shí)現(xiàn)采用TensorFlow框架實(shí)現(xiàn),TensorFlow框架版本為2.0,操作系統(tǒng)采用Ubuntu 18.04,使用的python版本為3.7.0。
表5 實(shí)驗(yàn)硬件環(huán)境配置表
采用準(zhǔn)確率和召喚率作為算法性能指標(biāo)。準(zhǔn)確率是描述算法預(yù)測(cè)結(jié)果與實(shí)際結(jié)果之間的差距,采用均方根誤差(ERMS)計(jì)算算法的準(zhǔn)確率,ERMS值越小,模型的預(yù)測(cè)能力越強(qiáng)。其計(jì)算公式如(11)式所示
(11)
召回率越高表示該算法得到的測(cè)試結(jié)果越精確。召回率的計(jì)算公式如(12)式所示。
(12)
參與準(zhǔn)確率對(duì)比實(shí)驗(yàn)的推薦算算法模型如下:
1) CDL。CDL是由香港理工大學(xué)研究人員提出的一種融合堆疊降噪自動(dòng)編碼器(簡(jiǎn)稱SDA)和CTR混合的推薦算法框架[8],SDA和CTR通過(guò)貝葉斯圖的方式結(jié)合,它是推薦算法領(lǐng)域最推崇的緊耦合推薦算法模型。
2) AutoSVD++。AutoSVD++同樣是一種耦合模型,將自動(dòng)編碼器和奇異值矩陣分解技術(shù)結(jié)合,利用自動(dòng)編碼器學(xué)習(xí)項(xiàng)目的深層特征,利用奇異值矩陣實(shí)現(xiàn)推薦[9]。
3) SDMA-DNN。本文提出的基于堆疊邊緣降噪自動(dòng)編碼器的移動(dòng)應(yīng)用眾包測(cè)試任務(wù)推薦方法。
在開(kāi)始對(duì)比實(shí)驗(yàn)之前先采用交叉驗(yàn)證的方法對(duì)各個(gè)模型就行參數(shù)優(yōu)化,在各個(gè)數(shù)據(jù)集進(jìn)行對(duì)比實(shí)驗(yàn)。圖2~4是3種對(duì)比模型在3個(gè)數(shù)據(jù)集上的均方根誤差值隨著迭代次數(shù)變化曲線。
圖2 數(shù)據(jù)集TestData1的不同迭代次數(shù)的實(shí)驗(yàn)結(jié)果對(duì)比 圖3 數(shù)據(jù)集TestData2的不同迭代次數(shù)的實(shí)驗(yàn)結(jié)果對(duì)比 圖4 數(shù)據(jù)集TestData3的不同迭代次數(shù)的實(shí)驗(yàn)結(jié)果對(duì)比
由圖2可知,3種模型經(jīng)過(guò)450輪迭代之后收斂,其中SMDA-DNN模型迭代次數(shù)最少,耗時(shí)25小時(shí)23分鐘完成訓(xùn)練,而AutoSVD++雖然耗時(shí)比SMDA-DNN多,但是它比CDL更快。而且SMDA-DNN的均方根誤差比另外2種模型都要低,代表它在數(shù)據(jù)集TestData1上的推薦精確度更高。
由圖3可知,3種模型經(jīng)過(guò)400輪迭代后收斂,其中SMDA-DNN模型迭代次數(shù)最少,耗時(shí)8小時(shí)40分鐘完成訓(xùn)練。AutoSVD++不僅耗時(shí)比SMDA-DNN多,它也比CDL更慢。SMDA-DNN的均方根誤差比另外2種模型都要低,代表它在數(shù)據(jù)集 TestData2 上的推薦精確度更高。
由圖4可知,3種模型經(jīng)過(guò)300輪迭代后收斂,其中SMDA-DNN模型迭代次數(shù)最少,耗時(shí)4小時(shí)53分鐘完成訓(xùn)練,而且在數(shù)據(jù)集4上SMDA訓(xùn)練速度明顯比另外2種有更大的優(yōu)勢(shì),AutoSVD++訓(xùn)練速度和推薦精度最差。SMDA-DNN的均方根誤差比另外2種模型都要低,代表它在數(shù)據(jù)集TestData3上的推薦精確度更高。
從圖2~4可知,SMDA-DNN模型在3種數(shù)據(jù)集上迭代次數(shù)都最少,耗時(shí)也更短,訓(xùn)練速度明顯比另外2種有更大的優(yōu)勢(shì)。
針對(duì)SMDA-DNN的召回率進(jìn)行對(duì)比實(shí)驗(yàn),通過(guò)與不同的模型在不同數(shù)據(jù)集上的召回率對(duì)比實(shí)驗(yàn)驗(yàn)證推薦算法的有效性。
參與對(duì)比實(shí)驗(yàn)的推薦算法模型如下:
1) HRCD。HRCD模型是一種混合推薦模型,它利用自動(dòng)編碼器挖掘物品深層特征信息,利用帶有時(shí)間感知特性的SVD來(lái)實(shí)現(xiàn)分類[10]。
2) CTR。CTR模型是融和模型,它利用主題回歸模型將項(xiàng)目信息中的主題信息提取出來(lái),通過(guò)概率矩陣分解算法實(shí)現(xiàn)評(píng)分預(yù)測(cè)[11]。
3) CDL。上文已經(jīng)介紹的推薦算法領(lǐng)域最推崇的緊耦合推薦算法模型。
4) AutoSVD++。上文已經(jīng)介紹的一種耦合推薦算法模型。
5) SDMA-DNN。提出的一種基于堆疊邊緣降噪自動(dòng)編碼器的移動(dòng)應(yīng)用眾包測(cè)試平臺(tái)的推薦方法。
同樣在開(kāi)始對(duì)比實(shí)驗(yàn)之前先采用交叉驗(yàn)證的方法對(duì)各個(gè)模型進(jìn)行參數(shù)優(yōu)化,在各個(gè)數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)。表6~8是5種對(duì)比模型在3個(gè)數(shù)據(jù)集上的召回率值隨著迭代次數(shù)的變化曲線。
表6 模型在數(shù)據(jù)集TestData1上的Recall@M統(tǒng)計(jì)表 %
表7 模型在數(shù)據(jù)集TestData2上的Recall@M統(tǒng)計(jì)表 %
表8 模型在數(shù)據(jù)集TestData3上的Recall@M統(tǒng)計(jì)表 %
通過(guò)3個(gè)數(shù)據(jù)集的綜合對(duì)比發(fā)現(xiàn)CTR的召回率數(shù)值明顯不如其他的模型,這說(shuō)明深度學(xué)習(xí)在推薦算法領(lǐng)域的確有較大的優(yōu)勢(shì),SMDA-DNN本身是為移動(dòng)應(yīng)用眾包測(cè)試平臺(tái)設(shè)計(jì),采用了SMDA對(duì)輸入數(shù)據(jù)進(jìn)行加密,因此在這3個(gè)數(shù)據(jù)集的表現(xiàn)明顯具有優(yōu)勢(shì),在Recall@M指標(biāo)中相同M時(shí)相比較其他算法模型均有明顯優(yōu)勢(shì),因此提出的SMDA-DNN模型具有現(xiàn)實(shí)可行性。
綜合上述2種指標(biāo)的對(duì)比實(shí)驗(yàn)可以發(fā)現(xiàn),提出的SMDA-DNN模型無(wú)論是在準(zhǔn)確率還是召回率都比對(duì)比模型表現(xiàn)更好,訓(xùn)練時(shí)間也更短,因此算法模型設(shè)計(jì)符合提高模型訓(xùn)練速度和性能的設(shè)計(jì)預(yù)期。
隨著移動(dòng)應(yīng)用眾包測(cè)試平臺(tái)的發(fā)展,平臺(tái)用戶對(duì)推薦精確度提出了更高的要求,本文提出了一種基于堆疊邊緣降噪自動(dòng)編碼器的深度學(xué)習(xí)推薦算法。首先針對(duì)測(cè)試任務(wù)和測(cè)試人員進(jìn)行特征分析,分別設(shè)計(jì)了一套特征體系,利用騰訊開(kāi)源詞向量工具將測(cè)試任務(wù)和測(cè)試人員的特征文本信息轉(zhuǎn)化成數(shù)學(xué)表達(dá)形式,其次將得到的測(cè)試人員和測(cè)試任務(wù)特征數(shù)據(jù)作為堆疊式邊緣降噪自動(dòng)編碼器輸入數(shù)據(jù),最后將SMDA學(xué)習(xí)到的測(cè)試項(xiàng)目和測(cè)試人員的深層特征數(shù)據(jù)結(jié)合作為深度神經(jīng)網(wǎng)的輸入,利用DNN的學(xué)習(xí)能力進(jìn)行預(yù)測(cè)。實(shí)驗(yàn)表明,提出的SMDA-DNN算法相較于CDL和AutoSVD++性能更優(yōu)秀,相較于HRCD、CTR、CDL及AutoSVD++等召回率表現(xiàn)更好。