• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于分布式流處理框架下的移動健身管理系統(tǒng)研究

      2016-04-12 00:00:00孫凱濤
      現(xiàn)代電子技術(shù) 2016年21期

      摘 要: 基于實時推薦的移動健身管理平臺,將健身視頻與健身管理結(jié)合,同時滿足用戶學(xué)習(xí)健身方法的需求和科學(xué)管理健身數(shù)據(jù)的需求。該系統(tǒng)實現(xiàn)了基于Android平臺的移動健身管理應(yīng)用,具備科學(xué)記錄用戶健身和飲食數(shù)據(jù)的功能和視頻分享功能。通過對目前已有推薦系統(tǒng)算法的研究,根據(jù)系統(tǒng)和開發(fā)平臺的特點,設(shè)計出一種實時視頻推薦算法,然后基于目前流行的分布式流處理計算框架ApacheStorm實現(xiàn)了實時視頻推薦引擎,移動健身管理應(yīng)用提供視頻實時推薦服務(wù)。

      關(guān)鍵詞: 健身管理; 視頻; 實時推薦; 安卓

      中圖分類號: TN911?34; TM417 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)21?0132?05

      Research on mobile fitness management system based on

      distributed stream processing framework

      SUN Kaitao

      (College of Application Engineering, Henan University of Science and Technology, Sanmenxia 472000, China)

      Abstract: On the basis of the mobile fitness management platform based on real?time recommendation, the combination of fitness video and fitness management can simultaneously meet the requirements of learning fitness method and scientific fitness data management for users. The system realized the application of mobile fitness management based Android platform, and has the functions of scientifically user fitness and diet data recording, and video sharing. According to the study of the available recommendation system algorithm and characteristics of system and development platform, a real?time video recommendation algorithm was designed. The real?time video recommendation engine was realized based on the popular distributed stream processing computing framework ApacheStorm, in which the mobile fitness management application provides the video real?time recommendation service.

      Keywords: fitness management; video; real?time recommendation; Android

      0 引 言

      互聯(lián)網(wǎng)上有大量關(guān)于各類健身運動等資源供參考,能夠幫助人們更合理地安排健身計劃和飲食計劃。移動設(shè)備和移動互聯(lián)網(wǎng)的普及使這些海量資源可以隨時隨地被獲取,滿足了人們對運動和飲食信息的即時性需求。然而面對海量的信息資源,用戶很難在短時間內(nèi)獲取符合自身需要的信息,有價值的資源有很多,幫助用戶找到符合自身需求的信息至關(guān)重要。推薦系統(tǒng)正是為解決這個問題而產(chǎn)生的。推薦系統(tǒng)可以通過采集和分析用戶的歷史瀏覽數(shù)據(jù),從大量視頻中找到符合用戶需求的視頻,生成推薦列表返回給用戶。

      1 系統(tǒng)概要設(shè)計

      1.1 系統(tǒng)架構(gòu)設(shè)計

      (1) 系統(tǒng)物理架構(gòu)

      本系統(tǒng)實現(xiàn)了客戶端/服務(wù)器(C/S)和瀏覽器/服務(wù)器(B/S)兩種軟件架構(gòu)。普通用戶通過Android移動客戶端與服務(wù)器進(jìn)行交互,實現(xiàn)健身管理和視頻觀看功能;系統(tǒng)管理員通過瀏覽器與服務(wù)器進(jìn)行交互,對基礎(chǔ)數(shù)據(jù)和用戶進(jìn)行管理。實時推薦系統(tǒng)的主節(jié)點運行在應(yīng)用服務(wù)器上,其他工作節(jié)點運行在分布式集群上,為用戶提供實時視頻推薦服務(wù)。

      (2) 系統(tǒng)邏輯架構(gòu)

      移動健身管理平臺中有用戶和后臺管理員兩種角色,分別通過移動客戶端和瀏覽器與服務(wù)器交互。系統(tǒng)的結(jié)構(gòu)自頂向下分為視圖層、控制層、模型層、基礎(chǔ)服務(wù)層和數(shù)據(jù)層。移動客戶端的視頻推薦功能由獨立的實時視頻推薦系統(tǒng)和服務(wù)器通過Redis數(shù)據(jù)庫交互,為視頻推薦功能提供用戶的推薦列表。系統(tǒng)的架構(gòu)圖如圖1所示。

      實時視頻推薦需要經(jīng)過離線計算和在線計算兩個步驟。離線計算以用戶的歷史行為數(shù)據(jù)為注入,建立用戶興趣模型,生成離線推薦列表。由于用戶不斷有新的行為,離線推薦列表需要每天更新一次。在線計算綜合離線推薦結(jié)果和用戶的當(dāng)前行為,生成實時推薦列表。

      1.2 系統(tǒng)功能模塊設(shè)計

      1.2.1 用戶功能模塊設(shè)計

      (1) 編輯運動日志。用戶查看運動日志,可選擇添加新的運動項目或刪除已有項目。

      (2) 同步健身數(shù)據(jù)。用戶可以手動同步健身數(shù)據(jù)到服務(wù)器,防止數(shù)據(jù)丟失。

      (3) 獲取視頻推薦。客戶端將獲取視頻推薦列表的請求發(fā)送給服務(wù)器,響應(yīng)的servlet調(diào)用視頻推薦類,調(diào)取數(shù)據(jù)庫中的視頻推薦列表返回給客戶端。

      (4) 播放視頻。用戶進(jìn)入視頻主頁,查看視頻列表。選擇一個視頻后,系統(tǒng)分別加載視頻和視頻簡介等信息。

      1.2.2 后臺管理功能模塊設(shè)計

      (1) 數(shù)據(jù)更新模塊

      管理員可對運動和食物數(shù)據(jù)進(jìn)行更新。首先查看運動數(shù)據(jù),輸入要添加的運動項目。如果項目已經(jīng)存在則不能添加,需要重新輸入。

      (2) 視頻管理模塊

      視頻首頁由管理員維護(hù)的視頻列表,固定的顯示在客戶端視頻頁面的上方。管理員登陸系統(tǒng)后,查看視頻列表,可選擇添加視頻。

      1.3 數(shù)據(jù)庫設(shè)計

      1.3.1 關(guān)系數(shù)據(jù)庫設(shè)計

      移動客戶端產(chǎn)生的用戶數(shù)據(jù),如訓(xùn)練計劃、運動日志和飲食日志等存儲在Android客戶端的SQLite數(shù)據(jù)庫中。這些數(shù)據(jù)需要被用戶頻繁地查看和編輯,因此把數(shù)據(jù)存放在本地可以提高數(shù)據(jù)的加載速度,減少從網(wǎng)絡(luò)中讀取數(shù)據(jù)所耗費的時間。這些數(shù)據(jù)要定期同步至服務(wù)器端的MySQL數(shù)據(jù)庫,防止用戶信息丟失。MySQL數(shù)據(jù)庫還存有視頻、視頻評論、用戶收藏等信息。

      1.3.2 非關(guān)系數(shù)據(jù)庫設(shè)計

      (1) 用戶事件隊列。用戶每一次點擊視頻、收藏視頻的行為都會被存儲到事件隊列中。

      (2) 相似度矩陣。相似度矩陣存儲任意兩個視頻的相似度,使用hash實現(xiàn)。

      (3) 用戶評分向量。一個用戶對所有視頻的評分構(gòu)成一個[n]維向量,同樣使用hash數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。用戶ID作為鍵,視頻ID作為字段,存儲對應(yīng)的評分。

      2 推薦系統(tǒng)算法及評測方法

      2.1 基于內(nèi)容的推薦

      基于內(nèi)容的推薦只需要用戶模型和項模型,不受到項的評分信息數(shù)量少的約束,這點是協(xié)同過濾系統(tǒng)無法實現(xiàn)的。由于只關(guān)注內(nèi)容,因此不會降低新項目、冷門項目被推薦給用戶的幾率,有助于增加推薦結(jié)果的新穎度。但基于內(nèi)容的推薦系統(tǒng)只適用于可描述內(nèi)容的項推薦,不適用于視頻、聲音、圖片等特征提取困難的對象。

      2.2 協(xié)同過濾算法

      協(xié)同過濾算法中最重要的方法是基于鄰域的方法,主要包含基于用戶的協(xié)同過濾(User?based Collaborative Filtering,UserCF)和基于項的協(xié)同過濾(Item?based Collaborative Filtering,ItemCF)兩類算法。

      推薦系統(tǒng)當(dāng)中有兩類研究對象,一類是用戶(user),另一類是項(item)。用戶和某些項具有一定關(guān)系,這個關(guān)系可以被描述成一個數(shù)值。

      用戶和項可以構(gòu)成一個效用矩陣(utility matrix),矩陣中每個值代表某用戶對某個項的喜愛程度。如圖2所示的效用矩陣,代表用戶a、b、c對6部電影的評分,其中空白的部分表示用戶還沒有對電影評分。推薦系統(tǒng)的一個主要目標(biāo)就是預(yù)測空白部分的數(shù)值,把分?jǐn)?shù)最高的前[n]個項推薦給用戶。

      2.2.1 基于用戶的協(xié)同過濾

      基于用戶的協(xié)同過濾算法的工作方式是首先找到和目標(biāo)用戶的興趣相似的用戶集合,然后找到這個集合中用戶喜愛的項中目標(biāo)用戶不知曉的項推薦給該用戶。判斷兩個用戶的興趣是否相似,通過判斷用戶對相同項的行為是否相似得出。

      2.2.2 基于項的協(xié)同過濾

      基于項的協(xié)同過濾算法廣泛地應(yīng)用于各種推薦系統(tǒng)中,它基于的假設(shè)是兩個項被同樣的用戶喜愛則具有很高的相似度?;陧椀膮f(xié)同過濾主要分為兩步。計算項之間的相似度,然后根據(jù)項的相似度和用戶的行為數(shù)據(jù)生成推薦列表。

      2.3 健身視頻實時推薦系統(tǒng)算法設(shè)計

      (1) 離線算法的選擇

      基于用戶的協(xié)同過濾推薦適合用戶個性化需求不太豐富但時效性較強的場合。相反,基于項的協(xié)同過濾具有很強的發(fā)掘長尾物品的能力,適合用戶個性化需求強烈的領(lǐng)域?;陧椀膮f(xié)同過濾推薦可以解決新用戶的冷啟動問題。相比較而言,基于用戶的協(xié)同過濾要先更新用戶的行為數(shù)據(jù)。

      目標(biāo)系統(tǒng)的用戶個性化需求強烈,對新用戶的冷啟動有要求,由于對時效性沒有要求,因此可以容忍新項的冷啟動問題。本系統(tǒng)選擇基于項的協(xié)同過濾算法作為推薦系統(tǒng)的離線算法。

      (2) 實時推薦過程算法設(shè)計

      要讓實時推薦的結(jié)果反應(yīng)用戶當(dāng)前興趣,需要將用戶的點擊行為和收藏行為轉(zhuǎn)化成量化的喜愛程度。本算法用可調(diào)節(jié)參數(shù)[a]和[b]表示用戶對未評價過視頻的喜愛程度,[a]表示用戶對點擊的視頻的喜愛程度,[b]表示用戶對收藏的視頻的喜愛程度。令用戶對視頻[i]的預(yù)測興趣度為[Pui,]定義如下:

      [Pui=j∈Nus(i,j)ruj] (1)

      式中:[N(i)]表示喜歡視頻[i]的用戶集合;[N(j)]表示喜歡視頻[j]的用戶集合;[s(i,j)]的定義如式(2)所示。其中分母懲罰了熱門物品的相似度,熱門物品被大多數(shù)用戶知曉,應(yīng)該避免推薦。

      [s(i,j)=N(i)?N(j)N(i)N(j)] (2)

      令視頻的關(guān)聯(lián)矩陣為[C,]式(3)表示用戶[u]的興趣向量[P,]其中從上到下依次表示用戶[u]對視頻的興趣度。

      [P=C×V′u] (3)

      去掉用戶已評價過的視頻,得到待推薦視頻集合,集合中的元素是視頻ID和對應(yīng)的預(yù)測興趣度。取預(yù)測興趣度最高的前[k]項,生成推薦列表[R,]如式(4)所示:

      [R=(v1,s1),(v2,s2),…,(vk,sk)] (4)

      由于不同用戶的評分高低的習(xí)慣不同,[a]和[b]應(yīng)由用戶的歷史評分的平均分決定。

      用戶每產(chǎn)生一次點擊操作或收藏操作,就對用戶評分向量進(jìn)行相應(yīng)的修改,如果用戶對同一個視頻有數(shù)個操作,則取模擬評價分?jǐn)?shù)的最高值。當(dāng)用戶事件數(shù)量累計達(dá)到預(yù)先設(shè)定的閾值,系統(tǒng)使用以上算法為用戶產(chǎn)生實時推薦列表。

      2.4 推薦系統(tǒng)測評

      (1) 實驗方法

      離線實驗首先通過系統(tǒng)工具獲得用戶行為數(shù)據(jù),并按照一定的格式生成數(shù)據(jù)集。然后將數(shù)據(jù)集按照一定的比例分為訓(xùn)練集和測試集,將訓(xùn)練集算法注入到推薦系統(tǒng)中訓(xùn)練用戶興趣模型,在測試集上進(jìn)行預(yù)測。最后通過離線實驗指標(biāo)評測在測試集上生成的預(yù)測結(jié)果與實際結(jié)果。

      (2) 評測指標(biāo)

      衡量推薦質(zhì)量的指標(biāo)有很多,根據(jù)不同的實驗方式,使用不同的指標(biāo)進(jìn)行評估。離線實驗一般使用評分預(yù)測準(zhǔn)確度(RMSE)、覆蓋率、多樣性等指標(biāo)評價推薦系統(tǒng)。用戶調(diào)查和在線實驗可以獲得用戶滿意度、驚喜度等離線實驗無法獲得的指標(biāo)。

      3 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)

      3.1 移動客戶端設(shè)計與實現(xiàn)

      移動客戶端的架構(gòu)圖如圖3所示。要實現(xiàn)移動客戶端的用戶功能模塊,需要使用一些中間件作為基礎(chǔ),包括網(wǎng)絡(luò)連接模塊、網(wǎng)絡(luò)檢測模塊和圖片緩存模塊。

      (1) 網(wǎng)絡(luò)連接模塊

      首先通過Volley工具創(chuàng)建RequestQueue對象,RequestQueue是使用Volley框架的核心,通過將創(chuàng)建的請求添加到RequestQueue中,該對象就可以按照先進(jìn)先出的方式按順序分發(fā)請求。在分發(fā)請求時,首先判斷該請求是否被緩存過,如果已經(jīng)緩存在本地,則使用CacheDispatcher調(diào)用緩存的內(nèi)容返回給客戶端。如果沒有緩存,則調(diào)用NetworkDispatcher向網(wǎng)絡(luò)發(fā)送請求,Dispatcher返回后,通過調(diào)用相應(yīng)的onResponse接口,處理返回后的數(shù)據(jù)。

      (2) 網(wǎng)絡(luò)檢測模塊

      網(wǎng)絡(luò)檢測模塊還負(fù)責(zé)檢測網(wǎng)絡(luò)狀態(tài)是連接還是斷開。當(dāng)網(wǎng)絡(luò)斷開時,給用戶發(fā)送提示。在Android系統(tǒng)中,使用ConnectivityManager類對網(wǎng)絡(luò)進(jìn)行檢測。網(wǎng)絡(luò)檢測用到的主要方法如表1所示。

      (3) 圖片緩存模塊

      LRU(Least Recently Used)緩存把最近最少使用的數(shù)據(jù)移除,將系統(tǒng)內(nèi)存讓給最新讀取的數(shù)據(jù)。要想實現(xiàn)LRU存儲策略,可以使用哈希表和雙鏈表實現(xiàn)。將Cache的所有位置都用雙向鏈表連接起來。當(dāng)一個Cache被訪問之后,通過相應(yīng)的鏈表操作,將該Cache調(diào)整到鏈表表頭的位置。新加入的Cache直接插入到鏈表表頭。在進(jìn)行多次調(diào)整操作后,最近被命中的Cache就會向鏈表頭方向移動,而沒有命中的則向鏈表尾部移動。因此,鏈表尾表示的是最近最少使用的Cache。當(dāng)空間不足需要清除一部分內(nèi)容時,鏈表最后的節(jié)點就是最少被使用的數(shù)據(jù),根據(jù)需要將最后面的幾個數(shù)據(jù)清除。

      3.2 后臺管理子系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)

      (1) 視頻管理模塊

      管理員對視頻首頁進(jìn)行管理,可以增加和刪除視頻,這些視頻將顯示在移動客戶端的視頻界面。

      (2) 用戶管理模塊

      管理員刪除用戶評論的流程圖如圖4所示。首先查詢被舉報的評論是否存在,如果存在則刪除,否則終止操作。

      (3) 數(shù)據(jù)更新模塊

      管理員也可以對已有的運動和食物數(shù)據(jù)進(jìn)行修改。圖5所示為管理員更新運動數(shù)據(jù)的流程圖。

      3.3 實時推薦系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)

      (1) Storm分布式流處理框架

      在Storm集群中,有主節(jié)點和工作節(jié)點。主節(jié)點上運行著Nimbus進(jìn)程,工作節(jié)點上運行著Supervisor進(jìn)程。主節(jié)點上的Nimbus后臺程序負(fù)責(zé)資源分配和任務(wù)調(diào)度,它會盡量均勻地將任務(wù)分配給Supervisor。Supervisor負(fù)責(zé)接收Nimbus分配的任務(wù),啟動和停止屬于自己管理的進(jìn)程。Nimbus和Supervisor的通信通過Zookeeper集群完成。

      (2) 事件生成模塊

      一個事件紀(jì)錄了時間戳、Sessionid、事件類型、用戶ID和視頻ID。事件流的類型分為三類,分別為點擊事件、推薦事件和會話終止事件,分別代表用戶的點擊操作、推薦請求和會話結(jié)束狀態(tài)。

      (3) 實時視頻推薦模塊

      要實現(xiàn)實時視頻推薦,首先要計算離線推薦結(jié)果,編寫MapReduce批處理任務(wù)。離線結(jié)果和它的中間結(jié)果是實時推薦的基礎(chǔ)。得到了離線推薦結(jié)果和它的中間結(jié)果后,將這些數(shù)據(jù)存儲到Redis中。運行在Storm集群上的topology接收用戶的點擊事件流,根據(jù)用戶的點擊時間和離線推薦的計算結(jié)果生成實時推薦列表。

      (4) 推薦系統(tǒng)實驗

      本文的實時推薦系統(tǒng)實驗數(shù)據(jù)基于Youtube上的用戶評價健身視頻數(shù)據(jù)的仿真數(shù)據(jù)。在Youtube上搜索關(guān)鍵詞,取最熱門的[N]個視頻鏈接作為起點使用爬蟲工具抓取用戶對視頻的評價信息。將這些數(shù)據(jù)整理,得到8千個用戶對2千個視頻的行為。進(jìn)而可以得到用戶對視頻的評價矩陣和視頻的相似度矩陣。將評論了視頻但是沒有把視頻標(biāo)記為喜歡的用戶作為用戶的點擊數(shù)據(jù)。選擇某一個時間點的點擊數(shù)據(jù)作為實時數(shù)據(jù)。

      4 系統(tǒng)測試

      對系統(tǒng)的功能測試主要涉及健身管理模塊、視頻模塊和賬戶管理模塊的主要功能。通過測試得出,結(jié)果均通過。本系統(tǒng)使用Monkey對Android系統(tǒng)進(jìn)行壓力測試,使用命令adb shell monkey?p com.bit.fitlab?v 10對com.fitlab.manage包發(fā)送一定數(shù)量的隨機事件流,模擬用戶隨機操作,然后返回這些操作對系統(tǒng)的影響。該測試結(jié)果說明,模擬了100次操作,系統(tǒng)沒有產(chǎn)生崩潰,WiFi傳輸數(shù)據(jù)的耗時為520 ms。

      5 結(jié) 論

      本文實現(xiàn)了一款基于實時視頻推薦系統(tǒng)的Android平臺健身管理類應(yīng)用軟件,將健身視頻資源和健身管理應(yīng)用整合,便于用戶提高健身效率。提出了實時視頻推薦與健身管理結(jié)合的研究方向,系統(tǒng)的健身管理功能實現(xiàn)了對運動的時間、持續(xù)的時間、消耗的能量、項目完成的進(jìn)度、攝取食物的質(zhì)量和能量的全面管理功能,設(shè)計并實現(xiàn)了視頻實時推薦系統(tǒng),解決了新用戶推薦的冷啟動問題,并且增強了系統(tǒng)的實時性,使用戶的興趣點被實時捕捉。使用Storm分布式流處理框架實現(xiàn),系統(tǒng)的性能卓越。

      參考文獻(xiàn)

      [1] MILICEVIC A K, NANOPOULOS A, IVANOVIC M. Social tagging in recommender systems: a survey of the state?of?the?art and possible extensions [J]. Artificial intelligence review, 2010, 33(3): 187?209.

      [2] 周海平,黃湊英.兩種協(xié)同過濾推薦算法的比較研究[J].貴陽學(xué)院學(xué)報(自然科學(xué)版),2015,10(1):1?4.

      [3] SNEHA S, JAYALAKSHMI D S, SHRUTHI J, et al. Recommending music by combining content?based and collaborative filtering with user preferences [C]// Proceedings of 2012 International Conference on ICERECT. India: Springer, 2012: 507?515.

      [4] CUGOLA G, MARGARA A. Processing flows of information: from data stream to complex event processing [J]. ACM compu?ting surveys, 2012, 44(3): 359?360.

      [5] CANTADOR I, BELLOGíN R, VALLET D. Content?based re?commendation in social tagging systems [C]// Proceedings of 2010 ACM Conference on Recommender Systems. New York: ACM, 2010: 237?240.

      [6] XIA M J, ZHANG J G. Research on personalized recommendation system for e?commerce based on Web log mining and user browsing behaviors [C]// Proceedings of 2010 International Conference on Computer Application System Modeling. Zhengzhou, China: IEEE, 2010: 408?411.

      [7] 劉建國,周濤,郭強,等.個性化推薦系統(tǒng)評價方法綜述[J].復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2009,6(3):1?10.

      [8] 孟遠(yuǎn).Android網(wǎng)絡(luò)通信框架Volley的解析和比較[J].軟件,2014,35(12):66?68.

      桑日县| 汉源县| 台山市| 红安县| 乌鲁木齐县| 湘乡市| 青河县| 隆尧县| 富川| 南皮县| 霍林郭勒市| 农安县| 宁武县| 溧水县| 黄骅市| 化德县| 太原市| 行唐县| 周宁县| 织金县| 内乡县| 天台县| 开鲁县| 五寨县| 分宜县| 嫩江县| 九龙城区| 贵定县| 湘潭市| 屏东县| 潮安县| 赣榆县| 垫江县| 吉林市| 长垣县| 汾阳市| 贵溪市| 栾城县| 江孜县| 新绛县| 临武县|