基于用戶特征聚類聯(lián)合情境特征的多維度應(yīng)用推薦系統(tǒng)
文:吳嘉澍 饒華梟 范小朋 王洋2021年第三期
隨著移動(dòng)設(shè)備的普及、同時(shí)大數(shù)據(jù)時(shí)代數(shù)據(jù)過載問題的日益嚴(yán)重,如何更準(zhǔn)確地根據(jù)用戶的興趣及行為向用戶推薦其可能感興趣的應(yīng)用軟件成為亟待解決的問題?,F(xiàn)有的推薦系統(tǒng)方法大多面臨著推薦內(nèi)容較為單一乏味等問題,且在推薦時(shí)沒有將用戶所處情境加以考慮,導(dǎo)致推薦效果欠佳。該文提出一種基于用戶特征聚類聯(lián)合情境特征的多維度應(yīng)用推薦系統(tǒng)。經(jīng)奇異值分解降維并去噪后的用戶特征數(shù)據(jù)會(huì)被層次聚類為多個(gè)用戶組,之后與用戶所處情境信息聯(lián)合輸入至貝葉斯模型,得到應(yīng)用推薦準(zhǔn)確概率的降序推薦列表,從而實(shí)現(xiàn)更加準(zhǔn)確的應(yīng)用推薦。該文在分布式框架下實(shí)現(xiàn)了所提出的推薦系統(tǒng),使其運(yùn)行高效可靠。經(jīng)驗(yàn)證,經(jīng)過奇異值分解處理后的數(shù)據(jù)組內(nèi)平均差值降低至 0.4,聚類后得到的應(yīng)用推薦召回率提升至 73%,較基于用戶協(xié)同過濾與基于關(guān)聯(lián)規(guī)則的方法有 5%~16% 的顯著提升,且貝葉斯模型的量化指標(biāo)均有約 10% 的提升,充分驗(yàn)證了所提出算法及系統(tǒng)的有效性。
1 引言
隨著數(shù)字時(shí)代的到來以及智能移動(dòng)設(shè)備的廣泛應(yīng)用,人們可獲取的信息量急劇增多,信息過載問題也因此變得日趨嚴(yán)重。為應(yīng)對(duì)信息過載帶來的弊端,將真正有用的信息以個(gè)性化的形式推薦給用戶,推薦系統(tǒng)成為解決信息過載問題的有力工具之一,其應(yīng)用也變得愈發(fā)廣泛,且受到了眾多的關(guān)注和研究。面對(duì)海量的信息,推薦系統(tǒng)可以根據(jù)用戶的信息需求、興趣愛好等,將用戶可能感興趣的信息、產(chǎn)品等進(jìn)行個(gè)性化推薦。與傳統(tǒng)的搜索引擎相比,推薦系統(tǒng)可以通過收集用戶的興趣偏好,進(jìn)行個(gè)性化的學(xué)習(xí),從而自動(dòng)化地發(fā)現(xiàn)用戶的興趣點(diǎn),無需用戶人為輸入其興趣點(diǎn)。這使得推薦系統(tǒng)在引導(dǎo)用戶發(fā)現(xiàn)其信息需求的同時(shí)更加簡(jiǎn)潔易用。
雖然經(jīng)過了長(zhǎng)期的發(fā)展與演化,但推薦系統(tǒng)算法仍存在一些不足。例如,有限的數(shù)據(jù)收集能力無法應(yīng)對(duì)當(dāng)前海量的信息,以及數(shù)據(jù)收集過程較差的連續(xù)性造成較嚴(yán)重的數(shù)據(jù)稀疏性等問題。這勢(shì)必會(huì)給推薦系統(tǒng)算法對(duì)用戶行為的分析、用戶興趣的挖掘帶來困難。同時(shí),現(xiàn)有的絕大多數(shù)推薦系統(tǒng)算法著重于對(duì)用戶和所推薦的商品屬性進(jìn)行分析并輔助推薦,在推薦過程中往往缺失對(duì)用戶所處情境的考慮,如用戶上一個(gè)瀏覽的應(yīng)用類型、用戶在某類應(yīng)用中的啟動(dòng)次數(shù)、停留時(shí)間等,從而使得推薦系統(tǒng)的推薦效果欠佳。此外,推薦系統(tǒng)算法還面臨著推薦同質(zhì)化的問題。絕大多數(shù)的推薦系統(tǒng)更善于推薦與用戶歷史興趣相似的資源,推薦的內(nèi)容缺乏新穎性,同類資源的重復(fù)推薦無法引導(dǎo)用戶發(fā)現(xiàn)更多新的潛在興趣點(diǎn),從而使得推薦系統(tǒng)存在較大的局限性,其推薦準(zhǔn)確性也因此而受損。
針對(duì)上述推薦系統(tǒng)面臨的局限性,以及推薦過程中對(duì)用戶自身所處情境考慮的缺失,本文旨在對(duì)傳統(tǒng)推薦系統(tǒng)算法做進(jìn)一步優(yōu)化,提出基于用戶特征聚類聯(lián)合場(chǎng)景特征的多維度應(yīng)用推薦系統(tǒng)。該推薦系統(tǒng)將根據(jù)不同用戶群體、不同應(yīng)用軟件特征以及用戶所處情境信息為用戶進(jìn)行個(gè)性化的應(yīng)用程序推薦。具體地,首先對(duì)用戶群體的特征矩陣進(jìn)行奇異值分解(Singular Value Decomposition)操作,得到降維并且去噪的用戶向量表示。其中,對(duì)用戶群體特征進(jìn)行的奇異值分解可以去除數(shù)據(jù)中重要性較低的成分,從而對(duì)用戶特征的表示進(jìn)行精簡(jiǎn)。同時(shí),這種精簡(jiǎn)同樣可以使得所提出推薦系統(tǒng)的運(yùn)行更加高效。其次,對(duì)用戶群體的特征向量進(jìn)行層次聚類分析,從而將具有相似用戶特征的用戶聚類,并利用各用戶類的均值向量作為其特征表示。在此基礎(chǔ)上,算法結(jié)合用戶所處情境因素,以用戶為出發(fā)點(diǎn)、情境為補(bǔ)充,依據(jù)貝葉斯模型預(yù)測(cè)最佳的應(yīng)用推薦列表,從而實(shí)現(xiàn)為用戶進(jìn)行更為優(yōu)化的應(yīng)用軟件推薦,提高用戶對(duì)海量信息的使用精準(zhǔn)度與使用效率。
在推薦系統(tǒng)運(yùn)行性能及拓展性能方面,為滿足推薦系統(tǒng)的高并發(fā)處理海量數(shù)據(jù)的需求,本文使用分布式集群服務(wù)器運(yùn)行所提出的系統(tǒng),使得數(shù)據(jù)存儲(chǔ)、模型運(yùn)算等方面的性能有了極大提升。此外,計(jì)算集群使得本文推薦系統(tǒng)具備良好的拓展性,對(duì)推薦系統(tǒng)在運(yùn)行中的穩(wěn)定性起到了重要的作用。
為驗(yàn)證所提出算法的有效性,本文將所提出的基于奇異值分解的用戶特征層次聚類結(jié)合情境特征信息,并利用貝葉斯模型的推薦系統(tǒng)算法與傳統(tǒng)的推薦系統(tǒng)算法進(jìn)行推薦質(zhì)量及模型量化指標(biāo)的效果對(duì)比,從而驗(yàn)證系統(tǒng)的有效性與優(yōu)勢(shì)。
本文將在第 2 小節(jié)介紹所涉及算法的相關(guān)理論研究;第 3 小節(jié)陳述所提出算法的細(xì)節(jié)以及其在現(xiàn)有研究基礎(chǔ)上的創(chuàng)新性;第 4 小節(jié)介紹推薦系統(tǒng)的架構(gòu)與具體實(shí)現(xiàn);第 5 小節(jié)展示本文推薦系統(tǒng)的實(shí)驗(yàn)驗(yàn)證結(jié)果;最后小節(jié)對(duì)本文進(jìn)行概括與總結(jié)。
2 算法介紹及相關(guān)理論研究
2.1 聚類算法在推薦系統(tǒng)中的應(yīng)用
聚類算法是一種探索性的分析方法,在聚類過程中,無需事先給出聚類的具體標(biāo)準(zhǔn)。聚類算法能夠從樣本數(shù)據(jù)出發(fā),自動(dòng)發(fā)現(xiàn)空間實(shí)體的屬性間所具有的關(guān)聯(lián)關(guān)系并進(jìn)行聚類,從而將本身沒有類別的樣本聚集成不同的類(簇),其目的在于使屬于同一個(gè)類的樣本之間能夠彼此相似,而屬于不同類的樣本之間在特征上應(yīng)該足夠疏遠(yuǎn)。同時(shí),聚類算法對(duì)大型數(shù)據(jù)集具有良好的可拓展性,這對(duì)于數(shù)據(jù)需求量大的推薦系統(tǒng)而言是極其適用的。此外,聚類結(jié)果的可解釋性以及運(yùn)行的高效性也為其能夠應(yīng)用在推薦系統(tǒng)中打下了良好的基礎(chǔ)。Shinde 和 Kulkarni提出了基于用戶評(píng)價(jià)聚類的個(gè)性化推薦系統(tǒng)算法。該算法首先將用戶根據(jù)其對(duì)商品的評(píng)價(jià)進(jìn)行分類,之后,對(duì)商品具有類似評(píng)價(jià)、類似興趣與偏好的用戶組進(jìn)行個(gè)性化的商品推薦,從而使得推薦系統(tǒng)的推薦更加精準(zhǔn)。經(jīng)過驗(yàn)證,聚類算法有效地提升了推薦系統(tǒng)對(duì)于商品的推薦質(zhì)量。Hsu則在為學(xué)生推薦英語學(xué)習(xí)課程的推薦系統(tǒng)中運(yùn)用聚類算法,先將具有不同學(xué)習(xí)行為習(xí)慣的學(xué)生聚類為不同的學(xué)生組,隨后優(yōu)化推薦系統(tǒng)算法,為具有不同學(xué)習(xí)習(xí)慣的學(xué)生組推薦適合他們的英語課程,從而使得推薦系統(tǒng)更加人性化。
然而,上述聚類算法應(yīng)用于推薦系統(tǒng)中的工作時(shí),存在兩個(gè)缺點(diǎn)。首先,這些方法均未在聚類前使用矩陣分解的方法對(duì)用戶特征信息進(jìn)行降維并去噪,這使得特征信息中不僅存在冗余以及表示能力弱的特征,而且具有較高的維度,從而損害推薦系統(tǒng)的運(yùn)行效率。其次,這些方法并未充分利用用戶自身所處的情境信息,使得推薦系統(tǒng)在進(jìn)行推薦時(shí)具有局限性。
2.2 情境信息在推薦系統(tǒng)中的應(yīng)用
情境信息可以輔助推薦系統(tǒng)分析用戶的背景、興趣愛好等個(gè)性化信息。在推薦系統(tǒng)模型中,情境可以是用戶打開某類應(yīng)用的次數(shù)、用戶在某類應(yīng)用中的停留時(shí)長(zhǎng)以及用戶上一個(gè)使用的應(yīng)用種類等能夠反映用戶決策的額外信息。例如,通過用戶上一個(gè)使用的應(yīng)用可以輔助預(yù)測(cè)用戶下一個(gè)可能會(huì)使用的應(yīng)用,通過實(shí)時(shí)地獲取用戶所處的情境信息,進(jìn)而在原有用戶數(shù)據(jù)和應(yīng)用數(shù)據(jù)的基礎(chǔ)上,更為人性化、智能化地分析用戶的信息需求,從而提高應(yīng)用推薦的效果。
然而,當(dāng)前基于情境因素的推薦系統(tǒng)算法均利用用戶情境信息來分析所推薦產(chǎn)品的特征,而并非對(duì)用戶自身喜好特征進(jìn)行分析。Hu等在為用戶推薦電視節(jié)目的推薦系統(tǒng)中借助了用戶瀏覽歷史、購買歷史、搜索歷史甚至是用戶鼠標(biāo)移動(dòng)等用戶情境信息,對(duì)電視節(jié)目特征進(jìn)行分析,并將電視節(jié)目更好地推薦給用戶。而 Abbas等則利用 YouTube 視頻的用戶評(píng)分與評(píng)價(jià)信息,獲得對(duì)視頻更好的特征分析與定位,從而輔助推薦系統(tǒng)為用戶推薦更加準(zhǔn)確、合適的 YouTube 視頻。
然而,上述算法均利用用戶情境信息分析產(chǎn)品的特征,而現(xiàn)有的推薦系統(tǒng)算法較少有利用用戶情境信息對(duì)用戶喜好進(jìn)行分析。此外,用戶評(píng)分、評(píng)價(jià)等信息不僅需要用戶的額外參與,而且不同用戶擁有不同的評(píng)分、評(píng)價(jià)標(biāo)準(zhǔn),這導(dǎo)致此類用戶情境信息收集困難,且利用難度大,從而對(duì)推薦系統(tǒng)的推薦效果產(chǎn)生影響。
3 算法設(shè)計(jì)
為了更加準(zhǔn)確高效地為用戶進(jìn)行應(yīng)用推薦,本文提出了基于用戶特征聚類聯(lián)合情境特征的多維度推薦系統(tǒng)。首先,對(duì)用戶特征進(jìn)行奇異值分解;然后,對(duì)分解后的用戶特征進(jìn)行層次聚類操作,并用每一個(gè)用戶類的均值向量作為代表該類用戶的特征信息;最后,結(jié)合用戶所處情境信息,利用貝葉斯模型,對(duì)用戶可能感興趣的應(yīng)用進(jìn)行預(yù)測(cè)并按照概率降序排序,形成應(yīng)用推薦列表。
3.1 用戶特征奇異值分解
首先,推薦系統(tǒng)所需的用戶特征將以矩陣形式進(jìn)行初始化。每一個(gè)用戶都使用 T 維的向量表示該用戶的 T 個(gè)特征(A1-AT),如年齡、性別、愛好、所在地區(qū)等。因此,N 個(gè)用戶(U1-UN)將構(gòu)成一個(gè)N行T列的用戶特征矩陣,如圖1所示。
然而,對(duì)于表示用戶特征的 T 個(gè)特征維度而言,并非每個(gè)特征維度都能有效地用來表示用戶信息,其中部分特征包含噪聲、或是大量的冗余信息,從而使得其不具備良好的表示能力。同時(shí),不同特征也擁有不同的重要程度,并非所有的特征維度在表示用戶時(shí)都具有相同的重要程度。此外,初始時(shí)的特征維度 T 可能較大,從而造成用戶特征矩陣維度較高,若直接將龐大的用戶特征矩陣輸入至推薦系統(tǒng)算法,將使得算法運(yùn)行效率較低。為解決上述問題,本文算法使用奇異值分解算法對(duì)用戶特征矩陣進(jìn)行分解,從而達(dá)到降維和去噪的效果。
奇異值分解算法可以將用戶-特征矩陣M分解為用戶-精簡(jiǎn)特征空間矩陣 U、奇異值對(duì)角矩陣Σ 和精簡(jiǎn)特征空間-特征矩陣 V 的矩陣乘積,如公式(1)所示。通過奇異值分解操作,用戶特征表示能力最強(qiáng)的一部分特征將會(huì)被保留,而特征中影響程度不大或表示能力不強(qiáng)的次要特征將會(huì)被剔除。通過將主要的影響因素保留,可以使得特征具有對(duì)用戶更強(qiáng)的表示能力。此外,在經(jīng)過奇異值分解后,特征維度的下降也使得所生成的用戶-精簡(jiǎn)特征空間矩陣 U 擁有較低的維數(shù),從而使得后續(xù)的推薦運(yùn)算變得更加高效。
在對(duì)用戶特征矩陣進(jìn)行奇異值分解之后,算法基于用戶特征使用層次聚類算法(Hierarchical Clustering)對(duì)用戶進(jìn)行聚類,從而將用戶們聚類到特征相似、興趣愛好相仿的用戶組中。從下至上的層次聚類算法的算法流程如圖2所示。首先,算法將所有用戶數(shù)據(jù)都初始化為一個(gè)葉子節(jié)點(diǎn)。在每一次迭代中,算法會(huì)計(jì)算葉子節(jié)點(diǎn)之間的相似性(如歐氏距離);隨后,葉子節(jié)點(diǎn)之間的這種相似性信息將決定它們是否會(huì)被合并至新的聚類簇。層次聚類算法會(huì)不斷地進(jìn)行迭代合并,直到迭代終止條件達(dá)成,比如算法已經(jīng)生成指定數(shù)目的聚類簇,或聚類簇之間的距離滿足一定的條件。
本文算法將奇異值分解后的用戶特征信息輸入至層次聚類算法中進(jìn)行迭代,直到每組聚類簇的均值向量之間的距離都大于或等于一個(gè)距離閾值 λ 時(shí),停止聚類迭代。每一次迭代后,各個(gè)聚類簇的均值向量之間的歐式距離均會(huì)被計(jì)算。在圖 3 中,圖左側(cè)的 λ 值表示當(dāng)前聚類狀態(tài)下各個(gè)類的均值向量之間的最小距離。若預(yù)先設(shè)定的聚類迭代停止閾值 λ 為 1.5,則聚類算法會(huì)在生成4個(gè)聚類簇時(shí)停止迭代,因?yàn)榇藭r(shí)聚類簇之間的歐式距離均已大于預(yù)先設(shè)定的閾值 λ。此時(shí),用戶G1、G2、G8會(huì)被分為一類,用戶G3、G4、G9會(huì)被分為一類,用戶G5和G7會(huì)被分為一類,用戶G6自成一類。迭代停止條件的滿足意味著每個(gè)用戶聚類簇之間已經(jīng)擁有一定的差異性,從而能夠避免用戶被模棱兩可地錯(cuò)分入其本不應(yīng)屬于的用戶組。
通過這種方式,雖然同處一類的用戶具有大體相似的特征,但處于同類的用戶與用戶之間也多少存在一定的差異性與多樣性,并非完全相同。對(duì)每一類用戶的特征取均值向量可以很好地將同類用戶的特征進(jìn)行融合,在不破壞用戶原有興趣取向的同時(shí)適當(dāng)?shù)匾胪愑脩魩淼亩鄻有?,從而使得算法可以借助與某一用戶興趣大體相同的同類用戶的平均特征,來幫助該用戶發(fā)現(xiàn)同類用戶具有的其他興趣點(diǎn),從而引導(dǎo)該用戶發(fā)現(xiàn)同類用戶可能擁有的潛在興趣,使得推薦算法更加有效。
3.3 用戶特征與情境因素的聯(lián)合及貝葉斯預(yù)測(cè)模型的使用
與傳統(tǒng)的推薦系統(tǒng)算法不同的是,本文算法在利用數(shù)據(jù)特征進(jìn)行分析與應(yīng)用推薦時(shí),不再局限于用戶自身特征(如年齡、性別、愛好等)。在傳統(tǒng)的用戶特征與應(yīng)用特征的基礎(chǔ)上,通過聯(lián)合實(shí)時(shí)用戶情境信息,實(shí)現(xiàn)利用多個(gè)維度的信息進(jìn)行推薦的應(yīng)用推薦系統(tǒng)。通過聯(lián)合用戶情境因子信息,推薦系統(tǒng)可以將實(shí)時(shí)獲得的用戶情境與原有的用戶特征融合為多維度的特征空間,從而使得推薦系統(tǒng)更人性化、智能化地分析用戶所需,優(yōu)化應(yīng)用推薦效果。本文算法所使用的部分用戶情境特征及其表示示例見表 1。
根據(jù)公式(3),算法可以計(jì)算出對(duì)于一個(gè)給出的用戶特征及其所處情境特征,不同的應(yīng)用被使用的概率。公式(3)中,按照 A
被使用條件下U的概率、A被使用條件下S的概率、以及U 和S同時(shí)發(fā)生的概率,可計(jì)算得到在給定用戶特征U
與情境特征S的情況下,不同應(yīng)用A被使用的概率值。其中,所得到的概率越高,該應(yīng)用就越值得被推薦。故概率最大的前K個(gè)應(yīng)用,即是最值得被推薦的K個(gè)應(yīng)用。由此,算法得到一個(gè)以概率降序排列的應(yīng)用推薦列表。
同時(shí),所提出算法可以接受并處理用戶所處情境信息容易隨時(shí)間發(fā)生變化的特點(diǎn),算法可以通過用戶反饋的實(shí)時(shí)用戶行為信息,如直接點(diǎn)擊、收藏、停留時(shí)長(zhǎng)長(zhǎng)短、點(diǎn)擊次數(shù)等,更新公式(3)中的概率信息,從而達(dá)到算法的實(shí)時(shí)更新,以使得應(yīng)用推薦具有更好的實(shí)時(shí)性。
3.4 算法整體流程
本文算法的整體流程如圖 4 中花括號(hào)所指部分所示。首先,算法對(duì)用戶數(shù)據(jù)進(jìn)行奇異值分解,并在分解得到的降維并去噪的用戶特征上進(jìn)行層次聚類迭代,直到滿足終止條件,得到距離較遠(yuǎn)的各組用戶聚類簇,并用各簇的均值向量作為該聚類簇中的用戶特征;然后,利用貝葉斯模型,聯(lián)合用戶特征與情境特征,對(duì)應(yīng)用被使用的概率進(jìn)行預(yù)測(cè)并排序,最終形成應(yīng)用推薦列表。
4 系統(tǒng)架構(gòu)與實(shí)現(xiàn)
4.1 系統(tǒng)總體架構(gòu)
本文系統(tǒng)的總體架構(gòu)分為 5 個(gè)部分,如圖 4 所示。位于最底層的基礎(chǔ)數(shù)據(jù)層主要包含用戶基礎(chǔ)屬性數(shù)據(jù),如年齡、性別、所在地、手機(jī)設(shè)備屬性等基礎(chǔ)數(shù)據(jù);應(yīng)用的基本信息,如某款應(yīng)用屬于某類、評(píng)分高低等,以及用戶訪問應(yīng)用的數(shù)據(jù),即算法所需要用到的情境信息。為獲取所需數(shù)據(jù)信息,需要進(jìn)行數(shù)據(jù)采集,其主要目標(biāo)是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)同步至數(shù)據(jù)存儲(chǔ)系統(tǒng)中進(jìn)行保存,供下一步處理和使用。
本文推薦系統(tǒng)的第 2 層為離線計(jì)算層,其職責(zé)是進(jìn)行數(shù)據(jù)處理與模型訓(xùn)練。首先,對(duì)所收集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗與整理;其次,按照本文第 3 小節(jié)的算法流程進(jìn)行模型訓(xùn)練;最后,形成可以為用戶推薦應(yīng)用的模型。算法流程如圖 4 中圓括號(hào)所指部分所示。
推薦系統(tǒng)的第 3~5 層分別為存儲(chǔ)及接口封裝層、業(yè)務(wù)處理層和應(yīng)用層。首先,系統(tǒng)會(huì)在推薦的排序內(nèi)容基礎(chǔ)上做數(shù)據(jù)接口的封裝;然后,如有必要,業(yè)務(wù)處理層將按照市場(chǎng)變化等信息對(duì)推薦內(nèi)容信息做必要的微調(diào);最后,將業(yè)務(wù)干預(yù)的推薦數(shù)據(jù)傳送至前端用戶。整套系統(tǒng)需滿足以下幾點(diǎn)要求:
(1)建立及時(shí)、全面的互聯(lián)網(wǎng)信息處理能力,通過探索網(wǎng)絡(luò)資源對(duì)各種不同類型的常用應(yīng)用軟件信息進(jìn)行基礎(chǔ)抓取;
(2)基于云計(jì)算框架,建立分布式存儲(chǔ)、大規(guī)模數(shù)據(jù)并行計(jì)算水平拓展的技術(shù)能力,實(shí)現(xiàn)對(duì)系統(tǒng)橫向擴(kuò)展,方便進(jìn)行大量數(shù)據(jù)的流式處理;
(3)建立高內(nèi)聚低耦合的架構(gòu),復(fù)用基礎(chǔ)能力,完善系統(tǒng)之間的接口設(shè)計(jì),減少抓取、分析、可視化以及應(yīng)用之間的強(qiáng)關(guān)聯(lián);
(4)在增強(qiáng)推薦的準(zhǔn)確度時(shí),不斷提高用戶體驗(yàn),利用所提出算法,提高推薦的精確度和召回率。
本文系統(tǒng)通過在傳統(tǒng)推薦系統(tǒng)的基礎(chǔ)上做出優(yōu)化,將奇異值分解后的用戶特征進(jìn)行聚類,并與情境信息聯(lián)合,通過貝葉斯模型分析預(yù)測(cè)用戶所需要的應(yīng)用,實(shí)現(xiàn)應(yīng)用推薦效果的增強(qiáng)。同時(shí),系統(tǒng)充分考慮了運(yùn)行性能及擴(kuò)展性,以及系統(tǒng)應(yīng)對(duì)實(shí)時(shí)數(shù)據(jù)反饋補(bǔ)充、快速適應(yīng)用戶的特征屬性變化的實(shí)時(shí)處理能力,通過在分布式架構(gòu)上構(gòu)建應(yīng)用推薦系統(tǒng),實(shí)現(xiàn)海量數(shù)據(jù)并行化處理,從而有效提高系統(tǒng)的吞吐量性能。
4.2 系統(tǒng)構(gòu)建
在本文所提出的多維度應(yīng)用推薦系統(tǒng)的構(gòu)建過程中,使用了如下技術(shù):本文系統(tǒng)采用MySQ存儲(chǔ)用戶屬性數(shù)據(jù),采用 HBase存儲(chǔ)用戶畫像數(shù)據(jù)。存儲(chǔ)數(shù)據(jù)時(shí)使用 HDFS分布式文件系統(tǒng)。系統(tǒng)采用了基于 Spark搭建的底層平臺(tái),利用 Spark Streaming 進(jìn)行實(shí)時(shí)計(jì)算、特征向量計(jì)算與排序列表的生成。系統(tǒng)在轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)使用 Kafka實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的集群轉(zhuǎn)發(fā)。因?yàn)樗鶚?gòu)建的系統(tǒng)需要對(duì)數(shù)據(jù)庫進(jìn)行大量的復(fù)雜數(shù)據(jù)檢索,所以,使用 ElasticSearch分布式系統(tǒng)架構(gòu)成為一個(gè)良好的解決方案。此外,本文系統(tǒng)的可視化平臺(tái)使用流行的 J2EE應(yīng)用架構(gòu),平臺(tái)層采用 JAVA 標(biāo)準(zhǔn)庫以及 J2EE 服務(wù)器,J2EE 項(xiàng)目在 Tomcat服務(wù)上運(yùn)行,通過 SpringMVC 框架集成實(shí)現(xiàn)網(wǎng)頁開發(fā)。通過利用上述技術(shù)并合理協(xié)調(diào)配合,使得本文系統(tǒng)可以高效地滿足所需的要求。本文所構(gòu)建的系統(tǒng)可以支持系統(tǒng)實(shí)時(shí)獲取并處理數(shù)據(jù),系統(tǒng)在采集與處理數(shù)據(jù)時(shí),可以支持至少百萬級(jí)的數(shù)據(jù)處理吞吐量。在進(jìn)行應(yīng)用推薦時(shí),本系統(tǒng)可以支持至少百級(jí)別的并發(fā)操作,并保持系統(tǒng)可用。在數(shù)據(jù)實(shí)時(shí)查詢時(shí),時(shí)延不會(huì)超過 4 s。與此同時(shí),為滿足系統(tǒng)拓展性的要求,增加系統(tǒng)處理數(shù)據(jù)的能力,本文系統(tǒng)額外準(zhǔn)備了備用服務(wù)器,以避免出現(xiàn)數(shù)據(jù)處理量過大而導(dǎo)致的負(fù)荷超限。
5 實(shí)驗(yàn)結(jié)果分析
本文對(duì)所實(shí)現(xiàn)的應(yīng)用推薦系統(tǒng)進(jìn)行了充分且系統(tǒng)的測(cè)試,首先驗(yàn)證了所采用的奇異值分解與層次聚類具有良好的效果,隨后從推薦結(jié)果與度量指標(biāo)兩個(gè)層面驗(yàn)證了所提出算法整體的有效性。同時(shí),本文還對(duì)系統(tǒng)性能進(jìn)行了測(cè)試,從而驗(yàn)證了系統(tǒng)的高效性與穩(wěn)定性。
5.1 奇異值分解前后聚類有效性對(duì)比
為驗(yàn)證在層次聚類前進(jìn)行奇異值分解的有效性,本文分別對(duì)進(jìn)行與未進(jìn)行奇異值分解的用戶特征進(jìn)行層次聚類,并隨機(jī)抽取用戶 #1056 所在的用戶聚類簇,計(jì)算同組用戶的屬性平均差值。經(jīng)過對(duì)比,層次聚類前未進(jìn)行奇異值分解的數(shù)據(jù)平均差值可高達(dá) 0.6,而經(jīng)過奇異值分解處理后數(shù)據(jù)的差值范圍最大為 0.4。這表明用戶特征數(shù)據(jù)在經(jīng)過奇異值分解消除冗余信息之后進(jìn)行層次聚類,其得到的聚類簇內(nèi)保留了原始數(shù)據(jù)的主要信息,且數(shù)據(jù)更加精煉,聚類效果更好。圖5則進(jìn)一步地對(duì)算法的聚類效果進(jìn)行了可視化:經(jīng)過奇異值分解后進(jìn)行層次聚類的聚類簇中出現(xiàn)錯(cuò)分的次數(shù)得到了明顯的降低,這表明經(jīng)過奇異值分解后進(jìn)行聚類的有效性。
5.2 基于奇異值分解的層次聚類與傳統(tǒng)聚類算法
召回率效果對(duì)比為進(jìn)一步驗(yàn)證基于奇異值分解的層次聚類算法的有效性,將本文方法與傳統(tǒng)的機(jī)器學(xué)習(xí)聚類算法進(jìn)行對(duì)比,并以用戶聚類結(jié)果召回率作為衡量不同算法有效性的指標(biāo)。本文在基于Hadoop生態(tài)系統(tǒng)的Mahout上做用戶聚類,如圖 6 所示,對(duì)比試驗(yàn)中所采用的對(duì)比方法分別為決策樹模型、K-means 算法以及數(shù)據(jù)未經(jīng)過奇異值分解的傳統(tǒng)層次聚類方法。通過將進(jìn)行了去除錯(cuò)誤數(shù)據(jù)等預(yù)處理步驟之后的用戶數(shù)據(jù)集 M′輸入到不同聚類算法中,使用不同聚類算法得到 R1、R2、R3 與 R4 四種不同的聚類結(jié)果。其中,聚類結(jié)果 R4 是將數(shù)據(jù) M′先通過奇異值分解算法進(jìn)行數(shù)據(jù)分解,之后輸入至層次聚類算法中得到的聚類結(jié)果。
在驗(yàn)證過程中,本文采用 10 份交叉驗(yàn)證的方式,分別對(duì)上述 3 種傳統(tǒng)聚類算法以及本文算法進(jìn)行驗(yàn)證,并計(jì)算召回率。
如圖 6~7 所示,采用傳統(tǒng)的 K-means 聚類方式,平均召回率約為 57%,決策樹算法的平均召回率則達(dá) 60% 左右。層次聚類前未進(jìn)行奇異值分解的方法的平均召回率約為 68%,而進(jìn)行奇異值分解后再進(jìn)行層次聚類的方法的平均召回率可達(dá)73%左右,比前者提高約 5%。這充分表明本文方法相較于傳統(tǒng)聚類算法的有效性。
5.3 推薦算法推薦結(jié)果質(zhì)量對(duì)比與分析
如圖 4 算法流程圖所示,在用戶特征數(shù)據(jù)通過奇異值分解并進(jìn)行層次聚類后,算法將采用每一個(gè)用戶聚類簇的均值向量代表該用戶聚類簇中的用戶特征。隨后,算法將聯(lián)合情境特征,通過貝葉斯模型輸出最后為用戶推薦的應(yīng)用結(jié)果列表。
為將本文算法與傳統(tǒng)算法推薦結(jié)果的質(zhì)量進(jìn)行對(duì)比分析,本文采用基于協(xié)同過濾的推薦算法以及基于關(guān)聯(lián)規(guī)則的推薦算法作為對(duì)比方法。在基于協(xié)同過濾的推薦算法中,算法通過分析其他具有相似特征的用戶的喜好,為用戶推薦可能喜歡的應(yīng)用。而基于關(guān)聯(lián)規(guī)則的推薦算法則利用發(fā)掘到的應(yīng)用之間的關(guān)聯(lián)規(guī)則,根據(jù)用戶使用的部分應(yīng)用信息為用戶推薦可能感興趣的應(yīng)用。在所對(duì)比的兩種方法中,均未利用奇異值分解處理特征表示、層次聚類以及用戶所處的情境信息。表 2 為不同算法針對(duì)同一用戶的推薦效果。
以所收集的數(shù)據(jù)集中隨機(jī)抽取的用戶 #0013 作為示例,在分布式框架上運(yùn)行不同算法的預(yù)測(cè)應(yīng)用結(jié)果中,概率值最高的前 5 個(gè)推薦結(jié)果的數(shù)據(jù)如表 2 所示。在 3 種方法中,只有本文方法為用戶推薦的應(yīng)用與用戶實(shí)際所使用的應(yīng)用相匹配,且相比其他算法而言,本文算法所推薦的其他應(yīng)用也與用戶實(shí)際所使用的應(yīng)用具有較高的相關(guān)性,表明本文方法在推薦效果上的優(yōu)越性。
5.4 推薦算法推薦結(jié)果質(zhì)量量化指標(biāo)對(duì)比與分析
為進(jìn)一步對(duì)本文算法與現(xiàn)有傳統(tǒng)的推薦算法進(jìn)行推薦結(jié)果質(zhì)量的量化對(duì)比,本文根據(jù)應(yīng)用推薦的相關(guān)性計(jì)算了平均絕對(duì)誤差(Mean Absolute Error,MAE),即實(shí)際使用應(yīng)用與推薦應(yīng)用的匹配程度。推薦應(yīng)用與實(shí)際使用應(yīng)用類別一致時(shí)的MAE 值低于類別不同時(shí)的MAE值,故更小的MAE值意味著更高的搜索結(jié)果質(zhì)量。此外,貝葉斯模型產(chǎn)生的均方根誤差(Root Mean SquaredError,RMSE)與推薦結(jié)果的 Recall 值也被用作算法推薦結(jié)果質(zhì)量的量化對(duì)比指標(biāo)。其中,更小的RMSE值與更大的 Recall 值都表明模型具有更理想的效果。實(shí)驗(yàn)對(duì)比結(jié)果如圖8所示。
在驗(yàn)證過程中,本文采用了常用的 10 份交叉驗(yàn)證方法,并對(duì) 10 組結(jié)果求平均結(jié)果。從圖 8 可明顯看出,與傳統(tǒng)推薦算法對(duì)比,本文算法擁有最小的 MAE 與 RMSE 值,且擁有最大的 Recall 值。本文方法的 MAE、RMSE 值都小于 0.6,基于關(guān)聯(lián)規(guī)則算法的 RMSE 值則約為 0.7,而對(duì)于基于協(xié)同過濾的算法而言,其 RMSE 值則接近0.8。與此同時(shí),本文算法所產(chǎn)生的 Recall 值較兩種對(duì)比方法而言也有較大提升。因此,這充分地從量化指標(biāo)的角度表明了本文算法推薦結(jié)果的有效性與準(zhǔn)確性。
5.5 推薦系統(tǒng)運(yùn)行性能分析
在實(shí)際測(cè)試過程中,本文還對(duì)所構(gòu)建系統(tǒng)的性能進(jìn)行了充分的測(cè)試與分析,以檢測(cè)其在真實(shí)運(yùn)行環(huán)境下的系統(tǒng)負(fù)載能力。
在性能檢測(cè)過程中,通過添加 2000 個(gè)虛擬用戶,以此測(cè)試系統(tǒng)的平均響應(yīng)時(shí)間。測(cè)試單頁面用戶點(diǎn)擊時(shí)的事務(wù)平均響應(yīng)時(shí)間情況如圖9所示。經(jīng)檢測(cè),系統(tǒng)功能的平均響應(yīng)時(shí)間約為1.4s,最長(zhǎng)響應(yīng)時(shí)間約為3.8s,最短響應(yīng)時(shí)間約0.1s,符合系統(tǒng)的并發(fā)要求。
與此同時(shí),本文還對(duì)所構(gòu)建系統(tǒng)進(jìn)行了性能測(cè)試并將結(jié)果匯總在表 3 中。測(cè)試結(jié)果充分表明了所構(gòu)建系統(tǒng)的高效性與可靠性。
綜合來看,本文推薦系統(tǒng)在應(yīng)用推薦方面相較于所對(duì)比方法而言具有較大的提升,推薦有效性較高,且在系統(tǒng)性能方面高效可靠。通過實(shí)驗(yàn)驗(yàn)證與結(jié)果分析,相比于對(duì)比方法而言,本文系統(tǒng)在算法上的優(yōu)化使得應(yīng)用推薦更為準(zhǔn)確,從而為用戶更好地推薦適合的應(yīng)用。同時(shí),系統(tǒng)還可以接受實(shí)時(shí)更新的數(shù)據(jù),智能化程度提升,從而減少運(yùn)營(yíng)復(fù)雜度。最后,本文所使用的系統(tǒng)架構(gòu)確保了系統(tǒng)運(yùn)行的高效性、可靠性與高擴(kuò)展性,使得系統(tǒng)可以被更廣泛的應(yīng)用。
5.6 討論與分析
本文通過在應(yīng)用推薦系統(tǒng)中利用奇異值分解算法對(duì)用戶特征信息進(jìn)行降維去噪、利用層次聚類算法對(duì)用戶信息進(jìn)行聚類,同時(shí)考慮用戶所處情境信息,從而提升應(yīng)用推薦系統(tǒng)為用戶推薦應(yīng)用的準(zhǔn)確性。相較于文獻(xiàn)中未在聚類前使用矩陣分解對(duì)用戶特征信息進(jìn)行降維并去噪的方法而言,本文方法通過奇異值分解算法,既去除了用戶特征信息中的冗余成分,增強(qiáng)了特征信息的表示能力,又提升了算法的運(yùn)行效率。
此外,對(duì)用戶特征信息進(jìn)行層次聚類,并利用聚類均值向量作為用戶類的表示有效地在不破壞用戶組大體特征的情況下提升了特征的多樣性,從而提升了推薦系統(tǒng)的推薦有效性。相較于文獻(xiàn)中利用用戶情境信息分析產(chǎn)品特征的方法,本文方法利用用戶情境信息分析用戶的喜好特征,從而更好地輔助推薦系統(tǒng)為用戶推薦更加適合的應(yīng)用。綜上所述,本文推薦系統(tǒng)算法相較于上文所述對(duì)比方法具有更好的應(yīng)用推薦能力。
6 總結(jié)
本文針對(duì)傳統(tǒng)的推薦系統(tǒng)方法在為用戶推薦應(yīng)用時(shí)所面臨的對(duì)用戶所處情境考慮的缺失等問題,提出一種新的基于用戶特征聚類聯(lián)合情境特征的多維度推薦系統(tǒng)。所提出推薦系統(tǒng)使用的算法的關(guān)鍵技術(shù)在于,首先利用奇異值分解對(duì)用戶特征進(jìn)行降維、去噪,使得分解后的用戶數(shù)據(jù)不再冗余,具有更強(qiáng)的表示能力,且更低的維度使得所提出推薦系統(tǒng)運(yùn)行更加高效。隨后,基于分解過的用戶特征對(duì)用戶進(jìn)行層次聚類,并用聚類簇的均值向量作為代表該聚類簇中用戶的特征信息。這種做法在不破壞聚類簇內(nèi)用戶相似性的基礎(chǔ)上通過求聚類簇的均值將簇內(nèi)用戶的特征融合,適當(dāng)為用戶特征引入多樣性,從而避免推薦過于乏味單一導(dǎo)致長(zhǎng)久以來用戶對(duì)自己感興趣的事物產(chǎn)生疲勞。之后,算法利用得到的用戶特征聯(lián)合情境特征信息組成多維度的特征并利用貝葉斯模型對(duì)推薦應(yīng)用的概率進(jìn)行預(yù)測(cè),從而得到應(yīng)用關(guān)于推薦概率降序排列的推薦應(yīng)用列表,實(shí)現(xiàn)向用戶進(jìn)行更加高質(zhì)量的應(yīng)用推薦。與此同時(shí),算法可以應(yīng)對(duì)隨時(shí)間發(fā)生改變的用戶情境特征,從而使得推薦具有實(shí)時(shí)性。
本文基于分布式架構(gòu)實(shí)現(xiàn)了所提出的推薦系統(tǒng),并通過充分的測(cè)試數(shù)據(jù)驗(yàn)證,表明系統(tǒng)在具備準(zhǔn)確的應(yīng)用推薦能力的同時(shí),同樣具備運(yùn)行的高效性與穩(wěn)定性,為所提出推薦系統(tǒng)的應(yīng)用打下堅(jiān)實(shí)基礎(chǔ)。
文章轉(zhuǎn)載自《集成技術(shù)》
中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:
凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊
關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊
關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊
掃碼關(guān)注小程序
時(shí)刻關(guān)注行業(yè)動(dòng)態(tài)
- 運(yùn)動(dòng)控制
- 伺服系統(tǒng)
- 機(jī)器視覺
- 機(jī)械傳動(dòng)
- 編碼器
- 直驅(qū)系統(tǒng)
- 工業(yè)電源
- 電力電子
- 工業(yè)互聯(lián)
- 高壓變頻器
- 中低壓變頻器
- 傳感器
- 人機(jī)界面
- PLC
- 電氣聯(lián)接
- 工業(yè)機(jī)器人
- 低壓電器
- 機(jī)柜