【畢業(yè)學(xué)位論文】(Word原稿)研究Mahout中關(guān)于推薦的部分并基于Mahout的taste引擎設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)_第1頁
【畢業(yè)學(xué)位論文】(Word原稿)研究Mahout中關(guān)于推薦的部分并基于Mahout的taste引擎設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)_第2頁
【畢業(yè)學(xué)位論文】(Word原稿)研究Mahout中關(guān)于推薦的部分并基于Mahout的taste引擎設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)_第3頁
【畢業(yè)學(xué)位論文】(Word原稿)研究Mahout中關(guān)于推薦的部分并基于Mahout的taste引擎設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)_第4頁
【畢業(yè)學(xué)位論文】(Word原稿)研究Mahout中關(guān)于推薦的部分并基于Mahout的taste引擎設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1 第一章 緒 論 本章將重點(diǎn)論述論文工作的選題背景和研究意義,并且對(duì)國內(nèi)外的研究現(xiàn)狀進(jìn)行分析,在此基礎(chǔ)上簡單介紹論文的主要研究內(nèi)容和文章的組織結(jié)構(gòu)。 究背景 隨著信息技術(shù) 的 迅猛發(fā)展, 每個(gè)人都可 以很容易的發(fā)布并分享信息,網(wǎng)絡(luò)上充斥著大量的博客、圖片、視頻等 。 互聯(lián)網(wǎng)上的信息迅速膨脹 , 信息 爆炸 使人們從 信息匱乏 時(shí)代 步 入了信息過載時(shí)代 1, 目前我們面臨著 數(shù)據(jù)量急劇膨脹但是利用率 卻不 高 的問題 。 以門戶網(wǎng)站 網(wǎng) 易 新聞 為例,其 每天新發(fā)布的新聞 數(shù)量約為 10 萬篇,但是有點(diǎn)擊量的文章不到 10%大 量的文章成為長尾 沉沒 而 得不到展示的機(jī)會(huì) 2。 總之 , 信息爆炸使得信息的利用率反而降低, 如何讓人們?cè)诤A康臄?shù)據(jù)中 找到他們需要的信息將變得越來 越 困難 。 在大數(shù)據(jù)時(shí)代 , 不 論是尋找信息的普通用戶 還是 推送信息的商家 都遇 到了非常大的挑戰(zhàn):作為 普通用戶 ,如何從 浩瀚的 信息 海洋 中找出對(duì) 自己有用的 信息 將 變得 越來越困難 ;作為推送信息的商家 ,如何讓自己的信息別出心裁 受到大眾的關(guān)注也 是一個(gè)挑戰(zhàn)3。為解決信息過載 問題,學(xué)術(shù)界及業(yè)界都提出了許多方案。其中最典型的方案 是分類目錄和搜索引擎。 分類目錄通過有 經(jīng)驗(yàn)的技術(shù)人員 對(duì)網(wǎng)站進(jìn)行篩選評(píng)估,并根據(jù)網(wǎng)站主題和面向受眾等 相關(guān)準(zhǔn)則 對(duì)網(wǎng)站進(jìn)行分類。 目前著名的分類目錄有雅虎、 。 雖然 分類目錄在一定程度上方便用戶查閱 信息,但 在信息 過載 時(shí)代其涵蓋的 信息 也只占很少的一部分 , 仍然不能滿足用戶需求 , 搜索引擎 應(yīng)運(yùn)而生, 成為 我們快速 發(fā)現(xiàn)有效 信息的 途徑 之一 。 但 其 仍 不能完全滿足用戶需求 , 原因之一是 在很多情況下 用戶 并不能準(zhǔn)確 概括出自己的需求并使用合適的關(guān)鍵字進(jìn)行搜索 。原因 之 二是基于關(guān)鍵詞的信息檢索在很多情況下 仍然 是不夠的 , 例如 目前的 搜索 引擎 對(duì)不同用戶的同一搜索請(qǐng)求呈現(xiàn)的內(nèi)容是完全一致的 , 并沒有 針對(duì)不同用戶的興趣愛好 做區(qū)分并 提供 個(gè)性化的 服務(wù) 。 而 推薦引擎轉(zhuǎn)變了人們獲取信息的方式: 它 可以通 過 上下文主動(dòng)向用戶推送信息。這種信息推送方式 更 加 符合人們的生活習(xí)慣。 本 質(zhì)上 推薦 系統(tǒng) 是幫助用戶快速發(fā)掘 信息的工具 , 其出發(fā)點(diǎn)與分類目錄和搜索引擎是相似的, 但其與 前兩 類方式不同的是 不需要用戶提供明確的需求, 而是運(yùn)用一定的算法 主動(dòng)為用戶推薦他們 可能 感興趣的信息 , 因此 推薦系統(tǒng) 具 備一定的智能性 。 2 另 外 由于長尾效應(yīng) 的存在 4, 在電 子 商 務(wù) 領(lǐng)域那些 銷量一般的冷門商品 因基 數(shù)巨 大 其 累加起來的利潤也 非常 可觀 , 很 有可能超過熱門商品。 在互聯(lián)網(wǎng) 環(huán)境 下長尾效應(yīng)尤為顯著 。 例如 著名電子商務(wù)網(wǎng)站 5%來自個(gè)性化推薦 , 而且大部分是長尾物品 5, 6。 在電 子 商 務(wù) 時(shí)代 由于貨架成本低廉,電子商務(wù)與傳統(tǒng)零售業(yè)相比 往往能夠容納更多的商品,雖然 這些長尾商品 不是很熱門但 由于 基數(shù)巨大, 通過挖掘長尾商品仍然能夠帶來巨大的 商業(yè) 利益 。 目前各個(gè)電商都開始關(guān)注用戶的個(gè)性化需求 , 提供個(gè)性化的推薦 以 增進(jìn)用戶 黏性 , 為 電子商務(wù)領(lǐng)域帶來巨大的商業(yè)利益 。 這也進(jìn) 一 步說明了在信息爆炸時(shí)代我們需要更加符合我們生活習(xí)慣并且 更 加智能的信息發(fā)掘機(jī)制。 目前推薦 系統(tǒng)已經(jīng)在電 子 商 務(wù) ( 如 亞馬遜 , 豆瓣)和一些社交網(wǎng)絡(luò)( 如 得巨大的成功 。 再者 從并行計(jì)算的角度來看 : 隨著云 計(jì)算 時(shí)代的到來, 個(gè)性化推薦系統(tǒng)面臨著存儲(chǔ)空間的擴(kuò)展性與分析計(jì)算的 擴(kuò)展性 等問題 。 僅僅提高大型服務(wù)器的存儲(chǔ)空間與計(jì)算能力已不能很好的解決這些問題 。 現(xiàn)代的互聯(lián)網(wǎng)應(yīng)用 需要新的處理模式來 應(yīng) 對(duì) 大規(guī)模數(shù)據(jù)快速處理的需求 。 雖然有各種高效的算法不斷提出 , 但是 隨著 用戶 規(guī)模、商品數(shù)量的快速增加其 對(duì)算法的快速響應(yīng)能力 也 提出 了新的挑戰(zhàn)。 推薦系統(tǒng)的意義之一 就 在于 對(duì)大數(shù)據(jù)的處理,即當(dāng) 信息 量大到用戶自身無法篩選 時(shí), 它 仍然可以推薦出 相對(duì) 好的內(nèi)容。 目前多數(shù)的推薦 算法研究大都集中在算法本身效率的提升 ,但由于在互聯(lián)網(wǎng)環(huán)境 下用戶數(shù)量與商品數(shù)量的快速增加, 通過改進(jìn)算法提升計(jì)算速度的方式其應(yīng)用價(jià)值有限,而且提升空間也越來越小。 再者 這種 單機(jī) 大型服務(wù)機(jī) 運(yùn)行模式 很容易受到 硬件性能的制約如 處理器 計(jì)算 速度、 硬盤 存儲(chǔ)容量等 , 在這 種 情況下 對(duì)數(shù)據(jù) 規(guī)模 進(jìn)行 分割 , 然后對(duì)其 進(jìn)行 分布式 并行處理便是一個(gè)重要 而且 有效的手段之一 , 因此如果我們能對(duì)這些算法 或者其中的一部分 實(shí)現(xiàn)分布式 并行 計(jì)算將會(huì)大大縮短計(jì) 算所需時(shí)間。分布式實(shí)質(zhì)上是將一個(gè)問 題的規(guī)模由大變小,將大的問題化簡成許多相同性質(zhì)但規(guī)模較小的問題并提交給不同的 節(jié)點(diǎn) 去計(jì)算 的一種模式 。 需要指出的是 分布式 并 不能提高 物理 資源的利用率 如 內(nèi)存 的利用率 7, 相反 它相對(duì)于 傳統(tǒng)的大型服務(wù)器處理模式 需 要消耗更多的 物理 資源。比如 , 在很多機(jī)器 上 傳輸數(shù)據(jù)需 要消耗網(wǎng)絡(luò)帶寬 , 這實(shí)質(zhì)上是使用 物理資源換取計(jì)算時(shí)間 的 減少, 是一種空間與時(shí)間的權(quán)衡, 但 這種做法 仍然可以為 推薦系統(tǒng)在處理大規(guī)模數(shù)據(jù)時(shí)提供一種途徑,這是單機(jī)處理方案無法具備的。 因?yàn)榉植际娇梢哉细嗟挠?jì)算與存儲(chǔ)資源 , 從而在計(jì)算能力上超過專用機(jī)器。 目前計(jì)算機(jī)早已進(jìn)入多核架構(gòu),利用分布式并行計(jì)算讓算法并行運(yùn)行在多臺(tái)計(jì)算機(jī)上可以提升傳統(tǒng)算法的的速度和效率。 3 本文正是基于上述背景展開 工作,對(duì)推薦系統(tǒng)、分布式并行計(jì)算做了 研究,并將兩者 進(jìn)行結(jié)合 思考 , 利用云計(jì)算的優(yōu)勢(shì)來解決傳統(tǒng)協(xié)同過濾推薦算法所遭受到的 擴(kuò)展性 等 問題 。 究 現(xiàn)狀 推薦系統(tǒng)的研究 始 于 90 年代初 , 推薦系統(tǒng)的本質(zhì)是通過一定的方式將人和物聯(lián)系起來,而不同的推薦系統(tǒng)使用了不同的方式 , 從 算法的觀點(diǎn)來看 推薦方式一般 劃分為 二種 : 一 種 是 基于內(nèi)容的推薦( 8;一種是 基于協(xié)同過濾的推薦( 9?;趦?nèi)容的推薦主要分析被 推薦物品 屬性之間 的關(guān)系, 其 根據(jù)物品或內(nèi)容的元數(shù)據(jù) 基于 物品屬性的 特征推薦 具有相似屬性的項(xiàng)目。 換句 話說 基于內(nèi)容的推薦方式 是基于物品的特征 或者屬性進(jìn)行 推薦。這種方法在信息檢索和信息過濾方面 就 有 著 深厚的 淵源 。 實(shí)際 上前面提到的人工分類目錄就是一種基于內(nèi)容的推薦,只不過其是通過人工 進(jìn)行 屬性特征 相似性判斷。而協(xié)同過濾推薦正好相反, 其 并不基于物品的特征或者屬性進(jìn)行判斷,而是充分利用用戶的行為數(shù)據(jù)對(duì)其建模 分析 來計(jì)算 相似性并以此 來推薦物品。 在實(shí)際使用中 兩種方法經(jīng)常一起使用 ,且 兩種方式各有優(yōu)缺 : 協(xié)同過濾存在冷啟動(dòng)的問題其 需要大量用 戶 評(píng)分 信息才能準(zhǔn)確推薦 ,而 基于內(nèi)容的方 法 只需 要 很少的信息就能 啟動(dòng) ,但是使用范圍有 一定的 局限 性 , 例如 , 它 只能推薦與原始種子相似的條目 。 協(xié)同過濾算法是 由 人 提出 隨后 被 用于 郵件過濾 10。這也是最早 的個(gè)性化推薦系統(tǒng)的雛形。 為了發(fā)現(xiàn) 用戶 喜歡的 一方面 你可以 去尋找有相 似 興趣的人 , 這就是基于用戶的協(xié)同過濾 ( F) 最直接的思想。 另一方面, 我們 也 可以 從 其他 用戶 的 行為數(shù)據(jù)中 計(jì)算出類似 該用戶 喜歡的 其他 這就是基于項(xiàng)目的協(xié)同過濾 ( F) 。 F 是 在 1992 年 提出并被 應(yīng)用于郵件過濾系統(tǒng), 隨后又被 用于新聞過濾 11。在此 之后直到 2000 年,該算法都是推薦領(lǐng)域 著名的算法 之一 。 F 是在 2001 年由 人提出并 且 從 論文和專利發(fā)表之后開始流行 12, 13。 在業(yè)界推薦系統(tǒng) 已經(jīng) 廣泛應(yīng)用于電子商務(wù) 領(lǐng)域 、 視頻網(wǎng)站、 新聞 網(wǎng)站 等,比如,音樂推薦有 豆瓣電臺(tái) , 書籍 推薦有 頻的推薦有 等 。 其 中 應(yīng)用 最典型的 領(lǐng)域 就是電子商務(wù)領(lǐng)域 , 如在線零售商 于項(xiàng)目 相似度的協(xié)同過濾算法為用戶推薦書籍及物品為 其 貢獻(xiàn)了 35%的銷售額 5, 6。國外視頻網(wǎng)站 曾開出 100 萬美元的獎(jiǎng)金給能夠把他們的推薦系統(tǒng)準(zhǔn)確率提高 10%的團(tuán)隊(duì) 14。還有門戶網(wǎng)站的新聞報(bào)道推薦( 。4 一個(gè)廣泛使用的基于內(nèi)容的推薦系統(tǒng),該系統(tǒng)為用戶播放相似特征的音樂 15。 另外 , 近年來 隨著云計(jì)算等新型計(jì)算理念的涌出,科學(xué)家開始研究在分布式環(huán)境下的推薦系統(tǒng) ,在推薦系統(tǒng)的可擴(kuò)展性方面也進(jìn)行了大量的研究 。例如 出了一個(gè)整合記憶和模型兩種方式的混合分布式協(xié)同過濾算法來提供對(duì) 個(gè)性化推薦服務(wù) 16。然而 這些方法實(shí)質(zhì)上是在推薦質(zhì)量與計(jì)算速度上做了權(quán)衡,通過丟棄一些推薦質(zhì)量而換取時(shí)間上的提升。 其論文 支持多核之上的機(jī)器學(xué)習(xí)的 指出 某些算法并行運(yùn)算的可能性 并 闡述了 某些機(jī)器學(xué)習(xí)算法 可以 轉(zhuǎn)換成某種和 的形式 而這種形式特別適合在類似 并行計(jì)算框架中運(yùn)行17, 從而為 某些機(jī)器學(xué)習(xí) 算法并行 化 提供了理論基礎(chǔ) 。 究內(nèi)容 本文 研究了 關(guān)于推薦的部分,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)推薦系統(tǒng)并在此基礎(chǔ)上做了諸多改進(jìn),具體包括如下四方面的內(nèi)容: 1. 分析 推薦領(lǐng)域的經(jīng)典算法及 相 關(guān)技術(shù)并闡述了 其 各自的應(yīng)用 范圍 。 2. 研究了 關(guān)于推薦的 部分 并 基于 擎 設(shè)計(jì)并 實(shí)現(xiàn)了一個(gè) 推薦系統(tǒng) 。 3. 由于相似度計(jì)算是推薦模塊計(jì)算量最大的部分為了加快計(jì)算速度 ,本文 引入 程框架實(shí)現(xiàn)離線并行計(jì)算相似度并基于 供的 儲(chǔ)空間的可擴(kuò)展性。 4. 最后設(shè)計(jì)并實(shí)現(xiàn)了評(píng)估模塊對(duì)各種參數(shù)進(jìn)行評(píng)估并使用 形庫可視化評(píng)估結(jié)果 , 以幫助研究人員靈活方便的分析數(shù)據(jù)并選擇合適的算法與參數(shù) 。 文組織結(jié)構(gòu) 第一章:緒論 。 論述了本文的研究 背景、 國內(nèi)外研究現(xiàn)狀 , 分析 推薦領(lǐng)域的經(jīng)典算法及 相 關(guān)技術(shù)并闡述 其 各自的應(yīng)用范圍 。 第二章: 相關(guān)技術(shù)概述 。 介紹了本論文中使用的相關(guān)技術(shù)。 包括 協(xié)同過濾推薦算法 , 推薦引擎 分布式開源計(jì)算、存儲(chǔ)框架 用于桌面應(yīng)用程序開發(fā)的 術(shù) , 用于可視化數(shù)據(jù)的 。 5 第三章 : 推薦系統(tǒng)框架 。 描述了系統(tǒng)的功能 需求 并 對(duì)整體框架進(jìn)行分析設(shè)計(jì) 。 第四章 : 推薦系統(tǒng)的研究與實(shí)現(xiàn) 。主要包括 三 方面的內(nèi)容 : 一是 基于 擎 實(shí)現(xiàn)了一個(gè)協(xié)同過濾推薦系統(tǒng)。 二是 基于 算框架實(shí)現(xiàn) 相似度的 離線并行計(jì)算以提高 系統(tǒng)的后臺(tái)計(jì)算能力并基于 現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)以提高系統(tǒng)存儲(chǔ)的可擴(kuò)展性 , 并在此基礎(chǔ)上對(duì)群做了優(yōu)化以進(jìn)一步加快計(jì)算速度 。三是實(shí)現(xiàn)評(píng)估模塊對(duì)各種參數(shù)進(jìn)行評(píng)估并使用 視化評(píng)估 結(jié)果以幫助研究 人員靈活方便的分析數(shù)據(jù)并選擇合適的算法與參數(shù),并簡要解釋和分析了各種評(píng)估曲線的意義。 第五章 : 總結(jié)與展望 。 對(duì)當(dāng)前工作進(jìn)行 總結(jié)、 分析 當(dāng)前系統(tǒng)的不足并對(duì)未來 做 了展望 。 6 第二章 相關(guān)技術(shù)概述 本章 主要闡述 協(xié)同過濾推薦的相關(guān)技術(shù) : 具體 包括基于 協(xié)同過濾和基于 協(xié)同過濾 并 闡述 各自的優(yōu)缺點(diǎn)及適用范圍;介紹本 論 文中使用的相關(guān)技術(shù)包括 本原理,以及 用程序、 圖等工具。 同過濾 推薦 技術(shù) 協(xié) 同過濾技術(shù) 是 目 前使用較為廣泛的推薦技術(shù)之一,因其可以處理復(fù)雜對(duì)象如電影、歌曲并 且推薦效果也不錯(cuò),受到各大企業(yè)的青睞。 協(xié)同過濾 技術(shù) 實(shí)質(zhì)上 是對(duì) 用戶的歷史數(shù)據(jù)進(jìn)行建模分析從而為用戶推薦合適的產(chǎn)品 。 協(xié)同過濾具體包括 很多算法, 學(xué)術(shù)界 、業(yè)界 對(duì)其進(jìn)行了深入的研究并提出了很多方法。其中 比較常見的有基于鄰域的算法 ( 矩陣分解算法, 隱語義模型( 基于圖的隨機(jī)游走算法 ( on 18 。而 在這些方法中 最著名的并且 在業(yè)界得到 廣泛應(yīng)用的是基于鄰域的 算法 ,而基于鄰域的方法 又 主要包含兩種 基本 算法( ?;谟脩舻膮f(xié)同過濾算法給用戶推薦 與其 興趣相似的其他用戶喜歡 而該用戶還 沒有評(píng)分的 物品。基于 項(xiàng)目 的協(xié)同過濾算法給用戶推薦和他之前喜歡的物品相似的物品 。 協(xié)同 過濾的一個(gè)優(yōu)點(diǎn)就是 其 不依賴于機(jī)器分析 的內(nèi)容, 其不 需要 分析推薦對(duì)象的任何屬性作為輸入數(shù)據(jù) , 因此該方法有能力準(zhǔn)確推薦復(fù)雜的項(xiàng)目 如電影 等 。 換句話說機(jī)器不需要理解 物品 本身就能推薦。 于 基于 協(xié)同過濾是 通過對(duì)用戶的歷史數(shù)據(jù)進(jìn)行建模 分析 從而 給用戶推薦與其行為相似的其它用戶感興趣的物品。其基本思想非常直觀與現(xiàn)實(shí)生活中的通過朋友推薦非常相似。物以類聚,人以群分,每個(gè)人在社會(huì)上都不是孤立的而是相互聯(lián)系的,如果某些用戶對(duì)一些事務(wù)的評(píng)價(jià)相似,有理由相信他們有共同的興趣愛好。 因此基于 協(xié)同過濾的一般步驟 可參見 圖 2大體步驟 為采用 某 些 度量 方式 找到與目標(biāo)用戶行為相 近 的用戶即該用戶的若干鄰居。 然 后將 其鄰居評(píng)價(jià)過的或者喜歡的但該用戶 還 沒有評(píng)價(jià) 的 且預(yù)測評(píng)分較高的物品推薦給該用7 戶 。 所以 首先要進(jìn)行相似鄰居的搜索,而 搜索 相似 鄰居 的 關(guān)鍵步驟就是 計(jì)算兩兩 用戶 之間 的相似度。 如果 要 計(jì)算 兩個(gè)用戶之間的 相似度,則需要先獲取這兩個(gè)用戶的所有評(píng) 分 項(xiàng), 然后 按照一定 的相似性度量 計(jì)算 產(chǎn)生相似性 數(shù)據(jù)。 目前常用的相似 性 度量有 歐幾里德相似度( 、 皮爾森相關(guān)系數(shù)( 、 基于余弦的相似度( 及 調(diào)整過的余弦相似度( 。 得出兩兩用戶的相似性矩陣 之 后可計(jì)算每一個(gè)用戶的相似鄰居。 如圖 2戶 1 的相似鄰居為用戶2、 用戶 、 用戶 和 用戶 。最后遍歷這些用戶評(píng)價(jià)過的物品將 該用戶沒有評(píng)價(jià)過的 具預(yù)測評(píng)分較高的 物品 推薦給用戶 。 圖 2近鄰居示意圖 圖 28 于 基于 項(xiàng)目 的協(xié)同過濾算法給用戶推薦和他之前喜歡的物品相似的物品 ,其基本思想就是買 x 的人也會(huì)買 y, 這 種算法廣泛應(yīng)用 于 物系統(tǒng)中 。它的基本假設(shè)就是用戶會(huì)喜歡跟自己之前喜歡的物品類似的物品。 可以由其他用戶 的明顯偏好計(jì)算出類似 該用戶 喜歡的 其他 因此在用基于 品集合,該數(shù)據(jù) 可以通過遍歷其歷史行為數(shù)據(jù)得到。其次從其 還 未評(píng)論的物品 集合中 出找出與其喜歡的物品相似的物品推薦給 該用戶 。實(shí)質(zhì)上 這個(gè)算法的核心仍然是計(jì)算兩個(gè)物品之間的相似度。目前比較常用的相似性度量有 皮爾遜相關(guān)系數(shù) 、余弦相似度等。 在實(shí)際應(yīng)用中 基于 項(xiàng)目 的協(xié) 同過濾算法因其實(shí)現(xiàn)簡單、擴(kuò)展性好、推薦效率 不錯(cuò)等優(yōu)點(diǎn)被廣泛應(yīng)用。如 使用了這種算法。 種算法各自的 適用 場景 在實(shí)際應(yīng)用中 兩種方法 各有其適用場景 。 從技術(shù)考量的角度來看 基于用戶的 協(xié)同過濾適 用于用戶規(guī)模較 小 的情況,而基于項(xiàng)目的協(xié)同過濾適用于 物品規(guī)模較 小 的情況。 由于基于用戶的協(xié)同過濾的計(jì)算量會(huì)隨著用戶數(shù)量的不斷增加而線性增加 ,而在電 子 商 務(wù) 領(lǐng)域用戶數(shù)量不論從總體規(guī)模上還是增長速度上都比物品要快的多,而對(duì)于基于 應(yīng)用 響應(yīng)速度又是影響用戶體驗(yàn)的重要因素,因此在電 子 商 務(wù) 領(lǐng)域多采用基于項(xiàng)目 的 協(xié)同過濾算法 。 這也限制了基于用戶協(xié)同過濾在實(shí)際商務(wù)系統(tǒng)中的應(yīng)用。 與此相反基于用戶的協(xié)同過濾更適合用于 新聞、 博客或者微博等以內(nèi)容為主的推薦系統(tǒng),在這里 情況正好相反 物品的數(shù)量相對(duì)于用戶的數(shù)量是海量的同時(shí)也是更新頻繁的。 從用戶的需求來看在 以內(nèi)容為主的網(wǎng)站中用戶的興趣不是特別細(xì)化 也即 這種個(gè)性化是粗粒度的。例如絕大多數(shù)的用戶都喜歡看熱門新聞,雖然各個(gè)用戶之間的興趣點(diǎn)不同 但 很少有用戶只 瀏覽 某個(gè)話題的新聞,因?yàn)椴荒鼙WC這個(gè)話題每天都有內(nèi)容更新。 所以這類網(wǎng)站更加強(qiáng)調(diào)抓住熱點(diǎn), 由其是一個(gè)小圈子中的熱點(diǎn) , 而個(gè)性化 則 相對(duì)處于次要位置。這也 是 新聞推薦中使用 但是在圖書、電子商務(wù)網(wǎng)站中用戶的興趣是比較固定和持久的,一個(gè)喜歡 程序員很可能一直在購買 關(guān)的書籍他并不 關(guān)心 這本書是否熱門。所以在這類系統(tǒng)中的用戶大都不太需要流行度來輔助他們判斷一個(gè)物品的好壞 而是 通過自己專業(yè) 領(lǐng)域的知識(shí)自己判斷物品的質(zhì)量。因此這些網(wǎng) 站中個(gè)性化推薦的任務(wù)是幫助用戶發(fā)現(xiàn)和他研究領(lǐng)域相關(guān)的物品。因此 為了這些網(wǎng)站的首選算法。 從推薦解釋的角度來看 在非社交網(wǎng)絡(luò)環(huán)境下 基于項(xiàng)目的協(xié)同過濾算法 便于為推薦做出解釋 。 系統(tǒng) 可以 利用用戶的歷史行為 數(shù)據(jù) 給推薦結(jié)果提供合理的推薦解釋,比如給用戶推薦天龍八部的解釋可以是因?yàn)橛脩糁跋矚g射雕英雄傳 。在一個(gè)非社交網(wǎng)絡(luò)的網(wǎng)站中給某個(gè)用戶推薦一本書 同時(shí)給出的解釋是某某 和你有相似興趣的人也看了這本書 這很難讓用戶信服,因?yàn)?該 用戶可能根本不認(rèn)識(shí)那個(gè)人;但如果解釋說是因?yàn)檫@本書和你以前看的某本書相似,用戶可能就覺得合理而采納了此推薦 。 目前多數(shù)系統(tǒng)都采用基于項(xiàng)目的協(xié) 同過濾如豆瓣都采用這種方法 。 由其隨著亞馬遜的成功 這種方法也快速流行起來。但 在現(xiàn)今很流行的社交網(wǎng)絡(luò)站點(diǎn)中 F 也 許是一個(gè)更不錯(cuò)的選擇,F(xiàn) 加上社 交 網(wǎng)絡(luò)信息可以增加用戶對(duì)推薦解釋的信服程度 ,因?yàn)槲覀兠總€(gè)人也都更相信朋友 的推薦 。 頂級(jí)開源項(xiàng)目 21,最初基于 Ng et 的文章 17,由 生而來。 其創(chuàng)建的 初衷 就是為 程序員 提供高效的算法實(shí) 例 并且這些算法 具備一定的 伸縮 性 。 其主要包括三 部分 : 推薦,聚類,分類。 寫 的 高效的推薦引擎。 其涵蓋的推薦算法主要有基于 協(xié)同過濾和基于 協(xié)同過濾。 同時(shí) 提供了接口用于定制化的推薦算法的開發(fā) 。這使得其在可擴(kuò)展性、靈活性、實(shí)用性方面都有很大的優(yōu)勢(shì)。 構(gòu)圖 參見 圖 2 主要 包含下面幾個(gè) 組件: 是對(duì)用戶評(píng)分信息的封裝 以便 行處理。其 支 持從不同的存儲(chǔ)環(huán)境中提取數(shù)據(jù)如關(guān)系型數(shù)據(jù)庫、本地文件系統(tǒng)等。 用于計(jì)算相似度 。 分別是 基 于用戶的和基于項(xiàng)目的。 是對(duì)推薦的抽象封裝 , 用于 在實(shí)際應(yīng)用中 產(chǎn)生 具體 的 推薦列表 。 10 一個(gè)分布式 的 計(jì)算和存儲(chǔ)平臺(tái)其 由 金會(huì)開發(fā) 22。 它簡化了分布式應(yīng)用程序 的開發(fā),即使不怎么熟悉分 布式的用戶也可以快速開發(fā)出高效的 并行 程序。而且還 可以利用 群在存儲(chǔ)與計(jì)算方面的 可擴(kuò)展性。核心組件是 3, 24. 圖 211 一個(gè)分布式文件系統(tǒng) 。 專門用于設(shè)計(jì)部署在性能 一般 的機(jī)器上 因此其容錯(cuò)性能 良好 。 并且其 一次寫入多次讀取 的 數(shù)據(jù)處理方式非常適合大數(shù)據(jù)量的傳輸 。 另外 多機(jī)架存放副本的策略使用戶不用擔(dān)心因?yàn)槟硞€(gè) 戶 文件不完整 從而 確保 用戶數(shù)據(jù)的 實(shí)時(shí)可用 。 基本思想 源自函數(shù)式 編程 , 其包括 兩個(gè) 最基本 步驟: 射) 和 簡) 。 如果要采 用 并行處理大規(guī)模的數(shù)據(jù)集。則該 數(shù)據(jù)集必須具備 如下 的特點(diǎn): 涉及的數(shù)據(jù)規(guī)模通常很大而且可以劃分成較小的數(shù)據(jù)規(guī)模并 且 各個(gè)子 數(shù)據(jù)集都可以 相互獨(dú)立的 并行 的 處理 , 相互 之間不需要額外的通信。 質(zhì)上通過計(jì)算模型的限制,來簡化分布式 程序 設(shè)計(jì)和實(shí)現(xiàn)的難度,在分布式框架下數(shù)據(jù)是互相隔離的,因此通過 唯一性來聯(lián)接數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)隔離的另一個(gè)巨大優(yōu)勢(shì)是不 需要 修改程序就可以通過簡單增加節(jié)點(diǎn)數(shù)量來提高集群性能。 在 其通過 并行程序進(jìn)行調(diào)度,只要按照 形式實(shí)現(xiàn) 的程序都可以快速并行化執(zhí)行。 圖 2 2 架 介紹 在 程中 基本上 每一個(gè) 務(wù)都將 包括兩個(gè)階段: 兩個(gè)階段分別用兩個(gè)函數(shù)表示 即 數(shù)和 數(shù)。 數(shù) 的輸入由輸入類解析成 形式的鍵值對(duì),通過 自定義的 數(shù)處理 并產(chǎn)生另一個(gè) 形式的鍵值對(duì)的中間 結(jié)果。 數(shù) 的輸入也同樣類似于 ,并且根據(jù) 數(shù)對(duì)每個(gè) 合進(jìn)行處 理,每個(gè) 般會(huì)產(chǎn)生 0 個(gè) 或 1 個(gè)輸出, 輸出也是 形式的鍵值對(duì),其原理圖如 圖 2 圖 213 要 在大規(guī)模集群之上 完成一個(gè)并行計(jì)算需要做很多 工作 , 如 任務(wù)調(diào)試、本地計(jì)算、洗牌 等 過程。 而 化了編程模式自動(dòng)處理了一些底層的細(xì)節(jié)。程序員主要完成 方法, 方法的 設(shè)計(jì)以及 任務(wù)屬性的配置。再復(fù)雜一點(diǎn)的 程序需要配置 入 類型 、 輸出 類型 等參數(shù)。 下面以經(jīng)典例子 要介紹 編程框架。 其效果就是統(tǒng)計(jì) 每個(gè) 單詞在所有文件中 的 詞頻。 1. 輸入 輸入 類 主要 負(fù)責(zé) 將文件拆分成 將各個(gè) 照 行分割形成鍵值對(duì)。 默認(rèn)情況下 每行在文件中位置為 行內(nèi)容為 然可以根據(jù)自己的需求自定義輸入類的工作方式。 2. 理 圖 2 圖 2程模型示意圖 14 將 分割好的鍵值對(duì)交給用戶定義的 法進(jìn)行處理, 該方法使用一個(gè)用于分詞的類 輸入的每行內(nèi)容進(jìn)行分詞。每得到一個(gè)單詞就輸出 形式的鍵值對(duì), 單詞, 整型的一 種封裝 可以 理解為 的整型 。 3. 并階段 如果在 段產(chǎn)生大量的中間結(jié)果鍵值對(duì) 將導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)通信量大幅增加, 這樣既 增加了網(wǎng)絡(luò)通信開銷 又降低了程序執(zhí)行速度。為了提供一個(gè)基本的減小鍵值對(duì)數(shù)量的手段, 計(jì)并提供了 在每個(gè) 點(diǎn)上合并 產(chǎn)生的中間結(jié)果鍵值對(duì)。 其實(shí)質(zhì)上就是 的本地 在 序中 對(duì)每個(gè) 出的鍵值對(duì)進(jìn)行排序 并將 本結(jié)點(diǎn)上 具有相同 行合并 即 將 相同的 累加 , 這樣可以減少 輸出數(shù)量。 對(duì)于產(chǎn)生大量中間結(jié)果又需要合并的程序 其 性 能提升明顯。 4. 牌階段 圖 2 圖 2程示例圖 3 15 洗牌的意義在于劃分哪些鍵值對(duì)由這 一 個(gè) 行,哪些鍵值對(duì)由另 一個(gè) 的 行。以便保證具有相同 鍵值對(duì)由同一個(gè) 行。 在序中, 決定 點(diǎn)的輸出將被分區(qū)到哪個(gè) 其默認(rèn)是 5. 段 段 先對(duì) 從 收的數(shù)據(jù)進(jìn)行排序,再交由用戶 定義的 相同 行累加 并作為 最后 輸出結(jié)果。 客戶端平臺(tái)是基于 件開發(fā)的一種應(yīng)用框架 25,通過 以快速構(gòu)建桌面應(yīng)用程序。插件機(jī)制是 臺(tái)的核心內(nèi)容 , 但這些插件的運(yùn)行都要依賴于 臺(tái)的存在 而程序員在開發(fā)桌面應(yīng)用時(shí)往往要擺脫對(duì) 依賴,并希望使用最小的運(yùn)行環(huán)境來運(yùn)行系統(tǒng),所以在 后的版本中逐步將插件的運(yùn)行從 行平臺(tái)中剝離出來從而形成了 以說 質(zhì)上是 插件,但運(yùn)行時(shí)卻能夠脫離 臺(tái)而獨(dú)立存在,所以開發(fā) 用程序時(shí)可以利用 臺(tái)的 觀和框架快速地進(jìn)行 迭代 開發(fā)與 部署。 一個(gè) 形庫 26,對(duì)于圖形化的操作系統(tǒng)來說 重要的組成部分。隨著操作系統(tǒng)向圖形化方向的發(fā)展,各種編程語言也隨之紛紛實(shí)現(xiàn) 口 并 支持 程。 由 最初的目的是 創(chuàng)建一套圖 2程示例圖 4 16 替代 司的 圖形庫。 有面向?qū)ο?、跨平臺(tái)等優(yōu)勢(shì)并且 其 直接調(diào)用了操作系統(tǒng)的圖形庫,所以其界面風(fēng)格與本地操作系統(tǒng)風(fēng)格一致。由于其對(duì)本地圖形庫的直 接調(diào)用 從而大幅度的提高了基于 用程序的運(yùn)行速度。 因此 程序員 將其 廣泛應(yīng)用于圖形界面開發(fā)。 對(duì) 擴(kuò)展 27,其原本是為更加方便地使用 編寫的一組 從使用方式上來說其 加易于使用,但功能卻沒 接。當(dāng)初其主要開發(fā)目的是為了開發(fā) 境,后來 織意識(shí)到開發(fā)獨(dú)立應(yīng)用程序時(shí)的重要作用。所以從 本后 , 經(jīng)變成了和 樣的完整獨(dú)立的開發(fā)包。 了大量的抽象,例如的 中為此類構(gòu)件提供了 式的 編程方法,這種方法使顯示與數(shù)據(jù)分開 使其 更加易于開發(fā)與維護(hù),本論文中就使用了 臺(tái)上的一個(gè)開放的圖表繪制類庫 28。 生成 拆線圖、 餅圖、柱狀圖、散點(diǎn)圖、時(shí)序圖、甘特圖等等多種圖表 并且可以產(chǎn)生 式。 有易于使用、繪制的圖形美觀 、坐標(biāo)刻度自適用 等特點(diǎn)。 本 論 文將使用 制評(píng)估曲線并將其嵌入到 發(fā)的圖形用戶 界面中。 17 第三章 推薦系統(tǒng) 框架 前 一章介紹 了 本文設(shè)計(jì)并實(shí)現(xiàn)推薦系統(tǒng) 時(shí) 需要 使用到的相關(guān)技術(shù) 和 一些 推薦算法。 本章 將 描述 系統(tǒng)的功能需求并對(duì)整體框架進(jìn)行分析設(shè)計(jì) : 首先 從 外圍架構(gòu) 上進(jìn)行詳細(xì)說明, 并對(duì)架構(gòu)中每個(gè)模塊的設(shè)計(jì)進(jìn)行深入討論 。 求分析 任何一個(gè)系統(tǒng)在設(shè)計(jì)之初,必須 要 明確系統(tǒng)的設(shè)計(jì)目標(biāo)與任務(wù) , 明確了其需求后才能進(jìn)行具體的功能設(shè)計(jì)。 一個(gè)友好易用的推薦系統(tǒng)至少 包含 如下 幾方面 的需求。 1. 友好的人機(jī)接口 推薦系統(tǒng)要發(fā)揮強(qiáng)大的作用,除了推薦系統(tǒng)本身,主要還依賴于兩個(gè)條件 界面展示和用戶行為數(shù)據(jù) 。 用戶界面 主要提供友好并且易于使用的人機(jī)接口 。其 主要 負(fù)責(zé)系統(tǒng)與用戶 之間 的交互 。 包括用戶登錄、 用戶 注冊(cè),響應(yīng)用戶推薦請(qǐng)求 以及 推薦結(jié)果的展示等。 2. 數(shù)據(jù) 的收集和存儲(chǔ) 個(gè)性化推薦算法依賴于用戶行為數(shù)據(jù),而在任何一個(gè)網(wǎng)站中都存在著各種各樣的用戶行為數(shù)據(jù)。 推薦系統(tǒng)的本質(zhì)就是 從海量數(shù)據(jù)中挖掘有效信息所以一方面系統(tǒng)需要存儲(chǔ)各種用戶數(shù)據(jù)如用戶 登錄、 注冊(cè) 信息數(shù)據(jù)、 用戶歷史行為數(shù)據(jù)、 推薦相關(guān)的數(shù)據(jù)、評(píng)測相關(guān)數(shù)據(jù)等。 另一方面 隨著用戶數(shù)量與物品數(shù) 量 的增加 , 數(shù)據(jù)的存儲(chǔ)需求也越來越大,因此推薦系統(tǒng)的存儲(chǔ)機(jī)制 也 需 要具備一定的可擴(kuò)展性以保證 增量 存儲(chǔ)的需求。按照 數(shù)據(jù)的規(guī)模和是否需要實(shí)時(shí)存取,不同的行為數(shù)據(jù)將被存儲(chǔ)在不同的媒介中。一般來說,需要實(shí)時(shí)存取的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫和緩存中,而大規(guī)模的非實(shí)時(shí)存取 的 數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)(如 。 3. 推薦 引擎的設(shè)計(jì) 推薦引擎使用一種或幾種用戶特征,按照一種 推薦策略生成推薦列表 。 應(yīng)該說 推薦引擎 是推薦系統(tǒng)中 的 重要組成部分 , 其質(zhì)量直接 決定 了推薦系統(tǒng)的推薦效果。其主要任務(wù)是對(duì) 用戶或者物品的數(shù)據(jù)進(jìn)行建模 分析 并對(duì)其 進(jìn)行預(yù)測計(jì)算 , 為 不同的用戶推薦不同的物品 。 18 另外隨著數(shù)據(jù)量的增加其計(jì)算量也線性增加因此要兼顧計(jì)算的 擴(kuò)展性。 4. 評(píng)估模塊 及參數(shù)的調(diào)整 從算法的角度來看推薦系統(tǒng)的推薦質(zhì)量受多個(gè)參數(shù)的影響如近鄰個(gè)數(shù)、評(píng)分閾值、推薦列表長度等。在實(shí)際使用中需要多次測試調(diào)整才能使其達(dá)到較好的性能。因此有必要 在系統(tǒng)上線 之 前 評(píng)估這些參數(shù)下的推薦指標(biāo)如準(zhǔn)確率、召回率、平均絕對(duì)誤差等。另一方面為 了更好的展示各種參數(shù)對(duì)于推薦 效果 的影響將評(píng)估結(jié)果可視化將幫助研究人員靈活 方便 的分析數(shù)據(jù)并選擇合適的算法與參數(shù)。 能總體設(shè)計(jì) 從邏輯功能上劃分主要包括 業(yè)務(wù)層、 存儲(chǔ)層和 算法層 ,參見 圖 3 1. 業(yè)務(wù)層 業(yè)務(wù)層 主要完成推薦結(jié)果展示 ( 包括兩部分內(nèi)容:一是羅列出該用戶已經(jīng)評(píng)分的物品及其相關(guān)信息,二是展示經(jīng)過推薦模塊計(jì)算得出的推薦結(jié)果 及其相關(guān)信息 ) 、 請(qǐng)求后臺(tái)數(shù)據(jù) 處理 、用戶登錄、收集用戶信息 、評(píng)估參數(shù)設(shè)置、評(píng)估結(jié)果曲線繪制 等功能 并且 提供 友好易用的人機(jī)接口 。 2. 算法層 算法層 主要包括 2 個(gè)模塊:推薦模塊和評(píng)估模塊。推薦模塊 用于封裝 推薦相關(guān)的代碼。 具體 包括 將 評(píng)分 數(shù)據(jù) 封裝 處理成 以識(shí)別的數(shù)據(jù)模型 ; 各種相似度的計(jì)算 具體包括 歐幾里德相似度( 皮爾森相關(guān)系數(shù)(余弦相似性( ; 推薦算法的具體實(shí)現(xiàn),包括 基于 協(xié)同過濾和基于 協(xié)同過濾 ; 以及與存儲(chǔ)層、業(yè)務(wù)層的交互等。 另外為了 兼顧計(jì)算 的擴(kuò)展性擬采用 架 并行計(jì)算相似度 以 進(jìn)一步提高后臺(tái)處理能力 。 評(píng)估模塊用于 封裝 評(píng) 估 相關(guān)的代碼 。具體用于計(jì)算 當(dāng)前參數(shù) 下的各種推薦指標(biāo) 并將評(píng)估結(jié)果返還給評(píng)估界面繪制評(píng)估曲線。本 系統(tǒng) 評(píng)估的指標(biāo)有準(zhǔn)確率 、召回率、 平均 絕對(duì) 誤差等。 準(zhǔn)確率 (于 評(píng)估 用戶對(duì)一個(gè) 推薦產(chǎn)品感興趣的可能性 。 召回率 (于 評(píng)估 一個(gè)用戶喜歡的產(chǎn)品被推薦系統(tǒng)推薦的概率 。 平均絕對(duì)誤差 (于評(píng)估實(shí)際值與預(yù)測值之間的差距 。 3. 存儲(chǔ)層 存儲(chǔ)層 采用多種存儲(chǔ)方式如 形式 。 因關(guān)系型數(shù)據(jù)庫仍然是目前主流的存儲(chǔ)系統(tǒng)并且目前 很多系統(tǒng)都不能方便的識(shí)別 件系統(tǒng)所19 以這里采用 存儲(chǔ)方式。 般用于 結(jié)構(gòu)化數(shù)據(jù)的 存儲(chǔ)如 網(wǎng)站上統(tǒng)計(jì)的用戶信息 , 包括用戶信息、評(píng)分矩陣等。 方面 用于 支持 大規(guī)模并行 計(jì) 算另一方面為系統(tǒng) 提供可擴(kuò)展的存儲(chǔ)。 對(duì)于一些不需要頻繁修改但要多次讀取的信息可存儲(chǔ)在 。 再者 在計(jì)算相似度的環(huán)節(jié)中可以 利用 下計(jì)算相似度后 再 將計(jì)算結(jié)果納入關(guān)系型數(shù)據(jù)庫,以便其它系統(tǒng)能夠利用關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理能力 。 圖 3總體框架圖 20 第四章 推薦系統(tǒng)的研究與 實(shí)現(xiàn) 本章 在需求分析和功能設(shè)計(jì)的基礎(chǔ)上 開展 如下三部分的工作:一是 基于 擎實(shí)現(xiàn) 一個(gè)推薦系統(tǒng)。二是由于相似度計(jì)算是推薦模塊計(jì)算量最大的部分為了加快計(jì)算速度 , 本章引入 程框架實(shí)現(xiàn)離線并行計(jì)算相似度并基于 供的 現(xiàn)對(duì)用戶數(shù)據(jù)的存儲(chǔ)以提高系統(tǒng)存儲(chǔ)空間的可擴(kuò)展性,并在此基礎(chǔ)上對(duì) 群做了優(yōu)化以進(jìn)一步加快計(jì)算速度。三是實(shí)現(xiàn)評(píng)估模塊對(duì)各種參數(shù)進(jìn)行評(píng)估,并使用 形庫可視化評(píng)估結(jié)果將評(píng)估曲線顯示在 面上以幫助研究人員靈活方便的分析數(shù)據(jù)并選擇合適的算法與參數(shù),并對(duì)繪制的曲線圖進(jìn)行了簡要的解釋與 分析。 于 薦引擎 的 研究 與 實(shí)現(xiàn) 個(gè)性化推薦 系統(tǒng) 的 設(shè)計(jì) 一般 包括 以下幾個(gè) 步驟 : 建立 用戶 數(shù)據(jù) 模型 , 計(jì)算相似度 , 根據(jù)相似性表產(chǎn)生推薦 。因?yàn)?身 對(duì)用戶數(shù)據(jù)的格式進(jìn)行了封裝,所以 產(chǎn)生 推薦的流程是 首先 要 將 用戶 數(shù)據(jù)組織成 持的 式, 然后 在此基礎(chǔ)上計(jì)算 相似度 ,之后把 相似性表、用戶數(shù)據(jù) 轉(zhuǎn)給口 計(jì)算 得到相應(yīng)的推薦結(jié)果 。 據(jù)建模 方法 本章 使用的數(shù)據(jù)集來自于 供的 電影 數(shù)據(jù) 評(píng)分 集, 該數(shù)據(jù)集包含 6000 多用戶對(duì) 4000 多部電影的 100 萬條評(píng)分 記錄 。該數(shù)據(jù)集是一個(gè)評(píng)分?jǐn)?shù)據(jù)集,用戶可以給電影評(píng) 5 個(gè)不同等級(jí)的分?jǐn)?shù)( 1 5 分) 。 由于 大部分網(wǎng)站的數(shù)據(jù)都 存儲(chǔ) 在數(shù)據(jù)庫里 ,因此首先需要設(shè)計(jì) 數(shù)據(jù)庫 表 以存儲(chǔ)用戶、物品信息 以及用戶對(duì)物品的評(píng)分 信息 。 數(shù)據(jù)庫 表 的設(shè)計(jì)如下 : : 主要存儲(chǔ)電影相關(guān)的信息如電影的 編號(hào)、 電影 名稱、 發(fā)行時(shí)間 、 影片 類型等。 其中 主鍵 。 表 4電影信息表 列名 數(shù)據(jù)類型 長度 是否主鍵 是否外鍵 備注 id 1 Y Y 電影編號(hào) 00 N N 電影名稱 21 N N 發(fā)行時(shí)間 00 N N 影片類型 :存儲(chǔ)用戶相關(guān)的信息 包含用戶的基本信息:編號(hào)、姓名、郵件 、性別、年齡、職業(yè)信息 等等 。 其中 id(主鍵 。 表 4用戶信息表 列名 類型 長度 是否主鍵 是否外鍵 備注 id 1 Y Y 用戶 編號(hào) 0 N N 用戶姓名 00 N N 郵件 00 N N 性別 1 N N 年齡 ( 以年齡段劃分 ) 00 N N 職業(yè) : 用于存儲(chǔ)用戶對(duì)電影的評(píng)分信息 也是推薦系統(tǒng)經(jīng)常讀取的數(shù)據(jù)表 。主要 包含用戶編號(hào)、電影編號(hào)、用戶的評(píng)分以及 當(dāng)時(shí) 評(píng)分的時(shí)間。 其中 主鍵。 外鍵 , 其 對(duì)應(yīng) 的外鍵 , 其 對(duì)應(yīng) 的 表 4評(píng)分信息表 列名 類型 長度 是否主鍵 是否外鍵 備注 1 Y Y 用戶編號(hào) 1 Y Y 電影編號(hào) 1 N N 評(píng)分值 1 Y N 時(shí)間戳 : 用于 存儲(chǔ) 兩兩電影之間的相似度。 兩個(gè)電影的相似度可以通過 用戶對(duì)電影的歷史評(píng)分 計(jì)算得到。 其中 因在 適合 基于 推薦 場景 中 , 項(xiàng) 目之間的相似度一般比較穩(wěn)定,沒有很強(qiáng)的時(shí)間要求可以在線下提前完成,這樣對(duì)于數(shù)據(jù)數(shù)量和算法復(fù)雜度限制更小 。所以這里專門設(shè)計(jì)一個(gè) 數(shù)據(jù)庫 表用于存儲(chǔ)兩個(gè)項(xiàng)目之間的相似度。 表 4電影 相似性表 列名 類型 長度 是否主鍵 是否外鍵 備注 1 Y Y 電影 1 編號(hào) 22 1 Y Y 電影 2 編號(hào) 1 N N 相似度 用自己實(shí)現(xiàn)的 據(jù)模型: 對(duì) 用戶 評(píng)分信息的抽象 ,其有很多種具體實(shí)現(xiàn)支持從任意類型的數(shù)據(jù)源抽取用戶喜好信息。具體實(shí)現(xiàn)包括內(nèi)存版的 持文件讀取的 支持?jǐn)?shù)據(jù)庫讀取的 本文中大部分?jǐn)?shù) 據(jù)都是存在數(shù)據(jù)庫里的 ,而 要求的數(shù)據(jù) 模型 的格式是 中間需要經(jīng)歷一個(gè)轉(zhuǎn)換 的過程 需要 擴(kuò)展 數(shù)據(jù)庫的讀取類。 于 實(shí)現(xiàn) 基 于用戶的 協(xié)同過濾算法 是 給用戶推薦和該用戶 興趣相似的其他用戶喜歡的物品 。 因此基于用戶的協(xié)同過濾的一般步驟為 采用某種 相似性 度量找到 若干與目標(biāo)用戶行為相似的用戶即該用戶的最近鄰居 , 然后將 其鄰居評(píng)價(jià)過的或者喜歡的但該用戶 還未評(píng)分的 且預(yù)測評(píng)分較高的物品推薦給該用戶 。 所以其關(guān)鍵步驟 分為 兩步: 一是 找到目標(biāo)用戶 的最近鄰居集合 , 二是 將鄰居們的喜好 通過一定的方式 組織成一個(gè)有 序的列表 ,也即 找到這個(gè)集合中 目標(biāo) 用戶喜歡的 且目標(biāo)用戶沒有 評(píng)價(jià) 過 的物品推薦給該 用戶。 1. 計(jì)算用戶之間的相似度 我們又怎么找到與目標(biāo)用戶興趣相似的用戶 呢? 一般認(rèn)為如果兩個(gè) 用戶對(duì)物品的評(píng)分 大體一致則認(rèn)為這兩個(gè)用戶興趣相似 , 所以查找最近鄰的 關(guān)鍵就是計(jì)算兩個(gè)用戶的相似度。 關(guān)于相似 性的度量目前最常 用 的方法都是 以 向量 計(jì)算為主的 ,實(shí)質(zhì)上就是 通過一定的方式 計(jì)算兩個(gè)向量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論