999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

眾創資源分享平臺的設計與實現

2019-09-12 10:41:42胡益龍
智能計算機與應用 2019年4期

胡益龍

摘 要:本系統是一個功能較為完備的資源分享平臺,實現了資源分享、資源搜索、資源推薦等功能。其中網站的主體通過經典的JavaEE框架構建,通過Lucene技術與Solr技術提供資源搜索服務,并且實現了以機器學習ALS算法為核心的資源推薦系統,使得用戶可以更為方便地找到想要的資源。

關鍵詞:資源分享;全文檢索;智能推薦

文章編號:2095-2163(2019)04-0216-05 中圖分類號:TP311.13 文獻標志碼:A

0 引 言

信息過載已經成為當前互聯網迅猛發展中不容忽視的一個重要問題,由此則導致用戶想要精準獲取資源就顯得尤為困難。在此背景下,本系統設計實現了搜索與推薦兩種資源相關的服務。在算法方面,常見的推薦算法主要有基于內容的推薦與基于協同過濾的推薦。而對于協同過濾推薦算法,又可將其分為3種,即:基于用戶的協同過濾、基于物品的協同過濾、基于模型的協同過濾。其中,協同過濾的推薦算法無需考慮物品與用戶標簽和屬性就能夠做出推薦,但是在大數據量的情況下基于用戶與物品的協同過濾算法將會面臨稀疏矩陣與計算復雜的問題。綜合上述分析后可知,本次研發系統將使用基于模型的推薦算法ALS,為了實現分布式計算采用了大數據lambda架構作為整個推薦系統基礎架構。這里,研究中用到的計算框架為Spark,通過將離線計算、實時計算、機器學習三者融為一體,可以在搜索與推薦的雙重服務下使用戶能夠更加快速地找到自己想要的資源。

1 推薦系統算法研究

1.1 特征向量與線性相似度

本系統推薦算法使用交叉線性回歸(ALS)與余弦聚類。ALS主要是基于評分矩陣(同現矩陣)來實現推薦,而評分矩陣的計算在底層則依賴于2個向量的線性相似度的計算。在該模型中,假設每一個用戶都對應著一個特征向量,每一個資源對應著一個特征向量。模型通過計算資源的特征向量與用戶特征向量的相似度來估算某一個用戶對某一個資源的好感度。好感度將直接體現在用戶對某一個資源的評分上,好感度越高,評分就越高。機器學習中,有很多方法可用來估算2個向量的相似度,本模型假設用戶向量與資源向量的相似度為用戶的特征向量U和資源的特征項向量R的線性相似性。也就是評分Pscore≈UR+λ。基于這一假設,只要有一個用戶的特征向量與一個資源的特征向量就能夠預測該用戶對此資源的評分,進而做出推薦。

1.2 損失函數的定義

本次研究模型的最終目標就是使模型的預測與用戶真實的評分相近。對于公式Pscore≈UR+λ,令Pscore為預測分數,Tscore為真正的評分。模型希望|Pscore - Tscore|≈ 0,但是絕對值函數是一個不平滑的函數,在進行模型優化時不易計算,同時也不利于L2的正則化。通常選擇平方錯誤函數(Pscore - Tscore)2 ≈ 0來作為損失函數。

1.3 模型降維與矩陣分解

遵循上述原理,模型可以根據已有的數據來計算出用戶的特征向量與資源的特征向量。在原始的模型中,用戶特征向量的維度為資源的個數,資源的特征向量的維度為用戶的個數。研究中,n個用戶m個資源就會構成一個n行m列的矩陣,這樣就可以同時計算出n個用戶與m個資源的特征向量。其中,每一行是一個用戶對各個資源的評分,每一列是多個用戶對一個資源的評分。當數據量十分龐大時,用戶與資源向量的維度都會變得很大,整個模型的自由度會升至很高。VC維度證明了高復雜度的模型會形成一種系統性的噪音,會干擾模型的實際準確度,如此即會出現過擬合的現象。過擬合的含義就是:在訓練集上模型表現得很好,但是在實際的測試集上會出現很大的誤差。

