本發(fā)明涉及一種融合供需鏈的個(gè)性化汽車(chē)推薦方法及系統(tǒng)。
背景技術(shù):
個(gè)性化推薦系統(tǒng)廣泛用于向用戶提供準(zhǔn)確的建議,幫助其高效地做出產(chǎn)品購(gòu)買(mǎi)決策。最常用的推薦方法是基于用戶的歷史消費(fèi)信息,向用戶推薦將來(lái)可能購(gòu)買(mǎi)的產(chǎn)品,這通常被看作是一個(gè)矩陣或者張量的補(bǔ)全任務(wù)。但事實(shí)上,這些歷史信息是非常有限的,往往無(wú)法為推薦系統(tǒng)提供充分有效的信息。
在個(gè)性化汽車(chē)推薦領(lǐng)域,這是一個(gè)張量補(bǔ)全的任務(wù)。張量的三個(gè)維度分別對(duì)應(yīng)用戶,車(chē)型和評(píng)價(jià)指標(biāo),張量中的元素代表用戶對(duì)車(chē)型的某一評(píng)價(jià)指標(biāo)的打分,反映出三者之間的聯(lián)系。我們的任務(wù)是根據(jù)歷史打分記錄預(yù)測(cè)出用戶對(duì)其他車(chē)型的各個(gè)評(píng)價(jià)指標(biāo)的打分,從而根據(jù)完整的打分張量向用戶推薦可能喜愛(ài)的車(chē)型產(chǎn)品。然而這個(gè)歷史打分張量通常是非常稀疏的,沒(méi)有考慮到其他的輔助信息,無(wú)法提供足夠有價(jià)值的推薦。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的上述不足,本發(fā)明的目的就是提供一種融合供需鏈的個(gè)性化汽車(chē)推薦方法及系統(tǒng),它利用用戶與車(chē)型的購(gòu)買(mǎi)關(guān)系,車(chē)型與所屬的車(chē)系的從屬關(guān)系,車(chē)系與制造商的生產(chǎn)關(guān)系以及汽車(chē)制造商和汽車(chē)零部件供應(yīng)商之間的供應(yīng)關(guān)系形成的供需鏈,為推薦系統(tǒng)提供更多輔助信息。此外,該方法還還利用用戶的購(gòu)車(chē)目的,車(chē)型所具有的配置信息來(lái)補(bǔ)充供需鏈信息,發(fā)現(xiàn)不同實(shí)體之間隱含的關(guān)系,為用戶提供準(zhǔn)確的個(gè)性化推薦。該方法利用基于ADMM(Alternating Direction Method of Multipliers,即交替方向乘子法)的耦合張量-矩陣分解方法,更快速地預(yù)測(cè)打分張量中的缺失值,并得到更好的預(yù)測(cè)結(jié)果。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種融合供需鏈的個(gè)性化汽車(chē)推薦方法,包括以下步驟:
Step1:構(gòu)造張量-矩陣耦合數(shù)據(jù)模型;
Step1.1:構(gòu)造汽車(chē)打分張量X;
Step1.2:構(gòu)造車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L、車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M、汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S、用戶購(gòu)車(chē)目的矩陣P和車(chē)型配置信息矩陣T;
Step1.3:利用張量與矩陣之間、矩陣與矩陣之間維度共享關(guān)系,形成張量-矩陣耦合數(shù)據(jù)模型;
Step2:對(duì)Step1中得到的汽車(chē)打分張量X采用CP分解,得到因子矩陣A1、B1和C;對(duì)于車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L、車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M、汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S、用戶購(gòu)車(chē)目的矩陣P和車(chē)型配置信息矩陣T采用矩陣分解方法,使每個(gè)矩陣分解后都分別得到相應(yīng)的若干個(gè)因子矩陣,然后構(gòu)建張量X和車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L、車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M、汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S、用戶購(gòu)車(chē)目的矩陣P、車(chē)型配置信息矩陣T的聯(lián)合分解損失函數(shù)Z;利用聯(lián)合分解損失函數(shù)Z構(gòu)建約束性優(yōu)化問(wèn)題;
Step3:用增廣拉格朗日方法將Step2的約束性優(yōu)化問(wèn)題轉(zhuǎn)化為一個(gè)無(wú)約束優(yōu)化問(wèn)題;
Step4:用ADMM算法來(lái)解決Step3的無(wú)約束優(yōu)化問(wèn)題,對(duì)Step1的張量-矩陣耦合數(shù)據(jù)模型進(jìn)行聯(lián)合分解;
Step5:迭代計(jì)算Step4,矩陣A1,B1,C在迭代計(jì)算后,通過(guò)來(lái)還原張量X,補(bǔ)全其缺失值;計(jì)算出RMSE和MAE,RMSE和MAE的數(shù)值越小說(shuō)明預(yù)測(cè)結(jié)果越好,預(yù)測(cè)數(shù)值與實(shí)際數(shù)值相差越??;
Step6:設(shè)置迭代過(guò)程的終止條件為達(dá)到最大迭代次數(shù)Imax或者RMSE達(dá)到閾值以下,判斷Step5中求得的RMSE或迭代次數(shù)是否滿足設(shè)定的終止條件,若滿足則循環(huán)結(jié)束,進(jìn)入step7,否則返回Step4;
Step7:根據(jù)step5還原出的張量得到完整的用戶打分張量,針對(duì)不同的用戶,根據(jù)預(yù)測(cè)出來(lái)的結(jié)果,按照打分從高到低的次序依次向用戶推薦車(chē)型。
所述Step1.1中汽車(chē)打分張量為三階張量,分別對(duì)應(yīng)維度為用戶,車(chē)型和車(chē)型評(píng)價(jià)指標(biāo)。
汽車(chē)打分張量X中的元素Xijk取值范圍為1-5,表示用戶i對(duì)車(chē)型j的第k個(gè)評(píng)價(jià)指標(biāo)的打分。
車(chē)型共有八個(gè)評(píng)價(jià)指標(biāo)分別為空間、動(dòng)力、舒適性、油耗、操控、外觀、內(nèi)飾和性價(jià)比。
汽車(chē)打分張量X是稀疏的,有缺失值,目的是更準(zhǔn)確地預(yù)測(cè)出缺失值,為用戶提供個(gè)性化推薦。
所述Step1.2:
構(gòu)造車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L,矩陣L的兩個(gè)維度分別對(duì)應(yīng)車(chē)型和車(chē)系,矩陣元素Ljq取值為0-1型,若為1,表示車(chē)型j屬于車(chē)系q下的產(chǎn)品;
構(gòu)造車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M,矩陣M的兩個(gè)維度分別是車(chē)系和制造商;
構(gòu)造汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S,矩陣S的兩個(gè)維度分別是制造商和供應(yīng)商,M和S的取值也是0-1型。
構(gòu)造用戶購(gòu)車(chē)目的矩陣P,P的兩個(gè)維度分別是用戶和購(gòu)車(chē)目的,若用戶i具有購(gòu)車(chē)目的n,則Pin為1,否則為0。
構(gòu)造車(chē)型配置信息矩陣T,T的兩個(gè)維度分別為車(chē)型和配置屬性。
車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L、車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M、汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S、用戶購(gòu)車(chē)目的矩陣P和車(chē)型配置信息矩陣T都是完整的,用來(lái)協(xié)助預(yù)測(cè)張量X中的缺失值。
Step1.3:張量和矩陣之間或者是矩陣與矩陣之間存在多個(gè)維度的共享關(guān)系:
汽車(chē)打分張量X與用戶購(gòu)車(chē)目的矩陣P共享用戶維度,汽車(chē)打分張量X與車(chē)型配置信息矩陣T及車(chē)型所屬車(chē)系的從屬關(guān)系矩陣L共享車(chē)型維度,車(chē)型所屬車(chē)系的從屬關(guān)系矩陣L與車(chē)系和制造商生產(chǎn)關(guān)系矩陣M共享車(chē)系維度,車(chē)系制造商生產(chǎn)關(guān)系矩陣M與制造商和供應(yīng)商供應(yīng)關(guān)系矩陣S共享制造商維度,共享關(guān)系形成張量-矩陣耦合數(shù)據(jù)模型。
Step2:聯(lián)合分解損失函數(shù)Z:
Z=ZX+ZP+ZT+ZL+ZM+ZS;(1)
其中,ZX表示張量X進(jìn)行CP分解的損失函數(shù),ZP表示矩陣P因子分解的損失函數(shù),ZT表示矩陣T因子分解的損失函數(shù),ZL表示矩陣L因子分解的損失函數(shù),ZM表示矩陣M因子分解的損失函數(shù),ZS表示矩陣S因子分解的損失函數(shù)。
ZX,ZP,ZT,ZL,ZM,ZS分別定義如下:
其中,A1、B1和C是張量X通過(guò)CP分解得到的因子矩陣;A2和D為矩陣P分解得到的因子矩陣;B2和E為矩陣T分解得到的因子矩陣;B3和F1為矩陣L分解得到的因子矩陣;F2和G1為矩陣M分解得到的因子矩陣;G2和H為矩陣S分解得到的因子矩陣。λ1,λ2,λ3,λ4,λ5,λ6是正則化參數(shù),||*||F表示矩陣的F-范數(shù)。X(1)是張量X按照mode-1展開(kāi)得到的矩陣,表示Khatri-Rao乘積。
由于張量X及矩陣P,T,L,M,S相互之間存在共享的維度,因此期望張量X和矩陣P,T,L,M,S分解得到的共享維度對(duì)應(yīng)的因子矩陣是相同的,構(gòu)建全局變量矩陣來(lái)對(duì)共享維度的因子矩陣作出限制;
張量X和矩陣P共享用戶維度,期望二者分解出的對(duì)應(yīng)用戶維度的因子矩陣A1和A2是相等的,定義全局變量矩陣與因子矩陣A1和A2對(duì)應(yīng);
全局變量矩陣對(duì)A1和A2作出限制如下:
同樣的,對(duì)于其他矩陣與張量間和矩陣與矩陣之間的共享維度,定義和對(duì)應(yīng)相應(yīng)的因子矩陣。
張量X和矩陣T、L共享車(chē)型維度,期望三者分解出的對(duì)應(yīng)車(chē)型維度的因子矩陣B1,B2和B3是相等的,定義全局變量矩陣與因子矩陣B1,B2和B3對(duì)應(yīng);
全局變量矩陣對(duì)B1,B2和B3作出限制如下:
矩陣L和M共享車(chē)系維度,期望二者分解出的對(duì)應(yīng)車(chē)系維度的因子矩陣F1和F2是相等的,定義全局變量矩陣與因子矩陣F1和F2對(duì)應(yīng);
全局變量矩陣對(duì)F1和F2作出限制如下:
矩陣M和S共享制造商維度,期望二者分解出的對(duì)應(yīng)制造商維度的因子矩陣G1和G2是相等的,定義全局變量矩陣與因子矩陣G1和G2對(duì)應(yīng);
全局變量矩陣對(duì)G1和G2作出限制如下:
最小化代價(jià)目標(biāo)函數(shù)寫(xiě)為如下的約束性優(yōu)化問(wèn)題:
其中,為方便寫(xiě)作,用Ψ表示因子矩陣集合:
Ψ={A1,A2,B1,B2,B3,C,D,E,F1,F2,G1,G2,H}。
其中,A1、B1和C是張量X通過(guò)CP分解得到的因子矩陣;A2和D為矩陣P分解得到的因子矩陣;B2和E為矩陣T分解得到的因子矩陣;B3和F1為矩陣L分解得到的因子矩陣;F2和G1為矩陣M分解得到的因子矩陣;G2和H為矩陣S分解得到的因子矩陣。
Step3的目標(biāo)函數(shù)如下:
其中,Z為聯(lián)合分解損失函數(shù),Lρ()表示增廣拉格朗日函數(shù),其中ρ是懲罰參數(shù),為拉格朗日乘子(Lagrangian multipliers),tr()表示求矩陣的跡。Ap包括A1和A2,F(xiàn)p包括F1和F2,Gp包括G1和G2,Bq包括B1、B2和B3;為全局變量矩陣。
所述Step4:
對(duì)于Ψ集合中的因子矩陣,分別求Ψ集合中的因子矩陣相對(duì)與函數(shù)Lρ的偏導(dǎo)數(shù),使得偏導(dǎo)數(shù)等于0,求得因子矩陣更新公式;
其中,Ψk+1表示Ψ集合經(jīng)過(guò)第k+1次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;表示經(jīng)過(guò)第k次迭代更新的得到的結(jié)果;
Ψ={A1,A2,B1,B2,B3,C,D,E,F1,F2,G1,G2,H}表示因子矩陣集合,Ψk+1表示Ψ集合中的因子矩陣經(jīng)第k+1次迭代更新得到的值,為拉格朗日乘子,為避免公式(4-1)過(guò)長(zhǎng)簡(jiǎn)寫(xiě)為表示拉格朗日乘子經(jīng)第k次迭代更新得到的值。
對(duì)于全局變量分別對(duì)函數(shù)Lρ求全局變量的偏導(dǎo)數(shù),使得偏導(dǎo)數(shù)等于0,求得全局變量矩陣更新公式;
其中,分別表示經(jīng)第k+1次迭代更新得到的值;
用公式(4-3)-公式(4-6)更新
Step5中:RMSE和MAE的計(jì)算公式為:
其中,代表是測(cè)試集中張量非缺失值的預(yù)測(cè)結(jié)果,而ym是測(cè)試集中張量打分的真實(shí)值,對(duì)應(yīng)張量X中的一個(gè)元素Xijk,n代表的是測(cè)試集樣本數(shù)量。
矩陣分解方法,將一個(gè)矩陣分解為兩個(gè)因子矩陣的乘積。
一種融合供需鏈的個(gè)性化汽車(chē)推薦系統(tǒng),包括:耦合張量-矩陣模型構(gòu)建模塊、打分張量缺失值預(yù)測(cè)模塊和用戶車(chē)型推薦模塊,其中:
耦合張量-矩陣模型構(gòu)建模塊,根據(jù)從汽車(chē)之家網(wǎng)站上爬取到的用戶購(gòu)車(chē)信息、打分信息、車(chē)型信息以及從汽車(chē)企業(yè)網(wǎng)絡(luò)中爬取的企業(yè)供應(yīng)關(guān)系抽取數(shù)據(jù),構(gòu)造汽車(chē)打分張量X,構(gòu)造車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L、車(chē)系與汽車(chē)制造商的生產(chǎn)關(guān)系矩陣M、汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S、用戶購(gòu)車(chē)目的矩陣P和車(chē)型配置信息矩陣T;構(gòu)建耦合張量-矩陣模型;
打分張量缺失值預(yù)測(cè)模塊,構(gòu)建聯(lián)合分解損失函數(shù)Z;利用聯(lián)合分解損失函數(shù)Z構(gòu)建約束性優(yōu)化問(wèn)題;用增廣拉格朗日方法將約束性優(yōu)化問(wèn)題轉(zhuǎn)化為一個(gè)無(wú)約束優(yōu)化問(wèn)題;用ADMM算法來(lái)解決無(wú)約束優(yōu)化問(wèn)題,對(duì)張量-矩陣耦合數(shù)據(jù)模型進(jìn)行聯(lián)合分解;用ADMM算法進(jìn)行因子矩陣的迭代更新,最終用得到的因子矩陣還原張量,預(yù)測(cè)其缺失值;
用戶車(chē)型推薦模塊,用預(yù)測(cè)出的完整打分張量,按照用戶的需求按打分從高到低的次序依次向用戶推薦車(chē)型,實(shí)現(xiàn)個(gè)性化推薦。
本發(fā)明的有益效果:
1.充分利用用戶購(gòu)車(chē)目的,車(chē)型屬性信息,車(chē)型與其所屬車(chē)系、制造商之間的關(guān)系以及制造商與供應(yīng)商之間的耦合關(guān)系形成的供需鏈,為打分張量提供更多輔助信息,解決用戶打分?jǐn)?shù)據(jù)稀疏的問(wèn)題,實(shí)現(xiàn)更準(zhǔn)確的個(gè)性化汽車(chē)選購(gòu)的推薦方法;
2.本發(fā)明使用ADMM算法來(lái)求解耦合張量-矩陣的聯(lián)合分解,可以較為明顯的提高打分預(yù)測(cè)的準(zhǔn)確度。
3.本發(fā)明發(fā)現(xiàn)汽車(chē)領(lǐng)域中用戶購(gòu)車(chē)目的與汽車(chē)配置,制造商及供應(yīng)商之間的潛在關(guān)系,來(lái)幫助預(yù)測(cè)用戶關(guān)于某個(gè)車(chē)型的評(píng)分指標(biāo)的打分,即張量中的缺失值。最終按照預(yù)測(cè)出來(lái)的用戶對(duì)于車(chē)型指標(biāo)的打分,根據(jù)用戶的喜好將打分較高的車(chē)型推薦給用戶,提供個(gè)性化的推薦服務(wù)。
4.聯(lián)合分解原因:以往的推薦算法使用單純的張量分解,但是數(shù)據(jù)稀疏難以得到好的效果。我們可以獲取到車(chē)型車(chē)系等信息作為輔助,聯(lián)合分解幫助提高張量分解的準(zhǔn)確度。
附圖說(shuō)明
圖1為本發(fā)明提供的融合供需鏈的個(gè)性化汽車(chē)推薦方法流程圖;
圖2為汽車(chē)推薦領(lǐng)域張量X,矩陣P、T、L、M、S構(gòu)成的耦合張量-矩陣數(shù)據(jù)模型圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
本發(fā)明提供了一種融合供需鏈的個(gè)性化汽車(chē)推薦方法,利用車(chē)型與車(chē)系從屬關(guān)系,車(chē)系與制造商的生產(chǎn)關(guān)系,以及制造商和供應(yīng)商之間的供應(yīng)關(guān)系形成的供需鏈來(lái)進(jìn)行約束,此外,還利用了用戶購(gòu)買(mǎi)目的以及車(chē)型配置信息來(lái)輔助個(gè)性化推薦。如圖1所示,包括以下步驟:
Step1:構(gòu)造張量和矩陣耦合數(shù)據(jù)模型,包括以下步驟
Step1.1:構(gòu)造汽車(chē)打分張量X∈RI×J×K,汽車(chē)打分張量為三階張量,I為用戶數(shù)量,J為車(chē)型數(shù)量,K為評(píng)分標(biāo)準(zhǔn)個(gè)數(shù),本發(fā)明的案例中車(chē)型共有八個(gè)評(píng)價(jià)指標(biāo),即K為8。汽車(chē)打分張量X中的元素Xijk取值范圍為1-5,表示用戶i對(duì)車(chē)型j的第k個(gè)評(píng)價(jià)指標(biāo)的打分。車(chē)型共有八個(gè)評(píng)價(jià)指標(biāo)分別為空間、動(dòng)力、舒適性、油耗、操控、外觀、內(nèi)飾和性價(jià)比。張量X是稀疏的,有很多缺失值,算法的目的是更準(zhǔn)確地預(yù)測(cè)出缺失值,為用戶提供個(gè)性化推薦。
Step1.2:構(gòu)造車(chē)型與所屬的車(chē)系的從屬關(guān)系矩陣L∈RJ×Q,其中J表示車(chē)型數(shù)量,Q表示車(chē)系數(shù)量。矩陣元素Ljq取值為0-1型,若為1,表示車(chē)型j屬于車(chē)系q下的產(chǎn)品。構(gòu)造車(chē)系與制造商的生產(chǎn)關(guān)系矩陣M∈RQ×V,Q表示車(chē)系個(gè)數(shù),V表示制造商個(gè)數(shù)。構(gòu)造汽車(chē)制造商與供應(yīng)商關(guān)系矩陣S∈RV×W,M和S的取值也是0-1型。構(gòu)造用戶購(gòu)車(chē)目的矩陣P∈RI×N,I代表用戶個(gè)數(shù),N代表目的個(gè)數(shù),若用戶i具有購(gòu)車(chē)目的n,則Pin為1,否則為0。構(gòu)造車(chē)型配置信息矩陣T∈RJ×Y,J對(duì)用車(chē)型數(shù)量,Y對(duì)應(yīng)配置項(xiàng)數(shù)量。
上述矩陣都是完整的,用來(lái)協(xié)助預(yù)測(cè)張量X中的缺失值。張量和矩陣之間或矩陣與矩陣之間存在多個(gè)維度的共享關(guān)系,這些共享關(guān)系形成耦合張量-矩陣數(shù)據(jù)模型。如圖2所示。
Step2:對(duì)Step1中得到的汽車(chē)打分張量X采用CP(CANDECOMP/PARAFACdecomposition)分解,對(duì)于矩陣P,T,L,M,S采用UV因子矩陣分解,然后構(gòu)建張量X和矩陣P,T,L,M,S的聯(lián)合分解損失函數(shù):
Z=ZX+ZP+ZT+ZL+ZM+ZS
ZX,ZP,ZT,ZL,ZM,ZS分別定義如下:
其中,A1,B1和C是張量X通過(guò)CP分解得到的因子矩陣,維度分別為I×R,J×R,K×R,R為張量的秩。A2和D為矩陣P分解得到的因子矩陣,維度分別為I×R,N×R;B2和E為矩陣T分解得到的因子矩陣,維度分別為J×R,Y×R;B3和F1為矩陣L分解得到的因子矩陣,維度分別為J×R,Q×R;F2和G1為矩陣M分解得到的因子矩陣,維度分別為Q×R,V×R;G2和H為矩陣S分解得到的因子矩陣,維度分別為V×R,W×R;λ1,λ2,λ3,λ4,λ5,λ6,是正則化參數(shù)。||A1||F、||B1||F、||C||F分別對(duì)應(yīng)著矩陣A1,B1,C的F-范數(shù)。X(1)是張量X按照mode-1展開(kāi),表示Khatri-Rao乘積。
張量X及矩陣P,T,L,M,S相互之間存在共享的維度,期望它們分解得到的共享維度對(duì)應(yīng)的因子矩陣是相同的,需要構(gòu)建全局變量矩陣來(lái)對(duì)共享維度的因子矩陣作出限制。如張量X和矩陣P共享用戶這一維度,我們期望二者分解出的因子矩陣A1和A2是相等的,因此用一個(gè)全局變量矩陣對(duì)A1和A2是作出限制如下:
同樣的,對(duì)于其他矩陣與張量間和矩陣與矩陣之間的共享維度,定義和對(duì)應(yīng)相應(yīng)的因子矩陣。我們的最小化代價(jià)目標(biāo)函數(shù)可以寫(xiě)為如下的約束性優(yōu)化問(wèn)題:
Ψ表示因子矩陣集合:Ψ={A1,A2,B1,B2,B3,C,D,E,F1,F2,G1,G2,H}
Step3:用增廣拉格朗日方法(Augmented Lagrangian Method)將上述約束性優(yōu)化問(wèn)題轉(zhuǎn)化為一個(gè)無(wú)約束優(yōu)化問(wèn)題,目標(biāo)函數(shù)如下:
其中ρ是懲罰參數(shù),為拉格朗日乘子(Lagrangian multipliers),tr()表示求矩陣的跡。
Step4:用ADMM技術(shù)來(lái)解決這個(gè)無(wú)約束優(yōu)化問(wèn)題,對(duì)耦合張量-矩陣進(jìn)行聯(lián)合分解。對(duì)于Ψ集合中的因子矩陣,分別求他們相對(duì)與函數(shù)Lρ的偏導(dǎo)數(shù),使得偏導(dǎo)數(shù)等于0,求得因子矩陣更新公式。由于篇幅原因,這里只給出A1的更新計(jì)算方法。對(duì)函數(shù)Lρ求A1的偏導(dǎo),使偏導(dǎo)等于0,求得A1的更新公式:
IR代表的是R×R的單位矩陣;B1T,CT表示矩陣B1,C的轉(zhuǎn)置。
對(duì)于全局變量分別對(duì)函數(shù)Lρ求偏導(dǎo)數(shù),使偏導(dǎo)數(shù)為0,求全局變量矩陣更新公式。因篇幅限制,這里以為例,求得的更新公式為:
設(shè)置可以證明因此更新公式可簡(jiǎn)化為
對(duì)于拉格朗日乘子使用梯度下降法更新,更新公式如公式(4),不再贅述。
Step5:迭代計(jì)算Step4中的更新公式,這是根據(jù)ADMM算法計(jì)算得出的,該算法保證了我們的計(jì)算過(guò)程可以快速收斂。矩陣A1,B1,C在迭代計(jì)算后,可以通過(guò)來(lái)還原張量X,補(bǔ)全其缺失值。計(jì)算出算法的RMSE和MAE,RMSE和MAE的數(shù)值越小說(shuō)明預(yù)測(cè)結(jié)果越好,預(yù)測(cè)數(shù)值與實(shí)際數(shù)值相差越小。
Step6:設(shè)置算法的終止條件為達(dá)到最大迭代次數(shù)50次,并設(shè)置RMSE為0.7,當(dāng)?shù)螖?shù)超過(guò)50或者RMSE低于0.7的時(shí)候,停止循環(huán),否則返回Step4
Step7:通過(guò)還原張量X,補(bǔ)全其缺失值。針對(duì)不同的用戶,根據(jù)預(yù)測(cè)出來(lái)的結(jié)果,按照打分從高到低的次序依次向用戶推薦車(chē)型。
如表1所示,本發(fā)明提供的在汽車(chē)領(lǐng)域的推薦方法與現(xiàn)有技術(shù)中的各算法相比,均方根誤差(RMSE)和平均誤差(MAE)更小,預(yù)測(cè)的準(zhǔn)確度越高,較之現(xiàn)有技術(shù)有較大的提升。
表1汽車(chē)領(lǐng)域數(shù)據(jù)集上不同模型計(jì)算得到的RMSE和MAE的實(shí)驗(yàn)對(duì)比結(jié)果
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。