一種基于特征遞增型的電影個(gè)性化推薦方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于特征遞增型的電影個(gè)性化推薦方法及系統(tǒng),通過分析海量數(shù)據(jù)給現(xiàn)有的個(gè)性化推薦系統(tǒng)帶來的問題,論述個(gè)性化推薦系統(tǒng)向云計(jì)算平臺(tái)轉(zhuǎn)移的必要性及可行性,結(jié)合采用了特征遞增型的混合推薦模型,首先將原本極端稀疏的用戶項(xiàng)目評(píng)分矩陣采用基于項(xiàng)目的協(xié)同過濾算法進(jìn)行第一次填充生成一個(gè)偽二維表,接著再次使用基于用戶的協(xié)同過濾算法再對(duì)偽二維表進(jìn)行進(jìn)一步填充,最后采用云模塊的定量知識(shí)與定性知識(shí)的轉(zhuǎn)化避免了嚴(yán)格的對(duì)象屬性匹配的不足。充分利用了用戶的每一個(gè)評(píng)分?jǐn)?shù)據(jù),并充分利用了云計(jì)算的并行計(jì)算大大的提高了運(yùn)算效率和速度,從而為用戶提供了更好的體驗(yàn),也為企業(yè)到了競(jìng)爭(zhēng)中的優(yōu)勢(shì)。
【專利說明】
一種基于特征遞増型的電影個(gè)性化推薦方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于協(xié)同推薦在電影上的應(yīng)用領(lǐng)域,尤其涉及一種基于特征遞增型的電影 個(gè)性化推薦方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,大眾娛樂越來越成為人們?nèi)粘I畈豢苫蛉钡牟?分。電影作為一種藝術(shù)的表現(xiàn)形式,越來越受到大眾的接受與喜愛。
[0003] 伴隨著電影觀眾人數(shù)的激增,人們對(duì)電影需求也隨之增加。為此,帶來了現(xiàn)如今每 年成百上千部的電影上映量的火爆場(chǎng)景。舉一個(gè)極端的情況:如果一個(gè)電影播放客戶端是 讓用戶隨機(jī)從中點(diǎn)播、并沒有對(duì)電影進(jìn)行分類,不能使得用戶從中快捷的找出自己喜歡的 類型的電影。在這種情況下,用戶很可能覺得所使用的電影播放系統(tǒng)不夠人性化,從而導(dǎo)致 用戶放棄當(dāng)前的電影播放客戶端。相比于一個(gè)沒有進(jìn)行組織過的電影資源的展示,現(xiàn)在很 多電影客戶端都是采用的導(dǎo)航式的方式,讓用戶自己根據(jù)類別進(jìn)行查找,即采用所謂的信 息檢索的方式進(jìn)行電影的查詢。這樣做雖然在一定程度上對(duì)電影進(jìn)行了分類,但是仍處于 "人找信息"的階段。在用戶不明確自己的喜好的時(shí)候,很難滿足用戶的口味。基于此,協(xié)同 推薦算法可以充分利用周圍用戶的閱覽情況對(duì)目標(biāo)用戶進(jìn)行推薦,這種我們稱之為"信息 找人"的方法具有很好的新穎性、準(zhǔn)確性。
[0004] 互聯(lián)網(wǎng)和web2.0把網(wǎng)民從網(wǎng)絡(luò)信息的瀏覽者,變成了信息的互動(dòng)參與者。與此同 時(shí),新興技術(shù)也把我們帶入了信息爆炸的時(shí)代,海量的信息出現(xiàn)在我們的面前。如何在這些 海量的信息中找到我們所需要的信息顯現(xiàn)的越來越重要,這不僅能夠使得我們快速的找到 我們所需要的信息、為我們節(jié)約找到對(duì)自己有用的信息所花費(fèi)的時(shí)間,而且還使得我們免 去過量信息的困擾。集體智慧和個(gè)性化推薦在這種環(huán)境下應(yīng)運(yùn)而生。
[0005] 集體智慧指的是:在對(duì)大量的人群的行為和數(shù)據(jù)進(jìn)行分析,從中得到對(duì)整個(gè)人群 的統(tǒng)計(jì)意義上的結(jié)論。集體智慧的作用在web2.0環(huán)境下顯得更加的突出。協(xié)同推薦就是一 個(gè)很好的集體智慧的一種典型的方法。協(xié)同推薦的核心描述為:將目標(biāo)用戶放在一個(gè)用戶 群體中,通過計(jì)算出與目標(biāo)用戶行為最為接近的活動(dòng)用戶,根據(jù)活動(dòng)用戶的偏好來預(yù)測(cè)目 標(biāo)用戶的偏好的方法。在協(xié)同推薦中的一個(gè)核心問題:如何找到和自己偏好相似的用戶。一 個(gè)相似度高的活動(dòng)用戶,對(duì)整體的推薦系統(tǒng)的最好的結(jié)果輸出起到了舉足輕重的作用,一 個(gè)毫不相關(guān)的用戶對(duì)于目標(biāo)用戶的推薦結(jié)果必然是不可靠、不準(zhǔn)確的。所以,如何在用戶群 體中找到與自己偏好程度最大程度相似顯得尤為重要。
[0006]在進(jìn)行個(gè)性化的電影推薦方法中,現(xiàn)如今在推薦算法中比較熱門的兩大類推薦分 為:基于內(nèi)容的過濾推薦(Content-Based Filtering)和協(xié)同過濾的推薦(Collaborative Filtering)。基于內(nèi)容的過濾推薦[1]需要根據(jù)用戶以往的興趣來推測(cè)用戶以后的興趣,該 推薦算法對(duì)于文本、網(wǎng)頁的推薦有著很好的作用,能夠很好的處理數(shù)據(jù)的"冷啟動(dòng)"問題。但 是難以處理機(jī)器自動(dòng)分析的內(nèi)容,比如:電影、藝術(shù)品之類。并且它不能給用戶提供新穎性 的物品。協(xié)同過濾推薦是在一個(gè)群體中查找與目標(biāo)用戶相似興趣的活動(dòng)用戶,通過查找到 與目標(biāo)用戶最為相似若干個(gè)活動(dòng)用戶的喜好,從而為目標(biāo)用戶進(jìn)行推薦其所沒有選擇的物 品,協(xié)同推薦具有很好的新穎性,可以推薦用戶以前所沒有關(guān)注的物品。當(dāng)然與此同時(shí),協(xié) 同過濾算法也存在著"冷啟動(dòng)"和"稀疏性"這些比較嚴(yán)重的問題。對(duì)于"稀疏性"而言,在實(shí) 際的一些大型的電子商務(wù)網(wǎng)站比如天貓、亞馬遜中,陳列的商品成千上萬,即使是一個(gè)非常 積極、購買力很大的用戶所評(píng)價(jià)的項(xiàng)目也不會(huì)超過資源總數(shù)的1%。評(píng)價(jià)數(shù)據(jù)的稀疏性是由 于高維數(shù)據(jù)所引起的,這是協(xié)同推薦中的一個(gè)經(jīng)典的問題。綜上所述,由于各個(gè)推薦算法具 有自己先天性的不足,單單靠一種推薦算法不能夠進(jìn)行高效、高質(zhì)量的推薦。因此,本發(fā)明 主要針"稀疏性"問題,采用了一種混合式的電影推薦模型來進(jìn)行系統(tǒng)推薦質(zhì)量的優(yōu)化。
[0007] 云計(jì)算自誕生日起就以超強(qiáng)的計(jì)算能力和存儲(chǔ)技術(shù)聞名,它天生就是用來解決海 量數(shù)據(jù)帶來的麻煩的。因此研究個(gè)性化推薦系統(tǒng)在云計(jì)算平臺(tái)的應(yīng)用具有很現(xiàn)實(shí)的意義, 云平臺(tái)和推薦系統(tǒng)的結(jié)合是科技發(fā)展的必然趨勢(shì)。本發(fā)明設(shè)計(jì)了云計(jì)算平臺(tái)下的推薦流 程,期望通過云計(jì)算這種全新的計(jì)算方式來來解決個(gè)性化推薦系統(tǒng)在面對(duì)海量數(shù)據(jù)進(jìn)行數(shù) 據(jù)挖掘和計(jì)算時(shí)的速度問題,達(dá)到提高推薦效率、降低運(yùn)算時(shí)間的目的。
[0008] 云計(jì)算系統(tǒng)由數(shù)量巨大的服務(wù)器集群構(gòu)成,首先其通過網(wǎng)絡(luò)將龐大的計(jì)算處理程 序自動(dòng)拆分成無數(shù)個(gè)較小的子程序,交由服務(wù)器集群所組成的龐大系統(tǒng)經(jīng)搜尋、計(jì)算分析 之后將處理結(jié)果返回給用戶。這種分布式計(jì)算模式使得計(jì)算速度和存儲(chǔ)規(guī)模都有一個(gè)質(zhì)的 跨越,網(wǎng)絡(luò)服務(wù)提供者可以在數(shù)秒的短時(shí)間之內(nèi),將千萬計(jì)甚至億計(jì)的信息提供給用戶,進(jìn) 而達(dá)到超級(jí)計(jì)算機(jī)所提供的服務(wù)能力。云計(jì)算平臺(tái)的服務(wù)器集群由數(shù)量巨大的廉價(jià)計(jì)算機(jī) 構(gòu)成,最普通的CPU,沒有顯卡,沒有顯示器,云計(jì)算將這些計(jì)算機(jī)連接成一個(gè)網(wǎng)絡(luò),通過管 理系統(tǒng)就構(gòu)成了具有強(qiáng)大數(shù)據(jù)處理能力的計(jì)算平臺(tái)。例如亞馬遜,IBM等公司的"云"擁有幾 十萬臺(tái)服務(wù)器,谷歌云計(jì)算平臺(tái)甚至擁有200多萬臺(tái)服務(wù)器,這些服務(wù)器集群賦予了用戶驚 人的計(jì)算能力。
[0009] 與傳統(tǒng)的IDC服務(wù)器相比,云計(jì)算平臺(tái)具有處理多并發(fā)請(qǐng)求,多并發(fā)訪問,海量數(shù) 據(jù)存儲(chǔ)的能力。云計(jì)算在處理海量數(shù)據(jù)的應(yīng)用時(shí)尤其能展現(xiàn)出優(yōu)勢(shì)。傳統(tǒng)處理方式處理1TB 的數(shù)據(jù)挖掘需要8個(gè)小時(shí),而使用16個(gè)節(jié)點(diǎn)的云計(jì)算分布式處理系統(tǒng)僅需40分鐘,時(shí)間縮短 了 11倍,硬件成本僅為傳統(tǒng)的1/4。云計(jì)算強(qiáng)大的數(shù)據(jù)處理能力正好能夠滿足個(gè)性化推薦系 統(tǒng)在面臨海量數(shù)據(jù)處理時(shí)計(jì)算效率低、速度慢的問題。
[0010] 綜上所述,云計(jì)算既能使個(gè)性化推薦系統(tǒng)作為一種軟件服務(wù)銷售給企業(yè),又能解 決海量數(shù)據(jù)為個(gè)性化推薦系統(tǒng)帶來的存儲(chǔ)和處理方面的問題。因此個(gè)性化系統(tǒng)向云計(jì)算平 臺(tái)轉(zhuǎn)移,并發(fā)展成為一種可以準(zhǔn)確計(jì)算流量的軟件服務(wù)是必要而又可行的。
[0011] 在本發(fā)明采用了一種混合推薦模型的方法:特征遞增型方法。該方法是一種類似 于瀑布模型的方法:將本級(jí)模塊的輸出作為下級(jí)模塊的輸入,以此類推一層一層的對(duì)相應(yīng) 的模塊輸出進(jìn)行進(jìn)一步的加工以產(chǎn)生更加精準(zhǔn)的結(jié)果;本發(fā)明的模型為了解決個(gè)性化推薦 系統(tǒng)在處理海量數(shù)據(jù)時(shí)產(chǎn)生的問題并提高運(yùn)算效率及速度,本發(fā)明利用云計(jì)算的分布式計(jì) 算能力進(jìn)行個(gè)性化推薦系統(tǒng)的運(yùn)算,力求在推薦精確度穩(wěn)定的前提下保證推薦系統(tǒng)的推薦 實(shí)時(shí)性的要求。采用了基于項(xiàng)目的協(xié)同推薦算法對(duì)用戶項(xiàng)目矩陣進(jìn)行第一次填充。在計(jì)算 兩用戶的相似度的時(shí)候本發(fā)明采用的余弦相似度的方法,即把目標(biāo)用戶和活動(dòng)用戶看成二 維空間中的兩個(gè)向量,通過計(jì)算兩者之間的余弦夾角,選擇與目標(biāo)用戶余弦夾角最大的前η 用戶為最近鄰,然后對(duì)未評(píng)分項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分,接著將填充完的結(jié)果輸出到下一個(gè)模塊: 基于用戶的協(xié)同推薦算法模塊,將進(jìn)一步的填充。在第二個(gè)模塊處理完生成一個(gè)偽二維表 (填充過后的類似完整的用戶項(xiàng)目矩陣)后,將偽二維表輸入到數(shù)據(jù)處理模塊,對(duì)此偽二維 表的用戶評(píng)分項(xiàng)進(jìn)行篩選,篩除那些沒有評(píng)分能力的用戶。接著再將生成的新二維表傳遞 給云模塊進(jìn)行用戶匹配尋找最近鄰,從而找到與目標(biāo)用戶最相近的用戶,最后利用推薦模 塊產(chǎn)生推薦結(jié)果。本發(fā)明對(duì)用戶的偏好矩陣進(jìn)行填充以緩解"數(shù)據(jù)稀疏性"問題,并且結(jié)合 云模型進(jìn)行定性與定量知識(shí)的轉(zhuǎn)換來處理數(shù)據(jù)稀疏性這一問題。進(jìn)行了深入的處理,以達(dá) 到推薦結(jié)果質(zhì)量的提升。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明的目的在于提供一種基于特征遞增型的電影個(gè)性化推薦方法及系統(tǒng),旨在 解決協(xié)同推薦算法在電影推薦領(lǐng)域由于算法本身存在的"數(shù)據(jù)稀疏性"和"冷啟動(dòng)"的局限 性,導(dǎo)致協(xié)同推薦的質(zhì)量不高的問題。
[0013] 本發(fā)明是這樣實(shí)現(xiàn)的,一種基于特征遞增型的電影個(gè)性化推薦方法,該基于特征 遞增型的電影個(gè)性化推薦方法包括以下步驟:
[0014] 系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦系統(tǒng)中輸入用戶電影矩陣;
[0015] 基于項(xiàng)目的協(xié)同過濾模塊,對(duì)用戶電影矩陣進(jìn)行填充,從而緩解用戶電影矩陣的 稀疏性問題;接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣生成一個(gè)偽二維表,以輸出的形 式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中;
[0016] 基于用戶的協(xié)同過濾模塊接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸出為本模 塊的輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,進(jìn)一步緩解數(shù)據(jù)稀疏 性的問題,接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣來更新偽二維表,以輸出的形式輸 入到下一個(gè)數(shù)據(jù)處理模塊中;
[0017] 數(shù)據(jù)處理模塊接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí)模塊的輸 入,系統(tǒng)根據(jù)預(yù)先定義的條件判斷,對(duì)活動(dòng)用戶中那些在用戶電影矩陣中評(píng)分了的,并且在 目標(biāo)用戶的用戶電影矩陣中待評(píng)分的相應(yīng)的項(xiàng)目的用戶,將用戶分為有能力推薦的用戶和 無能力推薦的用戶,對(duì)于目標(biāo)用戶u和活動(dòng)用戶v各自的評(píng)分項(xiàng)目集合I u、Iv,基于兩者之間 的評(píng)價(jià)過項(xiàng)目的并集Iu,v。有如下的情況:若即對(duì)于V/e/,.,都有iei u。就是,對(duì)于Iv 內(nèi)任意的一個(gè)項(xiàng)目評(píng)分,對(duì)應(yīng)的目標(biāo)用戶的用戶電影矩陣中都有相應(yīng)的評(píng)分,用戶Iv的集 合被包含于集合。因此,用戶Iv對(duì)于目標(biāo)用戶I u沒有推薦能力,即:無能力推薦用戶。若 4這4,即出現(xiàn)了3^4,且^/1^換而言之,用戶1 ¥中存在項(xiàng)目1,在目標(biāo)用戶中沒有評(píng)分 過。但是,對(duì)于項(xiàng)目i又存在兩種情況:
[0018] ①若Rv>1<Rmid,表明活動(dòng)用戶V,雖然對(duì)目標(biāo)用戶可以進(jìn)行推薦,但是,在用戶中對(duì) 于那些目標(biāo)用戶沒有評(píng)分的項(xiàng)目,用戶的評(píng)分低于或是等于評(píng)分。所以即使此用戶對(duì)目標(biāo) 用戶具有一定的推薦能力,但是推薦的項(xiàng)目評(píng)分在目標(biāo)用戶中的評(píng)分也會(huì)是低于或等于目 標(biāo)用戶的平均評(píng)分。所以即使對(duì)目標(biāo)用戶推薦了,對(duì)目標(biāo)用戶也沒有太多的價(jià)值,目標(biāo)用戶 也不會(huì)對(duì)推薦的項(xiàng)目滿意。
[0019] ②若Rv>1 2 Rmid,表明用戶中存在目標(biāo)用戶沒有評(píng)分過的項(xiàng)目,并且未評(píng)分過的項(xiàng) 目對(duì)于目標(biāo)用戶具有推薦能力。因?yàn)?,在用戶中的用戶電影?xiàng)目評(píng)分比用戶平均評(píng)分要高, 這一點(diǎn)說明了用戶是對(duì)于此項(xiàng)目是喜歡的,對(duì)于目標(biāo)用戶也是具有推薦能力。
[0020] 經(jīng)過數(shù)據(jù)處理模塊對(duì)活動(dòng)用戶的劃分,可以很好的縮減計(jì)算目標(biāo)用戶與活動(dòng)用戶 的的計(jì)算時(shí)間。在完成了本模塊的處理后,將此模塊的處理后的數(shù)據(jù)輸出到下一級(jí)模塊中 去,進(jìn)行進(jìn)一步的處理。
[0021] 云模型模塊接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用逆向云發(fā) 生器實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通過數(shù)字特 征的來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選擇目標(biāo)用 戶的最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步的處理;
[0022] 通過云模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,評(píng)分預(yù)測(cè)模塊作評(píng)分預(yù)測(cè)函數(shù) 的數(shù)據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反饋給用戶。
[0023] 進(jìn)一步,所述特征遞增型的混合協(xié)同推薦系統(tǒng)采用基于項(xiàng)目的相似度來計(jì)算進(jìn)行 用戶電影矩陣中未評(píng)價(jià)項(xiàng)目的填充來代替?zhèn)鹘y(tǒng)的固定值的填充。
[0024] 進(jìn)一步,所述基于項(xiàng)目、用戶的協(xié)同過濾模塊,為了有效的解決用戶項(xiàng)目評(píng)分矩陣 中數(shù)據(jù)稀疏性的問題,在尋找目標(biāo)用戶u的最近鄰居之前,首先計(jì)算用戶i與用戶 2. · · ·η的評(píng)分的項(xiàng)目集合的并集Uij,用戶i和用戶j在項(xiàng)目集合Uij中未評(píng)分的 項(xiàng)目分別通過采用基于項(xiàng)目的協(xié)同過濾模塊和基于用戶的協(xié)同過濾模塊,找到相似的電影 項(xiàng)目、相似的用戶來對(duì)相似未評(píng)分的電影項(xiàng)目評(píng)分進(jìn)行預(yù)測(cè),從而達(dá)到用戶評(píng)分項(xiàng)目矩陣 的填充的效果,這種方法可以有效的解決相似度量和余弦相似性中對(duì)未評(píng)分的項(xiàng)目采用相 同值(補(bǔ)零的方法)或是使用當(dāng)前用戶的對(duì)電影的平均值進(jìn)行填充,所導(dǎo)致的推薦效果不佳 的問題,使得填充的預(yù)測(cè)評(píng)分?jǐn)?shù)更加接近用戶的個(gè)性化的表達(dá),從而提升推薦系統(tǒng)的整體 的推薦質(zhì)量;
[0025] 利用基于項(xiàng)目的協(xié)同推薦技術(shù),基于項(xiàng)目的協(xié)同過濾在查找對(duì)事物的關(guān)連性方面 的方式:在用戶電影矩陣中抽取一個(gè)電影項(xiàng)目定義為目標(biāo)項(xiàng)目,剩下來的電影項(xiàng)目被定義 為活動(dòng)項(xiàng)目。利用電影項(xiàng)目在對(duì)不同用戶的觀賞之后的評(píng)分信息,并采用余弦相似性公式 來計(jì)算,具體的方式是:在用戶評(píng)分項(xiàng)目矩陣中,將用戶的評(píng)分看為二維項(xiàng)目空間上的向 量。如果用戶對(duì)某些電影項(xiàng)目沒有進(jìn)行評(píng)分,則對(duì)未評(píng)分的項(xiàng)目設(shè)置為0。用戶之間的相似 性通過余弦夾角來進(jìn)行計(jì)算。設(shè)用戶與用戶在二維空間上的評(píng)分分別為向量和,用戶和用 戶的余弦相似性計(jì)算公式為:J') = cos(L乃=''~j 。表達(dá)式中,分子為兩個(gè)向量的內(nèi) U l-lil 積,分母為兩個(gè)項(xiàng)目模的乘積。通過計(jì)算兩個(gè)電影項(xiàng)目的用戶電影評(píng)分向量的余弦夾角來 計(jì)算兩用戶的相似度,在活動(dòng)項(xiàng)目中與目標(biāo)項(xiàng)目相似度最高的η個(gè)電影項(xiàng)目。根據(jù)最近鄰的 η個(gè)電影項(xiàng)目的用戶評(píng)分?jǐn)?shù)據(jù),來預(yù)測(cè)目標(biāo)電影項(xiàng)目沒有評(píng)分的可能值;緊接著將生成的偽 用戶電影矩陣,作為基于用戶的協(xié)同推薦的待處理矩陣進(jìn)行進(jìn)一步處理,采用基于用戶的 協(xié)同推薦技術(shù),其中基于用戶的協(xié)同過濾技術(shù)和基于項(xiàng)目的協(xié)同過濾工作的原理一樣,只 是改變計(jì)算項(xiàng)目的相似度為計(jì)算用戶的相似度,依次選取待填充的用戶為目標(biāo)用戶,剩下 來的用戶作為活動(dòng)用戶,找出最近鄰,對(duì)待填充的用戶項(xiàng)目進(jìn)行填充,具體方法和基于項(xiàng)目 的協(xié)同過濾技術(shù)大體相似,生成一個(gè)新的二維矩陣即偽二維表。
[0026] 進(jìn)一步,在進(jìn)行用戶電影矩陣中對(duì)未知電影項(xiàng)目評(píng)分的評(píng)分預(yù)測(cè)采用基于項(xiàng)目的 計(jì)算中,設(shè)用戶i在評(píng)分的項(xiàng)目集合的并集Uy中未評(píng)分的項(xiàng)目用Κ來表示,公式化表示:化 =U ij-li;
[0027] 對(duì)集合N沖的任意項(xiàng)目A,預(yù)測(cè)用戶i對(duì)項(xiàng)目A的評(píng)分A1>a方法為:
[0028] 計(jì)算項(xiàng)目A與其他項(xiàng)目之間的相似性與計(jì)算用戶之間的相似性為接近,首先對(duì)將 項(xiàng)目A作為目標(biāo)項(xiàng)目,再將剩下來的項(xiàng)目作為活動(dòng)項(xiàng)目;接著利用余弦相似性相似計(jì)算公 式,計(jì)算兩個(gè)項(xiàng)目之間相似性,找出與項(xiàng)目m中最近鄰居;
[0029]根據(jù)上一步計(jì)算出來的項(xiàng)目A的最近鄰居的集合,...,Iv},其中L·, 12,.. .,Iv,為根據(jù)與項(xiàng)目A的相似度的程度由高到低進(jìn)行排序的,即sima^Apsima^A), 以此類推;
[0030]在求出集合SA之后,對(duì)項(xiàng)目A和相似的項(xiàng)目1^12, ...,Iv中未評(píng)的項(xiàng)目進(jìn)行預(yù)測(cè)評(píng) 分,對(duì)項(xiàng)目A的預(yù)測(cè)評(píng)分采取相似的方法:
[0033] 在初步完成對(duì)用戶項(xiàng)目矩陣的填充之后,產(chǎn)生一個(gè)新的偽二維表,緊接著將生成 的偽二維表作為基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算;
[0034] 所述基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算為:首先,選定一個(gè)用戶i為目標(biāo)用戶, 剩下來的用戶j, je(l,2,3,. . .,i-l,i+l,. . .η)全部作為活動(dòng)用戶,通過相似度計(jì)算,找到 最相似的Ν個(gè)用戶集合Su= {ui,U2, . . .,un},其中用戶的相似度由ui到U2依次遞減,即sim (111,111)>8加(111,1 12)以此類推;通過最近鄰中活動(dòng)用戶已評(píng)分的項(xiàng)目來對(duì)目標(biāo)用戶中沒有 評(píng)分的電影項(xiàng)目進(jìn)行預(yù)測(cè):
[0036] 以上同時(shí)參數(shù)與基于項(xiàng)目的協(xié)同推薦所代表的含義意義相同,
[0037] 通過以上的方法可以對(duì)于用戶項(xiàng)目矩陣進(jìn)行兩次的填充,可以很好地起到降低用 戶項(xiàng)目矩陣稀疏性的作用,充分的解決了用戶對(duì)未評(píng)分電影項(xiàng)目直接填寫同一值,所導(dǎo)致 的個(gè)性化丟失的問題,接著將填充后的用戶評(píng)分項(xiàng)目矩陣作為輸出,傳遞到下一個(gè)數(shù)據(jù)處 理模塊之中,進(jìn)行進(jìn)一步的操作。
[0038]進(jìn)一步,所述數(shù)據(jù)處理模塊接受來自上一級(jí)基于用戶的協(xié)同過濾模塊的輸出作為 數(shù)據(jù)處理模塊的輸入,數(shù)據(jù)處理模塊對(duì)活動(dòng)用戶在項(xiàng)目矩陣中評(píng)分的和目標(biāo)用戶在評(píng)分矩 陣中待評(píng)分的用戶分類為有能力推薦用戶和無能力推薦用戶;
[0039] 對(duì)于目標(biāo)用戶u和活動(dòng)用戶ν各自的評(píng)分項(xiàng)目集合IU、IV,基于兩者之間的評(píng)價(jià)過項(xiàng) 目的并集I u,v,包括:
[0040] 1)若(c/",即對(duì)于We/,.,都有ieiu,對(duì)于Iv內(nèi)任意的一個(gè)項(xiàng)目評(píng)分,對(duì)應(yīng)的目標(biāo) 用戶的用戶電影矩陣中都有相應(yīng)的評(píng)分,用戶Iv的集合被包含于集合,用戶Iv對(duì)于目標(biāo)用戶 Iu沒有推薦能力,即為無能力推薦用戶;
[0041] 2)若/^/",即玉£/,.,且4/",即用戶1沖存在項(xiàng)目1在目標(biāo)用戶中沒有評(píng)分過; 對(duì)于項(xiàng)目i還包括兩種情況:
[0042] ①若Rv>1<Rmid,即活動(dòng)用戶V,對(duì)目標(biāo)用戶進(jìn)行推薦,但是,在用戶中對(duì)于那些目標(biāo) 用戶沒有評(píng)分的項(xiàng)目,用戶的評(píng)分低于或是等于評(píng)分。所以即使此用戶對(duì)目標(biāo)用戶具有一 定的推薦能力,但是推薦的項(xiàng)目評(píng)分在目標(biāo)用戶中的評(píng)分也會(huì)是低于或等于目標(biāo)用戶的平 均評(píng)分。所以即使對(duì)目標(biāo)用戶推薦了,對(duì)目標(biāo)用戶也沒有太多的價(jià)值,目標(biāo)用戶也不會(huì)對(duì)推 薦的項(xiàng)目滿意。
[0043] ②若Rv>1 2 Rmid,表明用戶中存在目標(biāo)用戶沒有評(píng)分過的項(xiàng)目,并且未評(píng)分過的項(xiàng) 目對(duì)于目標(biāo)用戶具有推薦能力。因?yàn)?,在用戶中的?xiàng)目評(píng)分比用戶平均評(píng)分要高,這一點(diǎn)說 明了用戶是對(duì)于此項(xiàng)目是喜歡的,對(duì)于目標(biāo)用戶也是具有推薦能力;
[0044] 經(jīng)過數(shù)據(jù)處理模塊對(duì)活動(dòng)用戶的劃分,可以很好的縮減計(jì)算目標(biāo)用戶與活動(dòng)用戶 的的計(jì)算時(shí)間,在完成了本模塊的處理后,將此模塊的處理后的數(shù)據(jù)輸出到下一級(jí)模塊中 去,進(jìn)彳丁進(jìn)一步的處理。
[0045]進(jìn)一步,所述云模型模塊處理的數(shù)據(jù)是來自上一級(jí)的數(shù)據(jù)處理模塊,通過采用逆 向云算發(fā)生器,可以實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,可以將用戶評(píng)分項(xiàng)目中的一組用戶 電影矩陣通過數(shù)字特征的{Ex,En,He}來定性的表述用戶的特定項(xiàng)目偏好模型,其中Ex為期 望、En為熵、He為超熵;然后通過用戶之間的云模型的匹配來進(jìn)行相似用戶的選擇,這一模 塊輸出與目標(biāo)用戶最相似的η個(gè)鄰居,作為推薦模塊的輸入;本模塊中接受來自上一級(jí)模塊 填充過的用戶項(xiàng)目評(píng)分矩陣。
[0046] 并利用逆向云算發(fā)生器,分別求出目標(biāo)用戶i與活動(dòng)用戶j的評(píng)分特征向量 ,匕=(&,.£",,/-/t';)其中 je(l,2,3,…,i-l,i+l,·· ·η),利用余弦夾角 公式
[0047] 計(jì)算目標(biāo)用戶i的特征向量R與活動(dòng)用戶j的特征向量&之間的相似度:
[0049]在兩個(gè)云之間有如下的特點(diǎn):sim(i,i) = 1,即云本身與自己的相似度為1;
[0050] s im(i,j) = s im(j,i),即對(duì)稱性,通俗講:云i與云j的相似度等于云j與云i的相似 度;
[0051] 將用戶電影矩陣中的電影評(píng)分?jǐn)?shù)字信息,通過逆向云發(fā)生器,進(jìn)行定量表示轉(zhuǎn)化 為定性概念描述;這樣做的好處在于:用戶評(píng)分頻度不再僅僅專注與具體的項(xiàng)目的評(píng)分,而 關(guān)心的是用戶的整體項(xiàng)目評(píng)分情況,并且能夠充分的利用用戶的電影項(xiàng)目的全部評(píng)價(jià)記 錄;在進(jìn)行用戶之間的相似性度量,無需進(jìn)行嚴(yán)格的用戶評(píng)分的屬性匹配,可以充分利用用 戶的評(píng)分信息,在一定程度上又為數(shù)據(jù)稀疏性問題,提供了一個(gè)全新的解決問題的切入點(diǎn);
[0052] 完成本模塊后,將會(huì)得到目標(biāo)用戶i與目標(biāo)用戶j之間的相似性的全部數(shù)據(jù),將計(jì) 算的數(shù)據(jù)作為輸出,傳遞到下一級(jí)模塊進(jìn)行進(jìn)一步的處理。
[0053] 進(jìn)一步,所述評(píng)分預(yù)測(cè)模塊進(jìn)行最后一步操作:產(chǎn)生相應(yīng)的推薦,假設(shè)目標(biāo)用戶的 t的最近鄰居用集合Ut來表示,因此,目標(biāo)用戶t對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分表示為PmPu可以通 過最近鄰居的評(píng)分來預(yù)測(cè)到,計(jì)算公式如下:
[0055]表達(dá)式中,sim(t,n)表示用戶t與用戶η的相識(shí)度,Rn,i代表用戶η對(duì)于項(xiàng)目i的評(píng) 分,尾代表用戶η項(xiàng)目的平均評(píng)分;
[0056] 通過這四個(gè)模塊的協(xié)同工作,并結(jié)合用戶的個(gè)人的興趣愛好、打分記錄,最終完成 對(duì)用戶未評(píng)分過的電影進(jìn)行預(yù)測(cè)評(píng)分。
[0057] 進(jìn)一步,所述逆向云算發(fā)生器逆向云算法為:
[0058] 輸入:η 個(gè)云滴{χ1,Χ2,···,Χη};
[0059] 輸出:這η個(gè)云滴表示的定性概念的表述{Ex,En,He};
[0060] 步驟包括:
[0061] 1)根據(jù)用戶的評(píng)分矩陣中的值Xl,來計(jì)算樣本的平均值: ,一階樣本的 絕對(duì)中心距:
[0062] 2)Ex的估計(jì)值為£1 =無 (2),
[0065] 本發(fā)明的另一目的在于提供一種基于特征遞增型的電影個(gè)性化推薦系統(tǒng),該基于 特征遞增型的電影個(gè)性化推薦系統(tǒng)包括:基于項(xiàng)目的協(xié)同過濾模塊、基于用戶的協(xié)同過濾 模塊、數(shù)據(jù)處理模塊、云模型模塊和評(píng)分預(yù)測(cè)模塊;
[0066] 所述基于項(xiàng)目的協(xié)同過濾模塊用于接收系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦 系統(tǒng)中輸入的用戶電影矩陣信號(hào)并對(duì)用戶電影矩陣進(jìn)行填充,用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用 戶電影矩陣生成一個(gè)偽二維表,以輸出的形式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中;
[0067] 所述基于用戶的協(xié)同過濾模塊用于接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸 出為本模塊的輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,進(jìn)一步緩解 數(shù)據(jù)稀疏性的問題,接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣來更新偽二維表,以輸出 的形式輸入到下一個(gè)數(shù)據(jù)處理模塊中;
[0068] 所述數(shù)據(jù)處理模塊用于接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí) 模塊的輸入,將用戶分為有能力推薦的用戶和無能力推薦的用戶,再將無能力推薦的用戶 從用戶電影矩陣中剔除,更新用戶電影矩陣以輸出的形式傳遞給下一個(gè)云模型模塊中; [0069]所述云模型模塊用于接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用 逆向云發(fā)生器實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通 過數(shù)字特征的來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選 擇目標(biāo)用戶的最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步 的處理;
[0070]所述評(píng)分預(yù)測(cè)模塊用于通過云模型模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,作 評(píng)分預(yù)測(cè)函數(shù)的數(shù)據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反 饋給用戶。
[0071 ]本發(fā)明通過分析海量數(shù)據(jù)給現(xiàn)有的個(gè)性化推薦系統(tǒng)帶來的問題,論述個(gè)性化推薦 系統(tǒng)向云計(jì)算平臺(tái)轉(zhuǎn)移的必要性及可行性,結(jié)合采用了特征遞增型的混合推薦模型,首先 將原本極端稀疏的用戶項(xiàng)目評(píng)分矩陣采用基于項(xiàng)目的協(xié)同過濾算法進(jìn)行第一次填充生成 一個(gè)偽二維表,接著再次使用基于用戶的協(xié)同過濾算法再對(duì)偽二維表進(jìn)行進(jìn)一步填充,最 后采用云模塊的定量知識(shí)與定性知識(shí)的轉(zhuǎn)化避免了嚴(yán)格的對(duì)象屬性匹配的不足,充分利用 了用戶的每一個(gè)評(píng)分?jǐn)?shù)據(jù),并充分利用了云計(jì)算的并行計(jì)算大大的提高了運(yùn)算效率和速 度,從而為用戶提供了更好的體驗(yàn),也為企業(yè)到了競(jìng)爭(zhēng)中的優(yōu)勢(shì),本發(fā)明能夠有效地解決數(shù) 據(jù)稀疏問題,顯著地提高推薦系統(tǒng)的推薦質(zhì)量;
【附圖說明】
[0072] 圖1是本發(fā)明實(shí)施例提供的基于特征遞增型的電影個(gè)性化推薦方法流程圖。
[0073] 圖2是本發(fā)明實(shí)施例提供的基于特征遞增型的電影個(gè)性化推薦系統(tǒng)特框架圖。
【具體實(shí)施方式】
[0074] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明 進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于 限定本發(fā)明。
[0075] 下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步描述。
[0076] 如圖1所示:一種基于特征遞增型的電影個(gè)性化推薦方法,該基于特征遞增型的電 影個(gè)性化推薦方法包括以下步驟:
[0077]系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦系統(tǒng)中輸入用戶電影矩陣;
[0078] 調(diào)用基于項(xiàng)目的協(xié)同過濾模塊對(duì)用戶電影矩陣進(jìn)行填充,從而緩解用戶電影矩陣 的稀疏性問題;接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣生成一個(gè)偽二維表,以輸出的 形式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中;
[0079] 基于用戶的協(xié)同過濾模塊接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸出為本模 塊的輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,進(jìn)一步緩解數(shù)據(jù)稀疏 性的問題,接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣來更新偽二維表,以輸出的形式輸 入到下一個(gè)數(shù)據(jù)處理模塊中;
[0080] 數(shù)據(jù)處理模塊接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí)模塊的輸 入,系統(tǒng)根據(jù)預(yù)先定義的條件判斷,將用戶分為有能力推薦的用戶和無能力推薦的用戶,再 將無能力推薦的用戶從用戶電影矩陣中剔除,更新用戶電影矩陣以輸出的形式傳遞給下一 個(gè)云模型模塊中;
[0081] 云模型模塊接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用逆向云發(fā) 生器實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通過數(shù)字特 征的來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選擇目標(biāo)用 戶的最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步的處理;
[0082] 通過云模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,評(píng)分預(yù)測(cè)模塊作評(píng)分預(yù)測(cè)函數(shù) 的數(shù)據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反饋給用戶。
[0083] 進(jìn)一步,所述特征遞增型的混合協(xié)同推薦系統(tǒng)采用基于項(xiàng)目的相似度來計(jì)算進(jìn)行 用戶電影矩陣中未評(píng)價(jià)項(xiàng)目的填充來代替?zhèn)鹘y(tǒng)的固定值的填充。
[0084] 進(jìn)一步,所述基于項(xiàng)目、用戶的協(xié)同過濾模塊,為了有效的解決用戶項(xiàng)目評(píng)分矩陣 中數(shù)據(jù)稀疏性的問題,在尋找目標(biāo)用戶1:的最近鄰居之前,首先計(jì)算用戶i與用戶j,jei, 2. · · ·η的評(píng)分的項(xiàng)目集合的并集Uij,用戶i和用戶j在項(xiàng)目集合Uij中未評(píng)分的 項(xiàng)目分別通過采用基于項(xiàng)目的協(xié)同過濾模塊和基于用戶的協(xié)同過濾模塊,找到相似的電影 項(xiàng)目、相似的用戶來對(duì)相似未評(píng)分的電影項(xiàng)目評(píng)分進(jìn)行預(yù)測(cè),從而達(dá)到用戶評(píng)分項(xiàng)目矩陣 的填充的效果,這種方法可以有效的解決相似度量和余弦相似性中對(duì)未評(píng)分的項(xiàng)目采用相 同值(補(bǔ)零的方法)或是使用當(dāng)前用戶的對(duì)電影的平均值進(jìn)行填充,所導(dǎo)致的推薦效果不佳 的問題,使得填充的預(yù)測(cè)評(píng)分?jǐn)?shù)更加接近用戶的個(gè)性化的表達(dá),從而提升推薦系統(tǒng)的整體 的推薦質(zhì)量;
[0085] 利用基于項(xiàng)目的協(xié)同推薦技術(shù),挨個(gè)選取待填充的用戶定為目標(biāo)用戶,剩下來的 用戶作為活動(dòng)用戶,采用基于項(xiàng)目的協(xié)同推薦對(duì)待填充的用戶進(jìn)行填充,本發(fā)明對(duì)待填充 的目標(biāo)用戶推薦15個(gè)最近鄰,進(jìn)行推薦,直至對(duì)每一個(gè)用戶都遍歷一遍,產(chǎn)生一個(gè)填充后的 二維表即偽用戶項(xiàng)目矩陣;
[0086] 緊接著將生成的偽用戶項(xiàng)目矩陣,作為基于用戶的協(xié)同推薦的待處理矩陣進(jìn)行進(jìn) 一步處理,采用基于用戶的協(xié)同推薦技術(shù),依次選取待填充的用戶為目標(biāo)用戶,剩下來的用 戶作為活動(dòng)用戶,找出最近鄰,對(duì)待填充的用戶項(xiàng)目進(jìn)行填充,具體方法和基于項(xiàng)目的協(xié)同 過濾技術(shù)大體相似,生成一個(gè)新的二維矩陣即偽二維表。
[0087] 進(jìn)一步,在進(jìn)行用戶項(xiàng)目矩陣中對(duì)未知項(xiàng)目評(píng)分的評(píng)分預(yù)測(cè)采用基于項(xiàng)目的計(jì)算 中,設(shè)用戶i在評(píng)分的項(xiàng)目集合的并集U i沖未評(píng)分的項(xiàng)目用化來表示,公式化表示:N1= U ij-li;
[0088] 對(duì)集合N沖的任意項(xiàng)目A,預(yù)測(cè)用戶i對(duì)項(xiàng)目A的評(píng)分A1>a方法為:
[0089] 計(jì)算項(xiàng)目A與其他項(xiàng)目之間的相似性與計(jì)算用戶之間的相似性為接近,首先對(duì)抽 離出項(xiàng)目A與其他項(xiàng)目m之間的用戶評(píng)分的數(shù)據(jù);接著利用2.3節(jié)中的相似性度量的計(jì)算公 式,計(jì)算兩個(gè)項(xiàng)目之間相似性,找出與項(xiàng)目m中最近鄰居;
[0090] 根據(jù)上一步計(jì)算出來的項(xiàng)目A的最近鄰居的集合,...,Iv},其中L·, 工2,.. .,Iv,為根據(jù)與項(xiàng)目A的相似度的程度由高到低進(jìn)行排序的,即sima^Apsima^A), 以此類推;
[0091 ]在求出集合SA之后,對(duì)項(xiàng)目A和相似的項(xiàng)目,I2,. . .,Iv中未評(píng)的項(xiàng)目進(jìn)行預(yù)測(cè)評(píng) 分,采用2.3節(jié)的預(yù)測(cè)方法,對(duì)其他的項(xiàng)目的預(yù)測(cè)評(píng)分采取相似的方法:
[0094] 在初步完成對(duì)用戶項(xiàng)目矩陣的填充之后,產(chǎn)生一個(gè)新的偽二維表,緊接著將生成 的偽二維表作為基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算;
[0095] 所述基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算為:首先,選定一個(gè)用戶i為目標(biāo)用戶, 剩下來的用戶j, je(l,2,3,. . .,i-l,i+l,. . .η)全部作為活動(dòng)用戶,通過相似度計(jì)算,找到 最相似的Ν個(gè)用戶集合Su= {ui,U2, . . .,un},其中用戶的相似度由ui到U2依次遞減,即sim (111,111)>8加(111,1 12)以此類推;通過最近鄰中活動(dòng)用戶已評(píng)分的項(xiàng)目來對(duì)目標(biāo)用戶中沒有 評(píng)分的電影項(xiàng)目進(jìn)行預(yù)測(cè):
[0097] 以上同時(shí)參數(shù)與基于項(xiàng)目的協(xié)同推薦所代表的含義意義相同,
[0098] 通過以上的方法可以對(duì)于用戶項(xiàng)目矩陣進(jìn)行兩次的填充,可以很好地起到降低用 戶項(xiàng)目矩陣稀疏性的作用,充分的解決了用戶對(duì)未評(píng)分電影項(xiàng)目直接填寫同一值,所導(dǎo)致 的個(gè)性化丟失的問題,接著將填充后的用戶評(píng)分項(xiàng)目矩陣作為輸出,傳遞到下一個(gè)數(shù)據(jù)處 理模塊之中,進(jìn)行進(jìn)一步的操作。
[0099]進(jìn)一步,所述數(shù)據(jù)處理模塊接受來自上一級(jí)基于用戶的協(xié)同過濾模塊的輸出作為 數(shù)據(jù)處理模塊的輸入,數(shù)據(jù)處理模塊對(duì)活動(dòng)用戶在項(xiàng)目矩陣中評(píng)分的和目標(biāo)用戶在評(píng)分矩 陣中待評(píng)分的用戶分類為有能力推薦用戶和無能力推薦用戶;
[0100] 對(duì)于目標(biāo)用戶U和活動(dòng)用戶V各自的評(píng)分項(xiàng)目集合Iu、Iv,基于兩者之間的評(píng)價(jià)過項(xiàng) 目的并集Iu, v,包括:
[0101] 1)若/'4,即對(duì)于We/,.,都有ieiu,對(duì)于Iv內(nèi)任意的一個(gè)項(xiàng)目評(píng)分,對(duì)應(yīng)的目標(biāo) 用戶的用戶電影矩陣中都有相應(yīng)的評(píng)分,用戶Iv的集合被包含于集合,用戶Iv對(duì)于目標(biāo)用戶 Iu沒有推薦能力,即為無能力推薦用戶;
[0102] 2)若4這V,即又,且化夂,即用戶I,中存在項(xiàng)目i,在目標(biāo)用戶中沒有評(píng)分過; 對(duì)于項(xiàng)目i還包括兩種情況:
[0103] ①若Rv>1<Rmid,即活動(dòng)用戶V,對(duì)目標(biāo)用戶進(jìn)行推薦,但是,在用戶中對(duì)于那些目標(biāo) 用戶沒有評(píng)分的項(xiàng)目,用戶的評(píng)分低于或是等于評(píng)分。所以即使此用戶對(duì)目標(biāo)用戶具有一 定的推薦能力,但是推薦的項(xiàng)目評(píng)分在目標(biāo)用戶中的評(píng)分也會(huì)是低于或等于目標(biāo)用戶的平 均評(píng)分。所以即使對(duì)目標(biāo)用戶推薦了,對(duì)目標(biāo)用戶也沒有太多的價(jià)值,目標(biāo)用戶也不會(huì)對(duì)推 薦的項(xiàng)目滿意。
[0104] ②若Rv,PRmid,表明用戶中存在目標(biāo)用戶沒有評(píng)分過的項(xiàng)目,并且未評(píng)分過的項(xiàng) 目對(duì)于目標(biāo)用戶具有推薦能力。因?yàn)椋谟脩糁械捻?xiàng)目評(píng)分比用戶平均評(píng)分要高,這一點(diǎn)說 明了用戶是對(duì)于此項(xiàng)目是喜歡的,對(duì)于目標(biāo)用戶也是具有推薦能力;
[0105] 經(jīng)過數(shù)據(jù)處理模塊對(duì)活動(dòng)用戶的劃分,可以很好的縮減計(jì)算目標(biāo)用戶與活動(dòng)用戶 的的計(jì)算時(shí)間,在完成了本模塊的處理后,將此模塊的處理后的數(shù)據(jù)輸出到下一級(jí)模塊中 去,進(jìn)彳丁進(jìn)一步的處理。
[0106] 進(jìn)一步,所述云模型模塊處理的數(shù)據(jù)是來自上一級(jí)的數(shù)據(jù)處理模塊,通過采用逆 向云算發(fā)生器,可以實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,可以將用戶評(píng)分項(xiàng)目中的一組用戶 電影矩陣通過數(shù)字特征的{Ex,En,He}來定性的表述用戶的特定項(xiàng)目偏好模型,其中Ex為期 望、En為熵、He為超熵;然后通過用戶之間的云模型的匹配來進(jìn)行相似用戶的選擇,這一模 塊輸出與目標(biāo)用戶最相似的η個(gè)鄰居,作為推薦模塊的輸入;本模塊中接受來自上一級(jí)模塊 填充過的用戶項(xiàng)目評(píng)分矩陣。
[0107] 并利用逆向云算發(fā)生器,分別求出目標(biāo)用戶i與活動(dòng)用戶j的評(píng)分特征向量 K ,匕=(&,.£",,/-/t';)其中 je(l,2,3,…,i-l,i+l,·· ·η),利用余弦夾角 公式
[0108]計(jì)算目標(biāo)用戶i的特征向量Μ與活動(dòng)用戶j的特征向量&.之間的相似度:
[0110]在兩個(gè)云之間有如下的特點(diǎn):sim(i,i) = l,即云本身與自己的相似度為1;
[0111 ] s im(i,j) = s im(j,i),即對(duì)稱性,通俗講:云i與云j的相似度等于云j與云i的相似 度;
[0112]將用戶電影矩陣中的電影評(píng)分?jǐn)?shù)字信息,通過逆向云發(fā)生器,進(jìn)行定量表示轉(zhuǎn)化 為定性概念描述;這樣做的好處在于:用戶評(píng)分頻度不再僅僅專注與具體的項(xiàng)目的評(píng)分,而 關(guān)心的是用戶的整體項(xiàng)目評(píng)分情況,并且能夠充分的利用用戶的電影項(xiàng)目的全部評(píng)價(jià)記 錄;在進(jìn)行用戶之間的相似性度量,無需進(jìn)行嚴(yán)格的用戶評(píng)分的屬性匹配,可以充分利用用 戶的評(píng)分信息,在一定程度上又為數(shù)據(jù)稀疏性問題,提供了一個(gè)全新的解決問題的切入點(diǎn); [0113]完成本模塊后,將會(huì)得到目標(biāo)用戶i與目標(biāo)用戶j之間的相似性的全部數(shù)據(jù),將計(jì) 算的數(shù)據(jù)作為輸出,傳遞到下一級(jí)模塊進(jìn)行進(jìn)一步的處理。
[0114]進(jìn)一步,所述評(píng)分預(yù)測(cè)模塊進(jìn)行最后一步操作:產(chǎn)生相應(yīng)的推薦,假設(shè)目標(biāo)用戶的 t的最近鄰居用集合Ut來表示,因此,目標(biāo)用戶t對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分表示為PmPu可以通 過最近鄰居的評(píng)分來預(yù)測(cè)到,計(jì)算公式如下:
[0116] 表達(dá)式中,sim(t,n)表示用戶t與用戶η的相識(shí)度,Rn,i代表用戶η對(duì)于項(xiàng)目i的評(píng) 分,瓦代表用戶η項(xiàng)目的平均評(píng)分;
[0117] 通過這四個(gè)模塊的協(xié)同工作,并結(jié)合用戶的個(gè)人的興趣愛好、打分記錄,最終完成 對(duì)用戶未評(píng)分過的電影進(jìn)行預(yù)測(cè)評(píng)分。
[0118] 進(jìn)一步,所述逆向云算發(fā)生器逆向云算法為:
[0119] 輸入:η個(gè)云滴{χι,Χ2, · · ·,χη};
[0120] 輸出:這η個(gè)云滴表示的定性概念的表述{Ex,En,He};
[0121] 步驟包括:
[0122] 1)根據(jù)用戶的評(píng)分矩陣中的值Xl,來計(jì)算樣本的平均值: ,一階樣本的
[0123] 2)Ex的估計(jì)值為於=1 (2);
[0126]本發(fā)明提供一種基于特征遞增型的電影個(gè)性化推薦系統(tǒng),該基于特征遞增型的電 影個(gè)性化推薦系統(tǒng)包括:基于項(xiàng)目的協(xié)同過濾模塊、基于用戶的協(xié)同過濾模塊、數(shù)據(jù)處理模 塊、云模型模塊和評(píng)分預(yù)測(cè)模塊;
[0127] 所述基于項(xiàng)目的協(xié)同過濾模塊用于接收系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦 系統(tǒng)中輸入的用戶電影矩陣信號(hào)并對(duì)用戶電影矩陣進(jìn)行填充,用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用 戶電影矩陣生成一個(gè)偽二維表,以輸出的形式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中;
[0128] 所述基于用戶的協(xié)同過濾模塊用于接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸 出為本模塊的輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,進(jìn)一步緩解 數(shù)據(jù)稀疏性的問題,接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣來更新偽二維表,以輸出 的形式輸入到下一個(gè)數(shù)據(jù)處理模塊中;
[0129] 所述數(shù)據(jù)處理模塊用于接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí) 模塊的輸入,將用戶分為有能力推薦的用戶和無能力推薦的用戶,再將無能力推薦的用戶 從用戶電影矩陣中剔除,更新用戶電影矩陣以輸出的形式傳遞給下一個(gè)云模型模塊中; [0130]所述云模型模塊用于接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用 逆向云發(fā)生器實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通 過數(shù)字特征的來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選 擇目標(biāo)用戶的最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步 的處理;
[0131] 所述評(píng)分預(yù)測(cè)模塊用于通過云模型模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,作 評(píng)分預(yù)測(cè)函數(shù)的數(shù)據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反 饋給用戶。
[0132] 下面結(jié)合具體實(shí)施例對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步描述。
[0133] 2、由于協(xié)同過濾算法在推薦的新穎性、長(zhǎng)尾效應(yīng)上的優(yōu)勢(shì),這就把協(xié)同推薦技術(shù) 推向了推薦系統(tǒng)中最為成功的技術(shù)之一的高度。眾所周知,20世紀(jì)90年代PARC研究中心,為 了解決郵件列表無法通過郵件列表和關(guān)鍵字過濾,開發(fā)了 Tapestry系統(tǒng)。它是第一個(gè)協(xié)同 過濾推薦系統(tǒng),但是它所提出的協(xié)同推薦系統(tǒng)存在兩個(gè)缺點(diǎn):需要用戶自己對(duì)文檔進(jìn)行評(píng) 價(jià)、需要用戶進(jìn)行明確地指出與自己偏好相同的其他的用戶。鑒于Tapestry的優(yōu)點(diǎn)與不足, 明尼蘇達(dá)州立大學(xué)研究團(tuán)隊(duì)研發(fā)了GroupLens新聞組的協(xié)同過濾系統(tǒng),它可以完成基于用 戶評(píng)分的自動(dòng)化協(xié)同化過濾推薦。不單單是在學(xué)術(shù)界,推薦算法在商業(yè)界的使用更是赤手 可熱,并且為公司帶了來相當(dāng)可觀的經(jīng)濟(jì)效益。目前,幾乎所有的大型的電子商務(wù)網(wǎng)站,如 天貓、京東以及亞馬遜等都采用了協(xié)同過濾技術(shù)。
[0134] 2.1協(xié)同過濾
[0135] 協(xié)同過濾的工作原理是依靠他人對(duì)項(xiàng)目集的評(píng)價(jià),來為當(dāng)事人對(duì)相關(guān)項(xiàng)目的評(píng)價(jià) 提供依據(jù)的行為。因?yàn)樗藢?duì)項(xiàng)目的評(píng)價(jià)或是選擇都是經(jīng)過深思熟慮,已經(jīng)過濾掉了大部 分的無用數(shù)據(jù),可以把協(xié)同過濾看作是利用人的判斷動(dòng)作,把不良信息過濾掉留下有用的 信息為自己所用的技術(shù)。因此,協(xié)同過濾也叫做社會(huì)過濾(social col laboration filtering)。協(xié)同推薦算法分為兩大類:基于模型算法(Memory-based)和基于內(nèi)存算法 (Model-based)?;趦?nèi)存算法在整個(gè)用戶數(shù)據(jù)庫上運(yùn)行,來進(jìn)行預(yù)測(cè)。一般,進(jìn)行目標(biāo)用戶 的最近鄰居的查找技術(shù)上采用的是傳統(tǒng)的統(tǒng)計(jì)學(xué)的方法。而基于模型的算法,主要是使用 用戶的歷史數(shù)據(jù),通過某種機(jī)器學(xué)習(xí)的方法來構(gòu)建一個(gè)用戶的評(píng)分模型,再將用戶的評(píng)分 情況輸入到評(píng)分模型中。系統(tǒng)采用概率方法來預(yù)測(cè)用戶對(duì)于沒有進(jìn)行評(píng)分的評(píng)分?;谀?型的算法有:Bayesian網(wǎng)絡(luò)技術(shù)、關(guān)聯(lián)技術(shù)以及Horting圖技術(shù)。
[0136] 基于模型的協(xié)同過濾算法比基于內(nèi)存的協(xié)同過濾算法節(jié)約了模型建立的訓(xùn)練時(shí) 間。但是對(duì)于新項(xiàng)目、新用戶信息進(jìn)入系統(tǒng)時(shí),需要重新訓(xùn)練和建立模型,這又導(dǎo)致了時(shí)間 的耗費(fèi)。在電子商務(wù)網(wǎng)站中,由于新用戶的信息和新項(xiàng)目的信息增長(zhǎng)速度相當(dāng)之快,導(dǎo)致了 基于模型的協(xié)同過濾算法模型的重新訓(xùn)練時(shí)間大大變長(zhǎng)。實(shí)際應(yīng)用中推薦系統(tǒng)的質(zhì)量很難 保證,使得基于模型的協(xié)同過濾算法的優(yōu)勢(shì)大大降低。本發(fā)明所采用的就是基于內(nèi)存的協(xié) 同過濾算法。
[0137] 協(xié)同過濾的核心思想是根據(jù)具有相似偏好的類似用戶來對(duì)用戶進(jìn)行推薦或預(yù)測(cè)。 協(xié)同過濾就是根據(jù)一個(gè)用戶的歷史項(xiàng)目評(píng)分?jǐn)?shù)據(jù)結(jié)合整個(gè)用戶群體對(duì)項(xiàng)目評(píng)分?jǐn)?shù)據(jù),從而 來預(yù)測(cè)用戶的某個(gè)未評(píng)分的項(xiàng)目的評(píng)分情況。Sarwar等人依據(jù)協(xié)同過濾中依賴的事物之間 的關(guān)聯(lián)性,將協(xié)同過濾作為一種成功地利用群體智慧的一種有效方法被分為:基于用戶的 協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾?;谟脩舻膮f(xié)同過濾在查找對(duì)事物的關(guān)連性方面的方 式:在用戶項(xiàng)目矩陣中抽取一個(gè)用戶定義為目標(biāo)用戶,剩下來的用戶被定義為活動(dòng)用戶。利 用用戶對(duì)不同電影的評(píng)分信息,并采用余弦相似性公式或相關(guān)相似性公式來計(jì)算出在活動(dòng) 用戶中與目標(biāo)用戶相似度最高的η個(gè)用戶。根據(jù)最近鄰的η個(gè)用戶的項(xiàng)目評(píng)分?jǐn)?shù)據(jù),來預(yù)測(cè) 目標(biāo)用戶沒有評(píng)分的項(xiàng)目的可能值。一個(gè)最為常用的相似度計(jì)算方式:可以將每組用戶對(duì) 項(xiàng)目的評(píng)分?jǐn)?shù)據(jù)看為二維坐標(biāo)中的一個(gè)向量,通過計(jì)算兩個(gè)用戶的評(píng)分項(xiàng)目向量的余弦夾 角來計(jì)算兩用戶的相似度。基于項(xiàng)目的協(xié)同過濾技術(shù)和基于用戶的協(xié)同過濾工作的原理一 樣,只是改變計(jì)算用戶的相似度為計(jì)算項(xiàng)目的相似度。利用各個(gè)項(xiàng)目中用戶的評(píng)分?jǐn)?shù)據(jù),并 結(jié)合相似度計(jì)算公式來進(jìn)行計(jì)算項(xiàng)目之間的相似度計(jì)算。
[0138] 協(xié)同過濾算法原理通俗易懂,存在著如下優(yōu)點(diǎn):
[0139] 能夠過濾掉機(jī)器難以自動(dòng)分析的內(nèi)容。比如:藝術(shù)品、電影、歌曲等,這一點(diǎn)基于內(nèi) 容的推薦算法很難實(shí)現(xiàn);
[0140] 能夠給用戶推薦新項(xiàng)目。即推薦給用戶以前沒有關(guān)注或沒有留意的新項(xiàng)目;
[0141]能夠依照用戶的品味和項(xiàng)目質(zhì)量來進(jìn)行推薦;
[0142] 但是協(xié)同過濾也存在著缺點(diǎn):
[0143] 數(shù)據(jù)稀疏問題;
[0144] 冷啟動(dòng)問題;
[0145] 同義詞問題;
[0146] 擴(kuò)展性問題;
[0147] 本發(fā)明主要針對(duì)數(shù)據(jù)稀疏性問題進(jìn)行了分析。
[0148] 2 · 2數(shù)據(jù)稀疏性處理
[0149] 針對(duì)用戶對(duì)電影的評(píng)分的數(shù)據(jù)稀疏性問題,目前主流行的方法有:算法性能的提 升、數(shù)據(jù)填充技術(shù)、數(shù)據(jù)降維技術(shù)。其中改善算法性能是獨(dú)立于數(shù)據(jù)而存在的一種方式,可 單獨(dú)作為一類。數(shù)據(jù)填充技術(shù)和數(shù)據(jù)降維技術(shù)都是從數(shù)據(jù)的角度出發(fā),可以看做減少數(shù)據(jù) 集的稀疏性的一類。
[0150] 算法性能提升,作為獨(dú)立于數(shù)據(jù)之外的一種處理數(shù)據(jù)稀疏性的方法,在推薦系統(tǒng) 前期的發(fā)展有著很大的作用。但是隨著算法的性能的不斷提優(yōu),使得單單從算法性能方面 去解數(shù)據(jù)稀疏性所帶來的邊際效應(yīng)越來越低。再在這方面投入了大量的人力和財(cái)力最終帶 來的效果未必比以前好多少,一味的追求小數(shù)點(diǎn)后幾位的精確度已然沒有太大必要。并且, 算法性能提升難度系數(shù)越來越高。
[0151] 數(shù)據(jù)降維技術(shù)中,常常使用到矩陣降維技術(shù):奇異值分解(Singular Value Decomposition SVD),SVD深入揭發(fā)了矩陣的內(nèi)部結(jié)構(gòu),它可以將一個(gè)mXn的矩陣A分解為 三個(gè)矩陣:T,S,V:
[0152] A = TXSXVT; (1)
[0153] 表達(dá)式中,T是一個(gè)mXm的方陣(TXTT=I),S是一個(gè)mXn的矩陣,并且除了對(duì)角線 其余的元素都是"0",對(duì)角線上的數(shù)值由左上向右下依次遞減,且為非零值,即表示為: 〇1> 〇2> ... >ση>〇。奇異值分解可以將一個(gè)矩陣表不為一個(gè)比它矩陣秩要低的矩陣。
[0154] 理論上采用SVD技術(shù)可以在用戶電影矩陣中,
[0155] 將原本上稀疏的評(píng)分矩陣降維成一個(gè)無缺失值的用戶電影評(píng)分矩陣,并且這個(gè)矩 陣能夠很好的代表用戶電影矩陣的主要的特征。通過計(jì)算一個(gè)經(jīng)過SVD處理過的非稀疏用 戶電影矩陣,來計(jì)算用戶的相似度,進(jìn)而進(jìn)行更好的用戶電影推薦,并克服了數(shù)據(jù)評(píng)分稀疏 性這一弊病。然而,用戶電影評(píng)分矩陣一般情況下是一個(gè)數(shù)據(jù)極具稀疏的二維矩陣。往往通 過SVD技術(shù),會(huì)使得原本兩個(gè)具有相同電影評(píng)分的項(xiàng)目經(jīng)過降維后變得沒有共同評(píng)分項(xiàng)目, 從而不能進(jìn)行有效推薦。
[0156] 從用戶對(duì)電影的點(diǎn)播意愿來看,用戶一般在對(duì)當(dāng)前電影表示的感興趣的情況下才 會(huì)選擇點(diǎn)擊查看。在遇到自己不喜歡的類型電影時(shí),一般用戶是不會(huì)對(duì)電影進(jìn)行點(diǎn)擊查看。 所以作者認(rèn)為,用戶評(píng)分過的電影都是用戶潛意識(shí)里喜歡的電影,之所以評(píng)分會(huì)低,是因?yàn)?電影本身的表達(dá)形式?jīng)]有能夠滿足用戶心理的期望。簡(jiǎn)簡(jiǎn)單單的通過使用奇異值分解把那 些評(píng)分很少的數(shù)據(jù)刪除的話,往往扼殺了用戶的興趣,對(duì)推薦結(jié)果起到負(fù)面效果。
[0157] 數(shù)據(jù)填充技術(shù)。傳統(tǒng)的數(shù)據(jù)填充技術(shù)是將用戶未評(píng)分的電影項(xiàng)目補(bǔ)"0"或者填寫 當(dāng)前用戶的平均評(píng)分。這樣做雖然在一定程度上緩解了用戶電影評(píng)分矩陣的稀疏性問題。 但是卻忽略了用戶的偏好,即使推薦給了用戶相應(yīng)的電影,這種忽略用戶偏好的推薦結(jié)果 也未必為用戶所接受。在本文中,筆者采用了兩次填充,首先利用基于項(xiàng)目的協(xié)同過濾技術(shù) 找到與目標(biāo)項(xiàng)目最近鄰的η個(gè)用戶。然后根據(jù)最近鄰的相應(yīng)項(xiàng)目評(píng)分?jǐn)?shù)據(jù)計(jì)算目標(biāo)項(xiàng)目預(yù) 測(cè)值,針對(duì)用戶未評(píng)分的項(xiàng)目進(jìn)行一次填充。產(chǎn)生的第一次新生成的用戶項(xiàng)目矩陣充分的 利用了用戶的歷史評(píng)分?jǐn)?shù)據(jù),并能夠很好的考慮到了用戶的偏好。接著再利用基于用戶的 協(xié)同過濾技術(shù)對(duì)第一次填充的用戶項(xiàng)目矩陣進(jìn)行進(jìn)一步的填充,從而達(dá)到最優(yōu)的緩解數(shù)據(jù) 稀疏性的解決辦法。
[0158] 基于上面的三種技術(shù)各自的缺陷:算法性能提升空間小,帶來的便捷效益低;奇異 值分解會(huì)把原本稀疏的數(shù)據(jù)刪除,使得原來一些有相似評(píng)分經(jīng)歷的用戶失去關(guān)聯(lián);傳統(tǒng)的 數(shù)據(jù)填充忽略了用戶偏好,導(dǎo)致最終推薦結(jié)果效果不好。所以本文首先采用基于項(xiàng)目和用 戶的協(xié)同推薦技術(shù),充分的考慮到了用戶的偏好,避免用補(bǔ)零或平均值類似沒有考慮用戶 偏好的數(shù)值,使得推薦的結(jié)果更容易為用戶所接受。
[0159] 2.3云模型
[0160] 云模型是一種定性與定量知識(shí)的轉(zhuǎn)換模型。模型通過定性知識(shí)與其數(shù)值表示之間 的可指向性的轉(zhuǎn)換來達(dá)到定性知識(shí)與定量知識(shí)的轉(zhuǎn)換。正態(tài)云模型是其中一個(gè)重要的云模 型,通過一定的計(jì)算而得到的期望、熵、超熵構(gòu)成的發(fā)生器,來進(jìn)行定量概念與定性概念之 間的轉(zhuǎn)換。云模型已經(jīng)成功的應(yīng)用到了自然語言處理、數(shù)據(jù)挖掘、決策分析等眾多領(lǐng)域之 中,并取得了很大成效。
[0161 ] 云模型中的有兩個(gè)重要的概念:云滴和云。云滴組成云,云是云滴的集中表現(xiàn)。云 滴是定性概率云上的一個(gè)個(gè)的隨機(jī)的實(shí)現(xiàn),是由數(shù)值表示而成的。眾多的云滴聚集成了具 有定量的論域,而云就是在定量論域之上的定性概念的表現(xiàn)。
[0162] 在云模型中表述的整體性特征可以用數(shù)字來表示:期望Ex(反映了用戶對(duì)所有項(xiàng) 目的平均滿意度,為偏好水平)、熵En(反映了用戶投票的集中程度,為投票偏好的離散度)、 超熵He(熵的穩(wěn)定度)這三個(gè)數(shù)字特征組成的云的特征向量來進(jìn)行表達(dá)。在用戶電影矩陣 中,每一行的用戶評(píng)分信息可以表述成一個(gè)云模型,通過定性知識(shí)計(jì)算出來的云模型來匹 配用戶之間的相似性。進(jìn)而,求出用戶的最近鄰居,這樣的話避免了傳統(tǒng)的嚴(yán)格按照屬性進(jìn) 行用戶的最近鄰居查找而產(chǎn)生的最近鄰用戶的方法。充分利用用戶的評(píng)分?jǐn)?shù)據(jù),很好的緩 解了協(xié)同推薦中的數(shù)據(jù)稀疏性的問題。
[0163] 在定性知識(shí)與定量知識(shí)的轉(zhuǎn)換中需要使用到云發(fā)生器。在云發(fā)生器分為兩種,分 別為:正向云發(fā)生器和逆向云發(fā)生器。正向云發(fā)生器完成從定性概念到定量表示的映射。而 逆向云發(fā)生器實(shí)現(xiàn)了定量值到定性概念的轉(zhuǎn)換。本發(fā)明采用逆向云發(fā)生器,將用戶電影的 用戶電影矩陣的數(shù)字表示通過逆向云發(fā)生器轉(zhuǎn)換為一個(gè)定性的概念。
[0164] 逆向云算法入下:
[0165] 輸入:η個(gè)云滴{χι,Χ2, · · ·,χη};
[0166] 輸出:這η個(gè)云滴表示的定性概念的表述{Ex,En,He}。
[0167] 步驟:
[0168] 1)根據(jù)用戶的評(píng)分矩陣中的值Xl,來計(jì)算樣本的平均值: '一階樣本的
[0169] 2)Ex的估計(jì)值為應(yīng)=X; (2)
[0172] 2.4傳統(tǒng)計(jì)算用戶相似性
[0173] 計(jì)算用戶對(duì)相似的方法主要包括3種:余弦相似性、相關(guān)相似性以及修正余弦相似 性。
[0174] ①余弦相似性:在用戶評(píng)分項(xiàng)目矩陣中,將用戶的評(píng)分看為二維項(xiàng)目空間上的向 量。如果用戶對(duì)某些項(xiàng)目沒有進(jìn)行評(píng)分,則對(duì)未評(píng)分的項(xiàng)目設(shè)置為0。用戶之間的相似性通 過余弦夾角來進(jìn)行計(jì)算。設(shè)用戶i與用戶j在二維空間上的評(píng)分分別為向量?和],用戶i和 用戶j的相似性sim(i, j)計(jì)算公式為:
[0176]表達(dá)式中,分子為兩個(gè)向量的內(nèi)積,分母為兩個(gè)項(xiàng)目模的乘積。
[0177]②相關(guān)相似性:找出用戶i與用戶j共同評(píng)價(jià)過的項(xiàng)目,記為:Π 則用戶i與用戶 j的相似性sim( i,j)通過皮爾森相關(guān)系數(shù)計(jì)算:
[0179]表達(dá)式中,Ri,。表示用戶i對(duì)項(xiàng)目c的評(píng)分,Ri表示用戶i對(duì)項(xiàng)目的平均評(píng)分,Rj,。、Rj 具有與之相同的意思。
[0180]③修正的余弦相似性:在余弦相似性中沒有考慮到不同用戶的評(píng)分偏好。在修正 的余弦相似性計(jì)算公式中引入了用戶對(duì)項(xiàng)目的平均評(píng)分,從而弱化用戶間的評(píng)分尺度問 題。找出用戶i與用戶j共同評(píng)價(jià)過的項(xiàng)目,記為:Π ^。則用戶i與用戶j的相似性sim(i,j) 為:
[0182] 2 · 5MapReduce 模型
[0183] Google公司最早提出了MapReduce并行編程模型,當(dāng)用戶程序調(diào)用MapReduce運(yùn)行 時(shí)支持庫時(shí)如下:
[0184] 首先,用戶程序把輸入數(shù)據(jù)分割成Μ份,每份為16MB到64MB大小的數(shù)據(jù)塊(可通過 參數(shù)來設(shè)定)。然后,開始在集群上進(jìn)行程序的拷貝。這些程序拷貝中有一份是Master,其余 都是向MasteH青求任務(wù)的工作機(jī),分割情況如下表.1所示;
[0186] (2) -旦分配到Map任務(wù),工作機(jī)便從相應(yīng)的輸入數(shù)據(jù)中分析出key/value對(duì),并把 每個(gè)key/value對(duì)作為用戶定義的Map函數(shù)的輸入。Map函數(shù)產(chǎn)生的中間值key/value對(duì)被存 儲(chǔ)在內(nèi)存中;
[0187] (3)存儲(chǔ)在內(nèi)存里的中間值key/value對(duì)會(huì)被定期寫入本地磁盤中,用戶定義的 Part it ion函數(shù)將其劃分為多個(gè)部分,Master負(fù)責(zé)把這些中間值key/value對(duì)在本地磁盤上 的存儲(chǔ)位置傳送給執(zhí)行Reduce任務(wù)的工作機(jī);
[0188] (4)通過遠(yuǎn)程過程調(diào)用,執(zhí)行Reduce任務(wù)的工作機(jī)從執(zhí)行Map任務(wù)的工作機(jī)的本地 磁盤讀取中間值key/value對(duì);
[0189] (5)當(dāng)一個(gè)執(zhí)行Reduce任務(wù)的工作機(jī)從遠(yuǎn)程讀取到所有所需的中間值key/value 對(duì)之后,通過排序?qū)⒕哂邢嗤琸ey的中間值key/value對(duì)聚合在一起,形成key/values對(duì),作 為Reduce函數(shù)的輸入;
[0190] (6)每個(gè)Reduce函數(shù)的輸出分別放到相應(yīng)的輸出文件中。當(dāng)所有的Map和Reduce任 務(wù)都執(zhí)行完畢,Master喚醒用戶程序。此時(shí),用戶程序中的。MapReduce調(diào)用返回用戶代碼。 [0191]本發(fā)明設(shè)計(jì)的是云計(jì)算平臺(tái)下的個(gè)性化推薦流程,具體如下:
[0192] (1)當(dāng)用戶i訪問網(wǎng)電影客戶端的時(shí)候,該站點(diǎn)的個(gè)性化推薦系統(tǒng)開始工作,后臺(tái) 的服務(wù)器根據(jù)統(tǒng)計(jì)的用戶的歷史數(shù)據(jù)(用戶電影評(píng)分信息)生成一張?zhí)囟ǖ亩S表。二維表 在編寫的map函數(shù)中被分割為η個(gè)單獨(dú)的小任務(wù),接著被派送到各個(gè)單獨(dú)的工作機(jī)上進(jìn)行獨(dú) 自的運(yùn)行處理。各自的處理具體技術(shù)框架路線見圖.2細(xì)節(jié)。
[0193] (2)在Map函數(shù)處理完后,將處理的結(jié)果通過reduce函數(shù)進(jìn)行合并。這個(gè)工作在工 作機(jī)a中進(jìn)行。
[0194] (3)系統(tǒng)的最后將處理好的數(shù)據(jù)輸出到工作機(jī)b中對(duì)用戶進(jìn)行展示。
[0195] 3.本發(fā)明采用所設(shè)計(jì)的個(gè)性化推薦流程是依據(jù)MapReduce軟件架構(gòu),它作為一種 處理海量數(shù)據(jù)的并行編程模式,主要適合應(yīng)用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。和傳統(tǒng)的分布 式程序設(shè)計(jì)比起來,MapReduce封裝了并行處理、本地化計(jì)算、容錯(cuò)處理、負(fù)載均衡等,另外 提供了簡(jiǎn)單通用接口。通過該接口,可以把大容量的計(jì)算自動(dòng)并發(fā)和分布執(zhí)行。通過 MapReduce,由普通PC構(gòu)成的巨大集群可以達(dá)到穩(wěn)定、可靠、高效的性能。并且它還具有較高 的通用性,可以解決許多不同類型的問題。特征遞增型的混合推薦結(jié)構(gòu)對(duì)目標(biāo)用戶進(jìn)行電 影的推薦。特征遞增型方法是一種將本層模塊的標(biāo)準(zhǔn)輸出作為下層模塊的標(biāo)準(zhǔn)輸入的一種 方法。本發(fā)明采用MapReduce執(zhí)行流程具體的協(xié)同過濾技術(shù)是在工作機(jī)η中進(jìn)行的。工作機(jī)η 中以協(xié)同推薦算法為推薦的框架,再在推薦框架中引入了云模型進(jìn)行定性知識(shí)與定量知識(shí) 之間的轉(zhuǎn)換來構(gòu)建一個(gè)混合模型。
[0196] 3.2對(duì)于用戶評(píng)分稀疏性的處理上,目前較為常見的兩種技術(shù)手段分別是:矩陣降 維技術(shù)和用戶矩陣填充技術(shù)。本發(fā)明采用的是基于項(xiàng)目的相似度來計(jì)算進(jìn)行用戶電影矩陣 中未評(píng)價(jià)項(xiàng)目的填充來代替?zhèn)鹘y(tǒng)的固定值的填充。
[0197] 下面結(jié)合實(shí)驗(yàn)及分析對(duì)本發(fā)明及一步說明。
[0198] 4.實(shí)驗(yàn)及分析
[0199] 本發(fā)明實(shí)驗(yàn)中,實(shí)驗(yàn)平臺(tái)是由3臺(tái)1Τ硬盤16G內(nèi)存的HP PC機(jī)組成;(Intel Core i5-2450,CPU 2.506抱,內(nèi)存86),操作系統(tǒng)是1]13111^1114.10的集群。
[0200] 4.1數(shù)據(jù)集
[0201] 本發(fā)明分析的數(shù)據(jù)來自美國(guó)明尼蘇達(dá)大學(xué)的GroupLens研究小組創(chuàng)建并維護(hù)的 MovieLens數(shù)據(jù)集。此數(shù)據(jù)集是現(xiàn)階段衡量推薦算法質(zhì)量中最為常用的數(shù)據(jù)集。該Web站點(diǎn) 的用戶量已經(jīng)超過了 230,000用戶對(duì)30000部電影進(jìn)行了評(píng)價(jià)。本發(fā)明的數(shù)據(jù)選取了公開數(shù) 據(jù)的一部分,數(shù)據(jù)中包括6040個(gè)用戶對(duì)3900部電影產(chǎn)生的1000209條評(píng)分?jǐn)?shù)據(jù)。評(píng)分采用 1 一5的數(shù)值方式進(jìn)行的評(píng)價(jià),其中1分代表"bad",5分代表"perfect",用戶通過對(duì)自己觀看 過的電影進(jìn)行打分的機(jī)制,來表達(dá)出自己的興趣。
[0202] 在本發(fā)明試驗(yàn)中對(duì)數(shù)據(jù)集進(jìn)一步劃分訓(xùn)練集和測(cè)試集兩類數(shù)據(jù),其中訓(xùn)練集0.8, 測(cè)試集為〇. 2。選擇電影數(shù)據(jù)集評(píng)分的稀疏等級(jí),其中結(jié)構(gòu)數(shù)值越小稀疏性越低:
[0204] 4.2推薦質(zhì)量的評(píng)價(jià)尺度
[0205] 本發(fā)明評(píng)價(jià)推薦結(jié)果好壞的標(biāo)準(zhǔn)采用的是平均絕對(duì)偏差MAE(mean absolute error) iAE是通過計(jì)算出預(yù)測(cè)的用戶評(píng)分與用戶對(duì)該項(xiàng)目的實(shí)際評(píng)分值的偏差來衡量推 薦質(zhì)量的高低,通過數(shù)值的展示從而提供一種直觀的度量方法,同樣這也是目前最為常用 的一種推薦質(zhì)量度量方法。假設(shè),本發(fā)明的模型對(duì)η個(gè)項(xiàng)目預(yù)測(cè)的評(píng)分表示為{ gl,g2, ..., gn},對(duì)應(yīng)的實(shí)際的項(xiàng)目評(píng)分為{ri,r2,. . .,rn},計(jì)算公式如下:
[0207] 4.3相似性度量標(biāo)準(zhǔn)
[0208] 本發(fā)明的算法通過與余弦相似度算法、修改余弦相似度算法的實(shí)驗(yàn)結(jié)果進(jìn)行比 較,分別計(jì)算出各推薦算法的MAE。鄰居的個(gè)數(shù)從15增加到165,間隔數(shù)設(shè)置為15。
[0209] 從實(shí)驗(yàn)結(jié)果可以分析出,隨著鄰居數(shù)的增加本文算法和修正余弦相似度算法的 MAE越來越小,而余弦相似度算法的MAE值卻隨著鄰居數(shù)的增加波動(dòng)性的上升。在鄰居數(shù)小 于80的時(shí)候,余弦相似度算法的效果比本文的算法好,但是當(dāng)用戶數(shù)高于80時(shí)本發(fā)明的推 薦質(zhì)量的優(yōu)越性就越發(fā)的體現(xiàn)出來。本發(fā)明推薦算法推薦的電影評(píng)分的結(jié)果偏差總體上比 其他算法的精度更高。
[0210] 本發(fā)明通過分析海量數(shù)據(jù)給現(xiàn)有的個(gè)性化推薦系統(tǒng)帶來的問題,論述個(gè)性化推薦 系統(tǒng)向云計(jì)算平臺(tái)轉(zhuǎn)移的必要性及可行性。結(jié)合采用了特征遞增型的混合推薦模型,首先 將原本極端稀疏的用戶項(xiàng)目評(píng)分矩陣采用基于項(xiàng)目的協(xié)同過濾算法進(jìn)行第一次填充生成 一個(gè)偽二維表,接著再次使用基于用戶的協(xié)同過濾算法再對(duì)偽二維表進(jìn)行進(jìn)一步填充。最 后采用云模塊的定量知識(shí)與定性知識(shí)的轉(zhuǎn)化避免了嚴(yán)格的對(duì)象屬性匹配的不足,充分利用 了用戶的每一個(gè)評(píng)分?jǐn)?shù)據(jù),并充分利用了云計(jì)算的并行計(jì)算大大的提高了運(yùn)算效率和速 度,從而為用戶提供了更好的體驗(yàn),也為企業(yè)到了競(jìng)爭(zhēng)中的優(yōu)勢(shì)。
[0211] 本發(fā)明的算法在一定程度上克服了數(shù)據(jù)稀疏性帶來的負(fù)面影響。在本發(fā)明中還發(fā) 現(xiàn)了如何在求出了用戶評(píng)分定性描述后對(duì)用戶的項(xiàng)目評(píng)分進(jìn)行填充,以及冷啟動(dòng)問題。在 新問題的發(fā)現(xiàn)與思考上都將是下一步發(fā)明的方向。
[0212] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,該基于特征遞增型的電 影個(gè)性化推薦方法包括以下步驟: 系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦系統(tǒng)中輸入用戶電影矩陣; 基于項(xiàng)目的協(xié)同過濾模塊對(duì)用戶電影矩陣進(jìn)行填充,用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)更新用戶電影 矩陣生成一個(gè)偽二維表,以輸出的形式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中; 基于用戶的協(xié)同過濾模塊接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸出為本模塊的 輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)更新用 戶電影矩陣來更新偽二維表,以輸出的形式輸入到下一個(gè)數(shù)據(jù)處理模塊中; 數(shù)據(jù)處理模塊接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí)數(shù)據(jù)處理模塊 的輸入,根據(jù)預(yù)先定義的條件判斷,將用戶分為有能力推薦的用戶和無能力推薦的用戶,再 將無能力推薦的用戶從用戶電影矩陣中剔除,更新用戶電影矩陣以輸出的形式傳遞給下一 個(gè)云模型模塊中; 云模型模塊接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用逆向云發(fā)生器 進(jìn)行從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通過數(shù)字特征的 來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選擇目標(biāo)用戶的 最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步的處理; 評(píng)分預(yù)測(cè)模塊通過云模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,作評(píng)分預(yù)測(cè)函數(shù)的數(shù) 據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反饋給用戶。2. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述特征 遞增型的混合協(xié)同推薦系統(tǒng)采用基于項(xiàng)目的相似度來計(jì)算進(jìn)行用戶電影矩陣中未評(píng)價(jià)項(xiàng) 目的填充來代替?zhèn)鹘y(tǒng)的固定值的填充。3. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述基 于項(xiàng)目、用戶的協(xié)同過濾模塊,在尋找目標(biāo)用戶1:的最近鄰居之前,首先計(jì)算用戶i與用戶 j,jei,2. . + . .η的評(píng)分的項(xiàng)目集合的并集Uij,用戶i和用戶j在項(xiàng)目集合Uij中 未評(píng)分的項(xiàng)目分別通過采用基于項(xiàng)目的協(xié)同過濾模塊和基于用戶的協(xié)同過濾模塊,找到相 似的電影項(xiàng)目、相似的用戶來對(duì)相似未評(píng)分的電影項(xiàng)目評(píng)分進(jìn)行預(yù)測(cè),達(dá)到用戶評(píng)分項(xiàng)目 矩陣的填充; 利用基于項(xiàng)目的協(xié)同推薦技術(shù),挨個(gè)選取待填充的用戶定為目標(biāo)用戶,剩余的用戶作 為活動(dòng)用戶,采用基于項(xiàng)目的協(xié)同推薦對(duì)待填充的用戶進(jìn)行填充,對(duì)每一個(gè)用戶都遍歷一 遍,產(chǎn)生一個(gè)填充后的二維表即偽用戶項(xiàng)目矩陣; 將生成的偽用戶項(xiàng)目矩陣,作為基于用戶的協(xié)同推薦的待處理矩陣進(jìn)行進(jìn)一步處理, 采用基于用戶的協(xié)同推薦技術(shù),依次選取待填充的用戶為目標(biāo)用戶,剩下來的用戶作為活 動(dòng)用戶,找出最近鄰,對(duì)待填充的用戶項(xiàng)目進(jìn)行填充,生成一個(gè)新的二維矩陣即偽二維表。4. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,在進(jìn)行用 戶項(xiàng)目矩陣中對(duì)未知項(xiàng)目評(píng)分的評(píng)分預(yù)測(cè)采用基于項(xiàng)目的計(jì)算中,設(shè)用戶i在評(píng)分的項(xiàng)目 集合的并集U ij中未評(píng)分的項(xiàng)目用Ni來表示,公式化表示:Ni= U i j-li; 對(duì)集合K中的任意項(xiàng)目A,預(yù)測(cè)用戶i對(duì)項(xiàng)目A的評(píng)分A1>a方法為: 計(jì)算項(xiàng)目A與其他項(xiàng)目之間的相似性與計(jì)算用戶之間的相似性為接近,首先對(duì)抽離出 項(xiàng)目A與其他項(xiàng)目m之間的用戶評(píng)分的數(shù)據(jù);接著利用相似性度量的計(jì)算公式計(jì)算兩個(gè)項(xiàng)目 之間相似性,找出與項(xiàng)目m中最近鄰居; 根據(jù)上一步計(jì)算出來的項(xiàng)目A的最近鄰居的集合...,Iv}, 其中Ii,I2, . . .,Iv,為根據(jù)與項(xiàng)目A的相似度的程度由高到低進(jìn)行排序,即sirnd^A)〉 sim(l2,A),以此類推; 在求出集合SA之后,對(duì)項(xiàng)目A和相似的項(xiàng)目h,12,. . .,Iv中未評(píng)的項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分,采 用相似性的預(yù)測(cè)方法, 對(duì)其他的項(xiàng)目的預(yù)測(cè)評(píng)分采取相似的方法為: Vlu,fL 口 其中,Ai, 3代表用戶i對(duì)項(xiàng)目A的評(píng)分, ▲ 1 Pd1一卜1 - ? , y·*· 在初步完成對(duì)用戶項(xiàng)目矩陣的填充之后,產(chǎn)生一個(gè)新的偽二維表,緊接著將生成的偽 二維表作為基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算; 所述基于用戶協(xié)同推薦的數(shù)據(jù)源進(jìn)行計(jì)算為: 首先,選定一個(gè)用戶i為目標(biāo)用戶,剩下來的用戶j,je(l,2,3, . . .,i-l,i+l,. . .η)全 部作為活動(dòng)用戶,通過相似度計(jì)算,找到最相似的Ν個(gè)用戶集合Su={m,u2,. ..,un},其中用 戶的相似度由U1到U2依次遞減,即s im(Ui,U1) > s im( Ui,U2)以此類推; 通過最近鄰中活動(dòng)用戶已評(píng)分的項(xiàng)目來對(duì)目標(biāo)用戶中沒有評(píng)分的電影項(xiàng)目進(jìn)行預(yù)測(cè):以上同時(shí)參數(shù)與基于項(xiàng)目的協(xié)同推薦所代表的含義意義相同。5. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述數(shù)據(jù) 處理模塊接受來自上一級(jí)基于用戶的協(xié)同過濾模塊的輸出作為數(shù)據(jù)處理模塊的輸入,數(shù)據(jù) 處理模塊對(duì)活動(dòng)用戶在項(xiàng)目矩陣中評(píng)分的和目標(biāo)用戶在評(píng)分矩陣中待評(píng)分的用戶分類為 有能力推薦用戶和無能力推薦用戶; 對(duì)于目標(biāo)用戶u和活動(dòng)用戶ν各自的評(píng)分項(xiàng)目集合IU、IV,基于兩者之間的評(píng)價(jià)過項(xiàng)目的 并集Iu,v,包括: 1) 若(<= 4,即對(duì)于V/e/,,,都有ieIu,對(duì)于〗,內(nèi)任意的一個(gè)項(xiàng)目評(píng)分,對(duì)應(yīng)的目標(biāo)用戶 的用戶電影矩陣中都有相應(yīng)的評(píng)分,用戶Iv的集合被包含于集合,用戶Iv對(duì)于目標(biāo)用戶I u沒 有推薦能力,即為無能力推薦用戶; 2) 若/,. G /",即3i e 4,且i g /",即用戶Iν中存在項(xiàng)目i,在目標(biāo)用戶中沒有評(píng)分過; 在完成了數(shù)據(jù)處理模塊的處理后,將處理后的數(shù)據(jù)輸出到下一級(jí)云模型模塊中進(jìn)行進(jìn) 一步的處理。6. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述云模 型模塊處理的數(shù)據(jù)是來自上一級(jí)的數(shù)據(jù)處理模塊,通過采用逆向云算發(fā)生器,進(jìn)行從定量 值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶電影矩陣通過數(shù)字特征的{Ex,En,He} 來定性的表述用戶的特定項(xiàng)目偏好模型,其中Ex為期望、En為熵、He為超熵;然后通過用戶 之間的云模型的匹配來進(jìn)行相似用戶的選擇,云模型模塊輸出與目標(biāo)用戶最相似的η個(gè)鄰 居,作為推薦模塊的輸入; 利用逆向云算發(fā)生器,分別求出目標(biāo)用戶i與活動(dòng)用戶j的評(píng)分特征向量 g = 廠=啦;_£",,從.~)其中 je(l,2,3,…,i-l,i+l,…n),利用余弦夾角 公式計(jì)算目標(biāo)用戶i的特征向量R與活動(dòng)用戶j的特征向量6之間的相似度:在兩個(gè)云之間sim(i,i) = 1,即云本身與自己的相似度為1; sim(i,j) = sim(j,i),即對(duì)稱性,云i與云j的相似度等于云j與云i的相似度。7. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述評(píng)分 預(yù)測(cè)模塊產(chǎn)生相應(yīng)的推薦,假定目標(biāo)用戶的t的最近鄰居為集合U t,目標(biāo)用戶t對(duì)項(xiàng)目i的預(yù) 測(cè)評(píng)分表示為Ρμ,Ρμ通過最沂鄰居的評(píng)分夾預(yù)測(cè)到,計(jì)筧公式如下:表達(dá)式中,sim(t,n)表示用戶t與用戶η的相識(shí)度,Rn,i代表用戶η對(duì)于項(xiàng)目i的評(píng)分,.:? 代表用戶η項(xiàng)目的平均評(píng)分。8. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,所述逆 向云算發(fā)生器逆向云算法為: 輸入:η 個(gè)云滴{χ?,Χ2, · · · ,Χη}; 輸出:這η個(gè)云滴表示的定性概念的表述{Ex,En,He}; 具體步驟包括: 根據(jù)用戶的評(píng)分矩陣中的值Xl,來計(jì)算樣本的平均值= , ^ /=1 一階樣本的絕對(duì)中心距? |, 樣本方差,力; Ex的估計(jì)值為£^-=無; He的估計(jì)值為價(jià)=尾X丄之| X,. - | ;: V2 η?^ Εη的估計(jì)值為知=f2 - j.很2。9. 如權(quán)利要求1所述的基于特征遞增型的電影個(gè)性化推薦方法,其特征在于,數(shù)據(jù)處理 模塊接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí)模塊的輸入,系統(tǒng)根據(jù)預(yù)先定 義的條件判斷,對(duì)活動(dòng)用戶中那些在用戶電影矩陣中評(píng)分了的,并且在目標(biāo)用戶的用戶電 影矩陣中待評(píng)分的相應(yīng)的項(xiàng)目的用戶,將用戶分為有能力推薦的用戶和無能力推薦的用 戶,對(duì)于目標(biāo)用戶u和活動(dòng)用戶v各自的評(píng)分項(xiàng)目集合I u、Iv,基于兩者之間的評(píng)價(jià)過項(xiàng)目的 并集Iu,v,有如下的情況:若?即對(duì)于Vie/ v,都有ieiu; 用戶Iv對(duì)于目標(biāo)用戶^沒有推薦能力,即:無能力推薦用戶;若/, (6/,,,即出現(xiàn)了 3?ε/ν, 且〗《4 ;用戶Iv中存在項(xiàng)目i,在目標(biāo)用戶中沒有評(píng)分過;對(duì)于項(xiàng)目i又存在兩種情況: ① 若Rv>1<Rmid,表明活動(dòng)用戶v,雖然對(duì)目標(biāo)用戶可以進(jìn)行推薦,但是,在用戶中對(duì)于那 些目標(biāo)用戶沒有評(píng)分的項(xiàng)目,用戶的評(píng)分低于或是等于評(píng)分; ② 若Ru^IUd,表明用戶中存在目標(biāo)用戶沒有評(píng)分過的項(xiàng)目,并且未評(píng)分過的項(xiàng)目對(duì) 于目標(biāo)用戶具有推薦能力。10.-種利用權(quán)利要求1所述方法的基于特征遞增型的電影個(gè)性化推薦系統(tǒng),其特征在 于,該基于特征遞增型的電影個(gè)性化推薦系統(tǒng)包括:基于項(xiàng)目的協(xié)同過濾模塊、基于用戶的 協(xié)同過濾模塊、數(shù)據(jù)處理模塊、云模型模塊和評(píng)分預(yù)測(cè)模塊; 所述基于項(xiàng)目的協(xié)同過濾模塊用于接收系統(tǒng)用戶向特征遞增型的混合協(xié)同推薦系統(tǒng) 中輸入的用戶電影矩陣信號(hào)并對(duì)用戶電影矩陣進(jìn)行填充,用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電 影矩陣生成一個(gè)偽二維表,以輸出的形式輸入到下一個(gè)基于用戶的協(xié)同過濾模塊中; 所述基于用戶的協(xié)同過濾模塊用于接受來自基于項(xiàng)目的協(xié)同過濾模塊的標(biāo)準(zhǔn)輸出為 本模塊的輸入,將基于項(xiàng)目的協(xié)同過濾模塊生成的偽二維表,再一次填充,進(jìn)一步緩解數(shù)據(jù) 稀疏性的問題,接著用產(chǎn)生的預(yù)測(cè)數(shù)據(jù)來更新用戶電影矩陣來更新偽二維表,以輸出的形 式輸入到下一個(gè)數(shù)據(jù)處理模塊中; 所述數(shù)據(jù)處理模塊用于接受來自上一個(gè)基于用戶的協(xié)同過濾模塊的輸出為本級(jí)模塊 的輸入,將用戶分為有能力推薦的用戶和無能力推薦的用戶,再將無能力推薦的用戶從用 戶電影矩陣中剔除,更新用戶電影矩陣以輸出的形式傳遞給下一個(gè)云模型模塊中; 所述云模型模塊用于接收來自數(shù)據(jù)處理模塊傳遞過來的數(shù)據(jù)作為輸入,通過使用逆向 云發(fā)生器實(shí)現(xiàn)從定量值到定性概念的轉(zhuǎn)換,將用戶評(píng)分項(xiàng)目中的一組用戶評(píng)分信息通過數(shù) 字特征的來定性的表述用戶的模型,然后通過用戶之間的云模型進(jìn)行相似度比較,選擇目 標(biāo)用戶的最近的η個(gè)鄰居,將云模型模塊的結(jié)果輸入到下層評(píng)分預(yù)測(cè)模塊進(jìn)行進(jìn)一步的處 理; 所述評(píng)分預(yù)測(cè)模塊用于通過云模型模塊輸出的與目標(biāo)用戶最相似的Ν個(gè)鄰居,作評(píng)分 預(yù)測(cè)函數(shù)的數(shù)據(jù)集,推算出目標(biāo)用戶對(duì)未評(píng)分的項(xiàng)目的預(yù)測(cè)值,最后選擇高分評(píng)價(jià)反饋給 用戶。
【文檔編號(hào)】G06F17/30GK105868334SQ201610182642
【公開日】2016年8月17日
【申請(qǐng)日】2016年3月28日
【發(fā)明人】易宏, 吉榮慶, 李 浩, 付濤, 楊萍芳, 鳳羽翬
【申請(qǐng)人】云南財(cái)經(jīng)大學(xué)