為了降低模型復雜度、減小過擬合的風險,模型采用了矩陣分解的方式降低了用戶與資源的維度。具體來說,將n個用戶m個資源所構成的n行m列的矩陣分解為n*d的矩陣與d*m的矩陣的乘積,矩陣分解示例則如圖1所示。其中,d為用戶可以手動調節的參數,減少d的數值就可以降低模型的維度,從而削弱了過擬合對模型的干擾。這樣一來,模型通過降維就可獲得主要的隱含因子,忽略掉次要的特征。實際上,原始的n行m列的矩陣是一個稀疏矩陣,通過矩陣分解的降維處理可以將模型計算的復雜度從O(nm)降到了O((m + n) * d)。

1.4 模型訓練

經過損失函數的定義與矩陣分解的降維處理,下面擬進行模型的訓練研究。ALS損失函數的計算公式可表示為:

其中,m表示資源的個數;n表示用戶的個數;W與V分別表示模型訓練后的資源權重的向量與用戶權重的向量。

對于一組數據來說,模型在n號用戶對m號資源的預測值與真實值的差值平方就是模型在一個資源向量上的損失,對于所有單一資源的誤差的和就是模型的整體損失。ALS的目標就是要根據已知的數據找到損失函數值最小的誤差。為了減少運算量,一般采用隨機梯度下降法(SGD)去優化模型。

分析可知,在公式(1)中有2個需要優化的變量W與V,首先讓其中一個變量的值固定,這可以得到一個變量的公式,此時就能直接采用單個變量的梯度下降法計算出誤差的最小值,進而計算出另一個向量的值。在此基礎上,再固定剛剛計算好的向量使用線性回歸計算出另一方的特征向量。如此這般輪流地進行線性回歸計算,最終模型就可輸出所有用戶與資源的特征向量。可以通過用戶的特征向量與每個資源進行線性組合,得到預測的分數,選擇評分最高的k個資源推薦給該用戶。

1.5 模型校驗

在模型訓練時,通常會設置多組參數,不同參數組合下的模型會有不同的準確度。通過對參數組合的優化選擇,就可以得到準確率更高的模型。本系統中涉及到的參數有:模型維度、正則化參數、迭代次數。考慮到若對模型進行校驗就需要準備校驗數據集來評判在特定參數組合下模型的準確度,所以在劃分訓練集時通常會再細分為訓練集與校驗集。同時,為了達到訓練集與校驗集的獨立同分布,則多會選用隨機分割。至此,為了充分利用數據集、以及減少訓練迭代次數,本系統直接使用了交叉驗證(Cross Validation)作為模型校驗的方法。事實上,本系統共將訓練集隨機平均分為10部分,每一輪訓練時都將其中的9份作為實際的訓練集,剩下的1份作為校驗集,經過對校驗集的更替,最后選出最優的參數組合。交叉驗證示例如圖2所示。

1.6 余弦相似度計算

在實時推薦時,本系統將著重研究資源之間相似度的計算。在計算資源之間的相似度時用到了余弦聚類,使用向量空間中2個向量夾角的余弦值衡量2個個體間差異的大小。如果2個向量的余弦相似度越接近1,就說明這2個向量越相似。反之,越接近0,就越不相似。余弦相似度的數學定義可表示為:

1.7 模型的評估

在成功構建這一推薦模型的同時,必須要保證模型的可用性與準確性,否則整個模型就幾乎相當于在做隨機猜測。為簡單起見,本系統沒有使用AUC作為模型的評價方案,而是直接計算模型的預測評分與實際標簽的均方根誤差RMSE1。均方差越小,就表明模型預測得越準確。此外,還要計算得出平均評分值與實際評分的RMSE2。當RMSE1 -RMSE2為正數時,就證明模型有正向的預測效果。

1.8 推薦系統冷啟動問題

當面對一個全新系統、全新用戶或者全新資源時,由于沒有歷史數據的鋪墊可能會出現推薦算法的冷啟動問題。既然推薦算法在此時的表現欠佳,就決定了需在此處設置一個替補的策略,也就是榜單系統。新來的用戶可以從榜單開始尋找自己的喜好,同時也會有更新的榜單來避免新的資源的冷啟動。

