一種推薦系統(tǒng)的線下評價方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及一種推薦系統(tǒng)的評價方法。
【背景技術(shù)】
[0002]個性化推薦是根據(jù)用戶的興趣特點和購買行為,向用戶推薦用戶感興趣的信息和商品。隨著電子商務(wù)規(guī)模的不斷擴(kuò)大,商品個數(shù)和種類快速增長,顧客需要花費大量的時間才能找到自己想買的商品。這種瀏覽大量無關(guān)的信息和產(chǎn)品過程無疑會使淹沒在信息過載問題中的消費者不斷流失。為了解決這些問題,個性化推薦系統(tǒng)應(yīng)運而生。個性化推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的一種高級商務(wù)智能平臺,以幫助電子商務(wù)網(wǎng)站為其顧客購物提供完全個性化的決策支持和信息服務(wù)。
[0003]目前,推薦系統(tǒng)有著非常廣泛的應(yīng)用,除了亞馬遜,淘寶等電商網(wǎng)站,如今日頭條的新聞推薦,云OS的手機(jī)app推薦,以及其他很多應(yīng)用場景中,都使用到了推薦系統(tǒng)。常用的推薦算法包括:基于內(nèi)容的推薦,基于協(xié)同過濾的推薦,基于關(guān)聯(lián)規(guī)則的推薦,基于效用的推薦,基于知識的推薦等。
[0004]推薦系統(tǒng)的任務(wù)一般是這樣的:給定一批商品,通過推薦算法的計算,得到每個商品的潛在用戶,最后再通過各種推薦手段,將該商品推薦給它的潛在用戶。
[0005]在構(gòu)建推薦系統(tǒng)的時候,一個難點就是推薦算法的線下評價方法。一般來講,對于有監(jiān)督的算法,當(dāng)構(gòu)建這個算法的時候,為了驗證算法的有效性,往往會用歷史數(shù)據(jù)中的正負(fù)樣本來先測試算法并且調(diào)整參數(shù),最后待參數(shù)調(diào)整到最優(yōu)的時候,才會將算法上線,投入到實際應(yīng)用中。但是,對于推薦算法,正樣本是將一件物品推薦給一個用戶,這個用戶接受了推薦,購買了該商品,而負(fù)樣本是將意見物品推薦給一個用戶后,該用戶不接受推薦,沒有購買該商品。而在歷史數(shù)據(jù)中,由于并沒有真正發(fā)生推薦行為,所以也就沒有真實的正負(fù)樣本,給推薦的線下評價帶來麻煩,使得算法的設(shè)計者們難以調(diào)節(jié)算法的參數(shù)。盲目將沒有經(jīng)過驗證的算法發(fā)布上線,用于實際應(yīng)用也存在很大風(fēng)險。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對上述問題,提出一種推薦系統(tǒng)的線下評價方法,利用該方法可以有效的利用歷史數(shù)據(jù)對新建立的推薦算法進(jìn)行評價,以方便算法的建立者調(diào)節(jié)算法參數(shù)及進(jìn)行算法上線之前的效果預(yù)估。本發(fā)明的技術(shù)方案如下:
[0007]—種推薦系統(tǒng)的線下評價方法,包括下面步驟:
[0008]I)選取測試樣本
[0009]對于一個推薦系統(tǒng),先將歷史數(shù)據(jù)進(jìn)行劃分,將歷史數(shù)據(jù)按照時間的先后分為訓(xùn)練集和測試集。對所有訓(xùn)練集中的商品按照其在一段時期內(nèi)購買用戶的數(shù)量進(jìn)行排名,之后在該排名序列中均勻抽取η個商品,并用待評價的推薦算法計算出這η個商品的潛在用戶,作為評價該推薦算法的測試樣本。
[0010]2)構(gòu)造近似正樣本
[0011]對于選取出的這η個商品的潛在用戶,再看看在測試集數(shù)據(jù)中,到底有沒有購買通過推薦算法計算出來的要給他們推薦的商品,即使在測試集中,并沒有真正發(fā)生推薦行為,但是這些用戶可能通過其他方式接觸到要給他們推薦的商品,接觸到并且購買,說明這個用戶對這個商品是非常感興趣的,那么如果推薦算法給他推薦,他也會購買,把這部分用戶當(dāng)作近似正樣本。
[0012]3)構(gòu)造近似負(fù)樣本
[0013]在構(gòu)造近似負(fù)樣本的時候,對于選取出的這η個商品的潛在用戶,對其在訓(xùn)練集中的行為數(shù)據(jù)進(jìn)行統(tǒng)計,統(tǒng)計出一些非常不活躍的用戶,即這些用戶購買商品的意愿非常低,對于這類不活躍用戶,如果推薦算法給他們推薦新的商品,他們購買的可能性也非常低,因此,很可能產(chǎn)生無效推薦,將這些用戶就定義為近似負(fù)樣本。
[0014]4)計算近似正負(fù)樣本在推薦結(jié)果中的分布并評價推薦算法
[0015]對于推薦算法,在計算一個商品的潛在用戶的時候,會同時計算出一個用戶購買意愿分?jǐn)?shù),最后會根據(jù)這個分?jǐn)?shù)對待推薦的用戶進(jìn)行排名,并依照業(yè)務(wù)需求,截取排名靠前的用戶進(jìn)行推薦;在評價推薦算法的時候,看近似正樣本和近似負(fù)樣本在用訓(xùn)練集計算出的那批潛在用戶中的排名分布,如果大部分的近似正樣本在推薦算法算出的潛客中排名靠前,大部分近似負(fù)樣本在推薦算法算出的潛客中排名靠后,則證明推薦算法有效,相反,如果近似正樣本和近似負(fù)樣本的排名分布比較均勻,則證明算法無效;根據(jù)上述原理,在評價推薦算法的時候,用排在潛在用戶的前20%的近似正樣本數(shù)加上排在潛在用戶的后20%的近似負(fù)樣本數(shù)目作為評價算法的最終分?jǐn)?shù),根據(jù)這個分?jǐn)?shù)變化,在線下比較某兩個推薦算法的好壞,分?jǐn)?shù)較高的推薦算法被認(rèn)為是較好的算法;或者根據(jù)分?jǐn)?shù)調(diào)節(jié)某推薦算法的參數(shù),使推薦算法達(dá)到最優(yōu)。
[0016]本發(fā)明的有益效果如下:
[0017]1.本發(fā)明提出一種用歷史數(shù)據(jù)對推薦系統(tǒng)進(jìn)行線下評價的方法,能夠利用歷史數(shù)據(jù)對新構(gòu)造的推薦系統(tǒng)進(jìn)行評價,降低了盲目將算法上線的風(fēng)險。
[0018]2.推薦系統(tǒng)算法的構(gòu)造者在構(gòu)造算法的時候,可以根據(jù)本發(fā)明提出的線下評價方法來調(diào)節(jié)算法參數(shù),提升準(zhǔn)確率。
【附圖說明】
[0019]圖1本發(fā)明的技術(shù)方案的流程圖。
【具體實施方式】
[0020]對于推薦問題來講,雖然歷史數(shù)據(jù)中沒有真正的正負(fù)樣本,但是本發(fā)明提出一種方法,能夠通過統(tǒng)計用戶歷史數(shù)據(jù),找到近似的正負(fù)樣本,然后看這些正負(fù)樣本在算法結(jié)果中的分布狀況,以完成算法的評價。方案整體示意圖如圖(I),具體步驟如下:
[0021]I選取測試樣本
[0022]—個好的推薦系統(tǒng)對于不同的商品,都能夠表現(xiàn)出好的推薦結(jié)果,因此,在評價推薦系統(tǒng)的時候,需要看其在多種不同商品上的整體效果。
[0023]在本發(fā)明中,我們首先將歷史數(shù)據(jù)進(jìn)行劃分,假如我們有某個電商平臺4個月的歷史數(shù)據(jù),則用前三個月的數(shù)