上海交通大學計算機專業文獻綜述范文
論文堡
日期:2023-11-24 20:56:51
點擊:585

序言
隨著社會與科技的發展,互聯網給我們提供了大量的信息,我們面臨著嚴峻的信息過載問題,快速尋找對自己有用或自己感興趣的內容是很困難的,互聯網把我們帶進了信息爆炸的時代,人們的娛樂生活日趨豐富,各種視頻,包括電視節目以及各種娛樂視頻等都存在在網絡上,即面對大量復雜多變的信息,對于電影愛好者來說,其利用網絡在浩如煙海的電影數據庫中找到自己喜歡的電影并容易。電影愛好者往往會參考其他人的觀影意見來對一部電影進行判斷,從而決定是否觀看或者下載該電影。因此個性化推薦系統的研究變得越來越有價值。
個性化推薦技術實際上本質是一種信息過濾技術。它建立用戶和信息之間的聯系,幫助用戶找到那些對自己游泳或自己所感興趣的信息,同時也讓信息有機會推送給適合它消費的用戶。其基本工作原理時根據用戶的行為數據,例如用戶對某部電影的量化評分數據或非量化的評論數據,分析用戶的習慣、愛好,然后有針對的向用戶推薦其可能感興趣的內容,目前廣泛應用在如電子商務、電視、電影和視頻、音樂、社交網絡等領域的眾多互聯網領域。
亞馬遜是目前非常著名的電子商務網站,也是個性化推薦系統最早的實踐者和推廣者,其主要應用是個性化推薦列表和相關商品推薦列表。個性化推薦列表是推薦你當前瀏覽的商品的相關同類商品,例如你在想看一部金童的小說,該網站可能會給你推薦金庸的另一部小說;相關商品推薦列表是向你推薦你當前瀏覽的商品的相關非同類商品,如你正在瀏覽一件外套,它會向你推薦和這件外套樣式搭配的鞋子,或者提供一個給予一些優惠的打包購買服務。
綜上,個性化推薦系統在互聯網領域發揮者越來越大的作用,它正在影響著互聯網的發展,同時為用戶和企業創造著價值。
課題研究內容主要包括如下幾部分:
1、概述網絡電影推薦系統的研究背景和現狀,闡述中外研究成果及論文整體的思路和結構;
2、簡述論文研究的背景知識,各種推薦算法的介紹,包括基于用戶的協同過濾算法,基于物品的協同過濾算法,基于內容的推薦算法,基于網絡結構的推薦算法等。
3、概述圖數據庫,介紹neo4j圖數據庫及其特點。
4、介紹電影推薦系統的整體架構,描繪整體架構圖。介紹本推薦系統的前臺界面設計和后臺數據庫及推薦算法在整個推薦系統的應用流程。
5、對個性化推薦系統研究工作個全面總結和對研究前景的展望。
本課題擬解決的關鍵問題如下:
1、對比基于用戶的協同算法和基于物品的協同算法,幫助推薦系統的功能設計與實現;
2、如何利用圖數據庫neo4j,快速的查找和操作,展示數據源和推薦結果,從而更好的為推薦結果做出解釋。
相關知識點如下:
1、圖數據庫概述
圖形數據庫是一種非關系型數據庫,它應用圖形理論存儲實體之間的關系信息。最常見的一個例子,就是社會網絡中人與人之間的關系。關系型數據庫用于存儲“關系型”數據的效果并不好,其查詢復雜、緩慢、超出預期,而圖形數據庫的獨特設計恰恰彌補了這個缺陷。
本文實現的系統是基于圖數據庫(graph database)實現的,在計算機領域,圖數據庫是一種使用圖這種結構來存儲和查詢數據,這里的圖是指數據結構和算法里面的圖,而不是常見的圖形圖像,其基本存儲單元為:節點、關系(也可以稱作邊)、屬性。圖數據庫與關系型數據庫的一個明顯的區別是使用關系來連接各個節點數據,而不是外鍵。
neo4j 可能是當下人氣最高的圖形數據庫。 neo4j 在設計上主要考慮到 java 應用程序的實
際需求,但它同時也支持 python。 neo4j 屬于開源項目,共有 gplv3 社區版、高級版、企業
版三種版本;后兩者都以 agplv3 商業許可為基礎。
2、相似度計算
相似度計算是通過距離來很亮兩個對象之間的相似程度,經典的相似度計算方法有歐式距離、馬氏距離、曼哈頓距離,jacccard系數、余弦相似度、皮爾遜相關系數等,但在推薦系統領域,常見的主要是歐式距離、余弦相似度以及皮爾遜相關系數。
2.1歐氏距離
歐式距離也叫作歐幾里得距離,定義為在歐幾里得空間中的兩個點x=( )和y=( )之間的距離,如式:
計算歐式距離時,如果兩者完全相似,即兩個點是重合的,距離為0,如果兩者距離很遠,即相似度很低。不過一般在使用時我們用[0,1]來表示相似度,0表示幾乎不相似,1表示非常相似,所以可以用 來轉換。
3、推薦系統算法概述:
推薦系統的研究大致可以分為三個階段,第一階段是基于傳統的web服務,第二階段是基于目前的社交網絡的web服務,第三階段是即將到來的物聯網。這其中產生了很多基礎和重要的算法,例如協同過濾(包括基于用戶的和基于物品的)、基于內容的推薦算法、混合式的推薦算法、基于統計理論的推薦算法、基于社交網絡信息(關注、被關注、新人、知名度、信譽度等)的過濾推薦算法、群體推薦算法、基于位置的推薦算法。其中基于領域的協同過濾推薦算法是推薦系統中最基礎、最核心、最重要的算法,該算法不僅在學術界得到較為深入的研究,而且在業界也得到非常廣泛的應用。
4、協同過濾核心思想
協同過濾系統是根據用戶使用網站的歷史記錄來計算用戶與用戶之間的相似程度,并根據與目標用戶的相似程度比較
5、基于用戶的協同過濾算法
基于用戶的協同過濾算法簡稱usercf,其簡單應用情景是:當用戶需要個性化推薦時,可以先找到與它相似其他用戶(通過興趣、愛好或行為習慣等),然后把那些用戶喜歡的并且自己不知道的物品推薦給用戶。
詳細的過程如下:
1.使用某一種選定的相似度計算方法計算當前待計算用戶a的最近的k個鄰居,這k個鄰居是距離a最近的用戶,即可以看成是與用戶a最相似的k個用戶。
2.選定k個用戶之后,通過某種方法計算這些用戶中a不曾購買或知道的物品i對于用戶a的預測興趣度。
3.為了選擇最好的n個推薦物品,從上面2中選擇預測興趣最高的n個物品。
計算用戶a對物品i的預測興趣度如式所示:
其中s(u,k)表示與用戶u興趣最接近的k個用戶,n(i)表示對物品i有過行為的用戶集合, 表示用戶u和用戶v的相似程度, 表示用戶v對物品i的感興趣程度。
使用基于用戶的協同過濾算法的流程如圖:
6、基于物品的協同過濾算法
基于物品的協同過濾算法簡稱itemcf,其簡單應用情景是:例如一個用戶a需要個性化推薦時,由于他之前購買過某款型的上衣,所以會給他推薦適合與上衣搭配的褲子或裙子,因為其他很多用戶都同時購買了這兩種商品。
詳細的過程如下:
1.使用某一種選定的相似度計算方法計算兩兩物品之間的相似度。
2.根據物品的相似度和用戶的歷史行為給用戶生成推薦列表。
這里計算物品之間的相似度是和用戶行為有關的,如果只考慮物品本身的屬性計算相似度就是基于內容的推薦了。計算物品之間的相似度如式所示:
其中n(i),n(j)表示喜歡或購買物品i的用戶數,n(i) n(j)表示同時喜歡或購買物品i、j的用戶數。
計算了物品之間的相似度之后就可以使用如下式來計算用戶u對物品j的興趣度。
其中n(u)表示用戶u喜歡的物品集合,s(j,k)表示和物品j最相近的k個物品的集合, 是物品j和物品i的相似度, 是用戶u對物品i的興趣度。
其具體流程如下:
7、基于內容的推薦算法
目前,協同過濾是較為流行的推薦算法,在學術界和工業界都有廣泛的研究個使用,但同樣作為推薦系統領域的基礎算法——基于內同的推薦也是很重要的。其基本原理是根據用戶之前對物品的歷史行為,如用戶購買過什么物品、收藏過什么商品、評過分等等,然后再根據計算與這些物品相似的物品,并把它們推薦給用戶。例如用戶之前購買過金庸的《神雕俠侶》,可以說明此用戶可能是一個金庸迷或武俠迷,這時就可以給該用戶推薦金庸的其他武俠小說。
在電影推薦系統中,該算法首先分析用戶的歷史記錄,對其已經看過的并且打分比較高的電影的一些共同屬性(比如演員、導演、風格等)進行分析,然后在推薦與這些共同屬性的相似度較高的其他電影給用戶。基于內容的推薦算法的核心在于信息獲取過程以及信息過濾過程。基于內容的推薦算法是以產品為核心,由于產品的信息往往趨于穩定,而用戶的信息可能時刻處于變化之中,例如用戶年齡的變化會導致其偏好發生改變。因此,產品信息比較穩定,基于內容的推薦算法也是比較穩定的,具有普遍適用性。
基于內容的推薦算法一般包括以下幾步:
1.為每個物品抽取一些特征用來表示這個物品。
2.使用用戶的歷史行為數據分析物品的這些特征,從而學習出用戶的喜好特征說興趣。
3.通過比較上一步得到的用戶興趣和待推薦物品的特征,確定一組相關性最大的物品最為推薦列表。
8、neo4j圖數據庫
目前的圖數據庫產品有很多,主流的是neo4j,所以本文中的系統也選用neo4j作為圖數據庫的實現引擎。
neo4j最主要的特點是基于屬性的圖,可以支持java、python、scala等編程語言,是一款開源的nosql圖數據庫,其底層實現是用java和scala實現的。目前業界已經有相當多的公司或組織在使用,主要應用于網絡管理、推薦系統、社交網絡等領域。相比其他相關產品具有以下特性:在床架是就存儲關系,避免動態的復雜查詢消耗;得益于高效的節點和關系的存儲,可以達到常數級別的圖的深度、廣度遍歷;所有關系都是同等重要的和快速的,后續的根據業務模型變化進行擴展也很方便;壓縮的存儲和基于內存的緩存可以高效的處理上億節點的查詢和操作;運行于jvm平臺之上,即可以跨平臺運行。
相關文章
檔案管理新增
檔案管理熱點