2 系統設計

2.1 總體功能模塊設計

系統設計包括Web端的設計和推薦系統的設計。與此相對應,功能模塊包括用戶登錄、注冊、創建資源、瀏覽資源、搜索資源、收藏資源、刪除資源、離線榜單、在線榜單、離線推薦、在線推薦等。總體模塊結構如圖3所示。

2.2 推薦系統架構的設計

推薦系統在功能上可解析為推薦功能與榜單計算兩部分。而對數據處理而言,又分為離線與實時兩大類。文中將對此展開研究分述如下。

(1)功能設計分析。服務集群由多個子集群組成,對其中各主要集群的功能設計可做出如下闡釋及論述。

① Hadoop/Hive集群。對其功能可表述為:一方面為數據存儲,系統會將MySQL中的數據同步到集群上。另一方面提供資源調度,系統將會使用Spark on Yarn的調度模式,這里的Yarn組件來自于該集群。

② Spark集群。該集群的功能定制為整個推薦系統的全部計算。其中,SparkML負責推薦算法的執行,SparkStreaming負責在線數據的計算處理,同時這兩者都可以使用SparkSQL的API來給出更加便捷的實現。

③ Zookeeper集群。主要負責分布式協調工作,并由其配合KafKa集群共同完成分布式消息隊列的功能。KafKa集群是一個分布式消息隊列,可通過Log4j來消費發送自Web服務器的數據,分布式地存儲在各個節點上,不僅具備高容錯、高吞吐的特點,而且也促進了Web端與數據計算端的有效解耦。系統拓撲結構如圖4所示。

(2)數據處理分析。整個數據流的處理可以分為離線與在線兩個部分。其中,離線部分首先將MySQL中的用戶評分表中的數據使用Spark導入Hive中;使用SparkSQL連接Hive讀取數據,并且處理數據,計算離線榜單與推薦矩陣。進一步地,推薦矩陣中給每個用戶提供了10條推薦資源,同時也計算出了對于某一個資源與其相似的10條資源,為后續的在線推薦做好準備;將計算過的數據使用SparkSQL寫入MySQL中,方便在Web端做出展示。在線部分中,用戶點擊Web界面會產生日志信息;這些日志信息會被KafKa消費到自己的隊列中;而SparkStreaming則會消費KafKa中的數據,將數據按照一定的時間間隔進行微批處理,在此過程中還會提取MySQL中的數據進行連接計算;將計算好的數據送入MySQL中進行Web端的展示。

2.3 算法參數調優

系統使用Spark提供的ParamMap進行參數設計,根據不同的維度設置不同的參數,這樣模型在訓練時將會考慮到所有參數的組合(笛卡爾積),最終得到一個更好的模型。本系統中設置的參數組合見表1。

2.4 系統數據庫邏輯結構設計

由于本文設計的系統選用了關系型數據庫管理系統。研究推得的系統數據庫的邏輯結構如圖5所示。

3 系統實現

3.1 資源搜索的實現

當用戶在搜索框輸入關鍵詞之后,搜索引擎將會根據提前構建好的倒排索引去搜索相關的資源。資源搜索的主界面如圖6所示。

3.2 離線推薦計算的實現

Spark ML中封裝了ALS的完整實現并且提供了非常簡單的接口方便調用。ALS算法在訓練時會調取較多的迭代式計算。ALS計算時SparkUI中的DAG圖見圖7。

3.3 實時榜單計算的實現

實時榜單的計算主要使用了SparkStreaming的reduceByKeyAndWindow算子,每隔一個時間段系統就會將規定窗口內的數據進行匯總計算。其中,圖8展示的DAG就是經過一段時間對窗口內所有的微批進行處理。

4 結束語

本系統實現了資源分享、資源搜索、資源推薦等基本功能,但系統的整個集群都是在一臺電腦的虛擬機上搭建而成的,無法完全模擬生產環境,這樣就難于處理某些在實際生產環境中遇到的問題。同時

