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