吳明禮++楊雙亮
摘要:隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,人們也面臨著信息過載的問題日益嚴(yán)重,大數(shù)據(jù)場景下的精準(zhǔn)推送服務(wù)也面臨著巨大的困難。為解決推送服務(wù)的準(zhǔn)確度、大數(shù)據(jù)量,該文通過分析移動用戶的行為數(shù)據(jù),并利用spark集群的并行計算能力,快速處理大量的移動行為數(shù)據(jù),并結(jié)合時間和空間兩個維度,對用戶精細(xì)化畫像,了解什么樣的人在什么時間,什么地點喜歡做什么事,從而為其提供更為精準(zhǔn)的推送服務(wù)。
關(guān)鍵詞:移動互聯(lián)網(wǎng);用戶畫像;Spark;推送服務(wù)
中圖法分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)32-0255-05
1 背景
隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,移動互聯(lián)用戶的數(shù)量得到迅速的增長。據(jù)2016年互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)最新研究報告顯示:2016年全球互聯(lián)網(wǎng)用戶數(shù)將達(dá)到32億,約占總?cè)丝诘?4%,其中移動互聯(lián)用戶總數(shù)將達(dá)到20億。另一方面,網(wǎng)絡(luò)信息量爆炸式增長,據(jù)互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)預(yù)測,到2020年全球數(shù)據(jù)量將達(dá)到35ZB,其中移動終端用戶就是全球海量數(shù)據(jù)的貢獻者之一。那么面對如此龐大的移動用戶群體,以及如此大數(shù)據(jù)信息量,如何從中快速、準(zhǔn)確、有效地分析出移動用戶的行為偏好,并為用戶精準(zhǔn)的推送服務(wù),成為當(dāng)前移動互聯(lián)網(wǎng)研究的熱點和重點。
目前,Nor Aniza Noor Amran, Norliza Zaini, Mustaffa Samad等人為解決用戶進入商場購買商品需要一個一個了解商品成分而耗費時間的問題,提出了一個基于Android程序的用畫像,用于產(chǎn)品推薦[1]。胡仲剛與王敏娟闡述了移動互聯(lián)網(wǎng)用戶行為信息挖掘流程以及關(guān)鍵技術(shù)并研究了個性化推薦、精準(zhǔn)業(yè)務(wù)營銷、定向廣告投放和業(yè)務(wù)能力的開放等四個方面[2]。蔣宗禮與張婷通過對用戶行為進行分析,提取出用戶的行為特征值,并運用支持向量機SVM將其融入本地的搜索算法,對排序算法優(yōu)化。結(jié)果表明,改進的算法可以更容易、更準(zhǔn)確地反映出用戶的興趣[3]。梁琛、王忠民等人通過移動搜索終端的用戶行文,分析了移動用戶使用移動搜索的行為習(xí)慣,并提出了合理性建議[4]。趙之健對移動用戶行為分析模型構(gòu)建的意義進行了闡述,并對行為分析模型構(gòu)建的具體內(nèi)容(分析數(shù)據(jù)、分析方法、分析內(nèi)容以及分析結(jié)果)進行了深入的探討[5]。
綜合對當(dāng)前的理論研究發(fā)現(xiàn),當(dāng)前針對移動互聯(lián)網(wǎng)用戶的研究,更多的是基于移動搜索的單一的維度進行分析和研究的,而且不夠精細(xì)化,無法更加精細(xì)的畫出用戶使用手機的行為特征。本文試圖在對用戶多維度綜合分析的基礎(chǔ)上,采用spark的并行化計算,更快更細(xì)致的為用戶畫像,得出用戶的較為準(zhǔn)確的行為偏好,從而為用戶提供更好的推送服務(wù)。
2 相關(guān)工作
2.1 用戶畫像
在任何一個個性化推薦系統(tǒng)中,用戶畫像都是其中必不可少的一部分[6]。用戶畫像可以認(rèn)為是用戶所有行為活動的共同的表現(xiàn)特征。根據(jù)在用戶畫像過程中,活躍用戶的參與程度以及捕獲用戶興趣的特點,用戶畫像策略被廣泛分為以下幾種。
1)顯示與隱示畫像
畫像的策略是根據(jù)用戶的反饋信息以及一些排名的信息,這樣的畫像稱之為顯示畫像。這方畫像技術(shù)的質(zhì)量與用戶所提供的信息的質(zhì)量以及數(shù)量高度相關(guān)。如果擁有清晰及時的反饋信息,那么系統(tǒng)就能及時的更新畫像。然而現(xiàn)實是反饋信息在一定程度上是模糊的、不完備的,從而導(dǎo)致其需要額外的手工操作,也致使其在推薦應(yīng)用中缺乏有效性。
為了克服這種問題,研究者開始關(guān)注自動學(xué)習(xí)用戶畫像的過程,在畫像的過程需要用戶有較少的參與程度,但其與用戶的活動歷史記錄高度相關(guān),這些活動記錄都是由系統(tǒng)隱示的捕獲所得到的,具有用戶相對較少的參與度和較快的處理過程。因此隱示畫像占據(jù)著重要的地位,但是其對各種各樣用戶的興趣缺乏及時的適應(yīng)性,因而也有一定的局限性。
2)靜態(tài)與動態(tài)畫像
顯示畫像技術(shù)又可進一步分為靜態(tài)技術(shù)和動態(tài)技術(shù)[7]。靜態(tài)畫像技術(shù)多用于門戶網(wǎng)站,它主要依賴于用戶的一些靜態(tài)信息,包含注冊信息、反饋信息等等,在這種畫像方法中,偏好權(quán)重都是固定的,一旦用戶畫像被創(chuàng)建,就難于修改?,F(xiàn)實是用戶的興趣偏好是隨著時間、地點、語境不斷變化的。因而這種畫像技術(shù)是效率低下的。
動態(tài)畫像技術(shù)克服了這種只依賴與用戶靜態(tài)信息的問題,它需要收集用戶的動態(tài)信息,包含用戶的日常搜索記錄、瀏覽記錄、點擊記錄等等一些動態(tài)的信息。動畫畫像的過程包含了各種各樣用戶的興趣的偏好,他能夠及時的模擬真實用戶的興趣偏好。貝葉斯分類技術(shù)、神經(jīng)網(wǎng)絡(luò)算法、遺傳算法等學(xué)習(xí)技術(shù)常被用來矯正畫像模型。
3)基于文檔與基于概念畫像
隱示畫像又可分為基于文檔的和基于概念形式的?;谖臋n的方式是運用內(nèi)容分析技術(shù),挖掘用戶的文檔偏好,學(xué)習(xí)和模擬用戶的瀏覽活動,常用的SVM向量權(quán)重模型?;诟拍畹姆绞絼t是通過捕獲用戶的瀏覽活動和點擊活動等數(shù)據(jù),分析出用戶話題偏好。
2.2 Spark的技術(shù)特點
當(dāng)涉及大量數(shù)據(jù)計算時,如果還用單機進行計算的話,不但耗費時間,而且不一定能去的很好的效果,有時可能不能滿足實際的需求。
Spark[8]是源于美國加州大學(xué)伯克利分銷AMPLab的計算平臺。它是一種基于基于內(nèi)存計算的可擴展的開源集群計框架。針對MapReduce的不足,即大量的網(wǎng)絡(luò)傳輸和磁盤I/O使得效率低下,Spark使用內(nèi)存進行計算以便快速處理查詢,實時返回分析結(jié)果。Spark提供比Hadoop更高層的API,同樣的算法在Spark中的運行速度比Hadoop快10倍~100倍[9],其核心技術(shù)就是彈性分布式數(shù)據(jù)集,它擁有Hadoop MapReduce所具有的優(yōu)點,但不同于MapReduce的是Job中的中間結(jié)果是保存在內(nèi)存中的[10],啟用了內(nèi)存分布式數(shù)據(jù)集,從而不必要讀寫HDFS,速度更快,延遲更低。再者其組件Spark-sql汲取了Shark的一些優(yōu)點,如內(nèi)存存儲列,并且具有hive的兼容性,因此能夠從關(guān)系型數(shù)據(jù)庫中直接讀取數(shù)據(jù)到內(nèi)存,而且速度更快。
2.3 系統(tǒng)架構(gòu)
圖1 系統(tǒng)架構(gòu)
推薦系統(tǒng)層:推薦系統(tǒng)層主要是對推薦算法的實現(xiàn),涉及推薦的具體過程,包括數(shù)據(jù)預(yù)處理、構(gòu)建用戶上下文信息,根據(jù)歷史數(shù)據(jù)計算用戶偏好權(quán)重計算以及生成推薦結(jié)果。推薦系統(tǒng)層通過調(diào)用Spark 層的Spark Context 對象實現(xiàn)數(shù)據(jù)分布式并行計算和處理。
數(shù)據(jù)計算層:數(shù)據(jù)計算層利用大數(shù)據(jù)處理平臺Spark 實現(xiàn)對數(shù)據(jù)的高速檢索和計算,其中利用Spark SQL 讀取原始文件,并建立內(nèi)存表,通過SQL 語句查詢出合適的數(shù)據(jù)存儲在數(shù)據(jù)存儲層,同時利用Spark 的內(nèi)存計算原理,實現(xiàn)對數(shù)據(jù)的高速計算,提高整個推薦過程的響應(yīng)速度。
數(shù)據(jù)存儲層:數(shù)據(jù)存儲層利用Hadoop提供的分布式文件系統(tǒng)HDFS,實現(xiàn)對數(shù)據(jù)的分布式存儲,并利用HDFS 特性,提高數(shù)據(jù)的讀取速度和寫入速度,再者將spark計算出來的畫像結(jié)果,通過Spark SQL連接MySql數(shù)據(jù)庫,存儲到數(shù)據(jù)庫中,供前臺界面的展示。
3 動態(tài)用戶畫像
3.1 源數(shù)據(jù)
數(shù)據(jù)來源于從移動端用戶收集到的信息,包含用戶基本的注冊信息,如性別、年齡等靜態(tài)信息,還有移動用戶的一些隱示信息,如用戶使用手機的瀏覽信息、點擊的URL信息、使用手機的時間點、時長、頻次信息、用戶的位置信息、用戶經(jīng)常使用的APP信息等動態(tài)信息。用戶的這些靜態(tài)信息和動態(tài)信息,都能反映出用戶在某些特定情景下的愛好。
3.2 標(biāo)簽庫
標(biāo)簽是聯(lián)系用戶與物品、內(nèi)容以及物品、內(nèi)容之間的紐帶,也是反映用戶興趣的重要數(shù)據(jù)源。標(biāo)簽庫則是對標(biāo)簽進行聚合的系統(tǒng),包含對標(biāo)簽的管理、更細(xì)等,其最終用途在于對用戶進行行為、屬性標(biāo)記。一般來說,標(biāo)簽都是以層級的形式組織的,可以有一級維度、二級維度等。其主要來源有已有內(nèi)容的標(biāo)簽、網(wǎng)絡(luò)抓取流行標(biāo)簽、對運營內(nèi)容進行關(guān)鍵詞的提取。
3.3 情景信息
用戶的信息影響著用戶自身標(biāo)簽的形成,也影響這用戶在特定情景下用戶的意圖,尤其移動端用戶,因為用戶可以隨時隨地的使用移動終端來搜索自己需要的內(nèi)容。相應(yīng)移動終端用戶的因素可能會有很多,如位置、時間、天氣等等因素,而在這些因素中,時間、位置是最為重要的因素,因此本文在情景信息主要考慮時間、位置這兩個因素。
首先本文根據(jù)人的日常行為規(guī)律,將每天二十四小時分成不同的時間段(T來代表),如下表所示:而對于用戶活動的所有地區(qū),可以將其分為不同區(qū)域(L代表),這樣不同的區(qū)域不同的時間段代表著不同的情景。
表1 時間段劃分
[時間段\&名稱\&00:00--05:59\&[T1]\&06:00--06:59\&[T2]\&07:00--08:59\&[T3]\&09:00--11:59\&[T4]\&12:00--12:59\&[T5]\&13:00--17:59\&[T6]\&18:00--19:59\&[T7]\&20:00--23:59\&[T8]\&]
約定1:情景信息Context用C代表,C={T,P},代表用戶的一個情景,其中T代表預(yù)先約定好的時間段,P代表用戶所在區(qū)域。不同的T,或者不同的P,都代表著不同的情景。那么U={[C1],[C2],…,[Cn]}代表著用戶的N個不同的情景信息。
約定2:用戶的情景偏好:UCP={U,C,P,W},其中U代表著具體的用戶,C代表情景,P代表某一特定領(lǐng)域本體中的標(biāo)簽,W代表用戶U在C情景下,對于P標(biāo)簽的偏好的權(quán)重大小,該值是通過該用戶的歷史數(shù)據(jù)進行計算出來的。
約定3:用戶的時間偏好:UTP={U,T,P,W},其中U代表具體的用戶,T代表劃分好的時間段,P代表某一特定領(lǐng)域本體中的標(biāo)簽,W代表用戶U在T時間段內(nèi)對于標(biāo)簽P的偏好程度W,該值也是通過用戶的歷史數(shù)據(jù)計算出來的。
3.4 用戶特征化
用戶特征化即為用戶打標(biāo)簽。通過用戶的行為數(shù)據(jù)和一定的模型算法得到用戶的每個標(biāo)簽的權(quán)重。用戶對內(nèi)容的行為:點擊、不感興趣、瀏覽等,對內(nèi)容發(fā)生的行為可以認(rèn)為對此內(nèi)容所帶標(biāo)簽的行為。
本文是基于移動用戶的歷史數(shù)據(jù),來計算用戶對于某一本體領(lǐng)域特定標(biāo)簽的偏好程度即權(quán)重,用來區(qū)分不同的標(biāo)簽對于該用戶的重要程度。當(dāng)然用戶的興趣并不是一成不變的,隨著時間的變化,用戶的興趣會發(fā)生轉(zhuǎn)移,時間越久遠(yuǎn),標(biāo)簽的權(quán)重應(yīng)該相應(yīng)的下降,距離當(dāng)前時間越近的興趣標(biāo)簽應(yīng)該得到適當(dāng)?shù)耐怀?。處于這樣的考慮,一般會在標(biāo)簽權(quán)重值的計算上疊加一個時間衰減函數(shù),這樣計算出來的標(biāo)簽,更能及時地反映用戶的興趣。因此本文引入了艾賓浩斯曲線,來模擬相應(yīng)的衰減函數(shù)。艾賓浩斯曲線描述了人類大腦對新事物的遺忘規(guī)律,其更符合人類興趣的遺忘情況。
本文采用函數(shù):
[S(t)=1-a1+v1*t+a1+v2*t]
來模擬艾賓浩斯曲線,其中a代表長時間記憶在記憶中所占的比例,v1表示短時記憶遺忘率,v2表示長時遺忘率。通過實驗與艾式曲線擬合,得到a=0.25,v1=0.42,v2=0.0003。在這種情況下,該函數(shù)能夠與艾賓浩斯曲線擬合得很好。
圖2 情景權(quán)重計算流程
用戶對于某一特定領(lǐng)域的本體中,特定標(biāo)簽權(quán)重的計算采用如下的公式進行計算。
[Weightci=j=1m(Slide_numcidj*w1+Click_numcidj*w2i=1nSlide_numcidj*w2+Click_numcidj*w2*s(dcurrent-dj))1m*]
其中[Slide_numcidj],[Click_numcidj]為[ci]標(biāo)簽第[dj]天的用戶瀏覽的次數(shù),點擊的次數(shù)。[w1]、[w2]分別代表用戶瀏覽行為、與點擊行為所占權(quán)重,當(dāng)然用戶點擊進去的權(quán)重要比瀏覽的權(quán)重要大一些,即[w1≤w2]。[dcurrent]為計算時的日期,[dj]為記錄時的日期,m為總的天數(shù)。
按照以上的權(quán)重計算公式,來計算各個用戶在各種情景下的偏好并將計算的結(jié)果存儲在MySql數(shù)據(jù)庫中,其計算流程如上。
按照劃分好的時間段,以及用戶的歷史數(shù)據(jù),來計算用戶在各個時間段的偏好權(quán)重,并將計算的結(jié)果存儲到數(shù)據(jù)庫中,其時間偏好計算流程:
4 實驗結(jié)果與分析
4.1 根據(jù)時間偏好得出的畫像結(jié)果
上圖為某一用戶在[T8]時間段內(nèi),用戶的在對各個標(biāo)簽偏好,又上圖可知該用戶在晚間八點到十二點之間,比較喜歡看電視劇、手機數(shù)碼類的網(wǎng)頁,當(dāng)然其它標(biāo)簽的也有所涉獵,不過所占比重較小。
4.2 根據(jù)情景偏好得出的畫像結(jié)果
如上圖所示,為用戶在特定情景下的用戶偏好及其所占的比重。118代表著特定的情景id,在本文中對應(yīng)著用戶在特定的位置區(qū)域,晚間八點到十二點的偏好標(biāo)簽有哪些?以及所占的相應(yīng)的權(quán)重比,標(biāo)簽對應(yīng)的權(quán)重比越大,代表該標(biāo)簽在該情景下對用戶越重要。
5 推送流程
以上獲得用戶在特定情景下所具有的標(biāo)簽及權(quán)重,這只是開始,重要的是你要基于相應(yīng)的情景觸發(fā)相應(yīng)推送服務(wù),以產(chǎn)生真正的效果。觸發(fā)的方式可以是位置、動作、時間、環(huán)境屬性等,這里最重要的當(dāng)然屬于位置和時間了,因此,本文基于位置和時間的兩個維度的變化來觸發(fā)相應(yīng)的推送服務(wù),相應(yīng)的推送服務(wù)又能產(chǎn)生新的數(shù)據(jù),從而形成數(shù)據(jù)的閉環(huán)。下圖為本文采用的推送流程:
首先獲取當(dāng)前用戶所在情景區(qū)域,然后從情景庫中搜索用戶的興趣,其中用戶在特定情景下,或者特定時間段的偏好可能有多個標(biāo)簽,而每個標(biāo)簽又占有不同的權(quán)重,本文采用離散的區(qū)間算法,使得占有權(quán)重的較大的標(biāo)簽被選中的概率更大。其算法流程如下:
圖7 選取算法
從內(nèi)容庫中獲得具有該標(biāo)簽的所有序列,形成推薦列表,對于網(wǎng)頁形式的推薦,可以將其全部或者很多的顯示的界面上,但是對于移動端則無法全部顯示的移動終端上,因此本文采用的是加權(quán)輪詢算法,選取相應(yīng)的一組序列推送給用戶。
6 結(jié)束語
本文利用Spark的并行計算能力,能夠加快處理大量數(shù)據(jù)計算的速度,并結(jié)合時間和空間兩個維度,對用戶精細(xì)化畫像,從而得到用戶在特定情景下的興趣愛好,并能夠針對移動終端用戶情景的變化自動觸發(fā)相應(yīng)的推送的任務(wù)。
參考文獻:
[1] Nor Aniza Noor Amran, Norliza Zaini, Mustaffa Samad.User Profile based Product Recommendation on AndroidPlatform[C]. IEEE, 2014.
[2] 胡仲剛, 蔣敏娟. 基于客戶移動互聯(lián)網(wǎng)行為的信息價值挖掘應(yīng)用[J]. 現(xiàn)代電信科技, 2013, 2(1-2): 86-89.
[3] 蔣宗禮, 張婷. 基于用戶行為分析的本地搜索排序算法優(yōu)化[J]. 計算機技術(shù)與發(fā)展, 2014, 24(2): 15-18.
[4] 梁琛, 王忠民, 范琳. 移動搜索終端用戶行為調(diào)查研究[J]. 西安郵電大學(xué)學(xué)報, 2014(3).
[5] 趙之健. 構(gòu)建移動用戶行為分析模型[J]. 中國科技信息, 2014(1): 100-101.
[6] Leung K,Lee D.Deriving Concept-Based User Profiles Fro Search Engine Logs[J]. IEEE Trans. Knowledge And Data Engg., 2010, 22(7).
[7] Poo D,, Chng B, Goh J. A hybrid approach for user profiling[C].Proceedings of 36th International Conference on System Sciences,2003.
[8] Zaharia M, Chowdhury M, Franklin M,et al. Spark: Cluster computing with working sets[C]. HotCloud 2010, 2010.
[9] 程學(xué)旗, 靳小龍, 王元卓, 等. 大數(shù)據(jù)系統(tǒng)和分析技術(shù)綜述[J]. 軟件學(xué)報, 2014, 25(9): 1889-1908.
[10] 陳斌, 李淑琴, 曾星宇, 等. 基于spark的系統(tǒng)過濾系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊, 2015(1).