推薦算法的選取也偏于單一化,因而還未能在多模型融合的推薦排序方面取得突破。今后擬在深度學習與語義推薦方面做出優化與改進。

參考文獻

[1]周志華. 機器學習[M]. 北京: 清華大學出版社,2016.

[2]林軒田.機器學習基石[EB/OL]. [2013]. https://www.coursera.org/learn/ntumlone-mathematicalfoundations/2017-10.

[3] 林軒田. 機器學習技法[EB/OL]. [2013]. https://www.coursera.org/learn/ntumlone-algorithmic techniques/2018-02.

[4] 王家林, 段志華, 夏陽. Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優[M]. 北京:清華大學出版社, 2018.

[5] 郭景瞻. 圖解Spark:內核技術與案例實戰[M]. 北京:電子工業出版社,2017.

[6] 唐亙. 精通數據科學:從線性回歸到深度學習[M]. 北京:人民郵電出版社,2018.

[7] 楊海霞. 數據庫原理與設計[M]. 2版. 北京:人民郵電出版社, 2013.

[8] KALUA B. Java機器學習[M]. 武傳海,譯. 北京:人民郵電出版社,2017.

[9] 楊冠寶. 阿里巴巴Java開發手冊[M]. 北京:電子工業出版社,2018.

[10]MINER D,SHOOK A. MapReduce設計模式[M]. 徐釗,趙重慶,譯. 北京:人民郵電出版社, 2014.

主站蜘蛛池模板: 四虎国产成人免费观看| h网站在线播放| 成人国产免费| 精品撒尿视频一区二区三区| 亚洲丝袜第一页| 日韩一级二级三级| 国产成人h在线观看网站站| 中文字幕无码电影| 女人18毛片一级毛片在线 | 波多野结衣视频网站| 国产高清国内精品福利| 五月激情综合网| 久久国产精品国产自线拍| 无码网站免费观看| 人妻中文字幕无码久久一区| 国产视频入口| 91精品福利自产拍在线观看| 亚洲精品在线观看91| 久久国产亚洲偷自| 一本一本大道香蕉久在线播放| 国产精品毛片一区| 日日拍夜夜嗷嗷叫国产| 成人综合久久综合| 亚洲不卡网| 久草青青在线视频| 日韩精品一区二区深田咏美| 伊人无码视屏| AV熟女乱| 国产午夜在线观看视频| 亚洲国产日韩在线成人蜜芽| 国产精品真实对白精彩久久| 国产高清色视频免费看的网址| 91娇喘视频| 99中文字幕亚洲一区二区| 一区二区三区国产精品视频| 久久99国产综合精品女同| 国产免费精彩视频| 亚洲无码高清视频在线观看| 精品三级网站| 97久久精品人人做人人爽| 乱色熟女综合一区二区| 亚洲国产天堂在线观看| 亚洲毛片一级带毛片基地| 国产美女无遮挡免费视频| 免费精品一区二区h| 国产手机在线小视频免费观看| 国产女人18毛片水真多1| 天天色综合4| 这里只有精品在线| 99久久国产综合精品2020| www.91中文字幕| 亚洲性视频网站| 亚洲精品在线观看91| 人妻中文字幕无码久久一区| 免费人成黄页在线观看国产| 亚洲国产精品美女| 欧美国产在线看| 免费无码AV片在线观看中文| 欧美一级特黄aaaaaa在线看片| 人人91人人澡人人妻人人爽 | 午夜限制老子影院888| 欧美日本视频在线观看| 亚洲精品成人片在线观看| 日本国产精品| 91色在线视频| 亚洲中文无码av永久伊人| 亚洲成人动漫在线| 国产精品30p| 久久伊人操| m男亚洲一区中文字幕| 亚洲精品无码久久久久苍井空| 色婷婷亚洲十月十月色天| 国产无人区一区二区三区| 国产在线拍偷自揄拍精品| 欧美专区日韩专区| 蜜桃视频一区| 国产精品久久久久久搜索| 国产二级毛片| 欧美日韩精品综合在线一区| 国产swag在线观看| 成人精品视频一区二区在线| 91青青视频|