張振海,張湘婷
蘭州交通大學(xué) 自動(dòng)化與電氣工程學(xué)院,蘭州730070
隨著移動(dòng)互聯(lián)網(wǎng)和5G技術(shù)的發(fā)展,通過(guò)移動(dòng)終端或手機(jī)為旅客提供便捷的信息服務(wù)是“智慧鐵路”研究的重點(diǎn)領(lǐng)域之一[1-2]。為了響應(yīng)“互聯(lián)網(wǎng)+”的國(guó)家號(hào)召,高鐵站在12306的售票系統(tǒng)基礎(chǔ)上增加了一系列與旅客出行相關(guān)的拓展服務(wù)如酒店預(yù)訂、美食團(tuán)購(gòu)、旅游簡(jiǎn)介等,其目的是提升旅客服務(wù)質(zhì)量的同時(shí)使鐵路運(yùn)營(yíng)效益達(dá)到最大化。在高鐵站,旅客獲取的移動(dòng)信息服務(wù)主要采用以業(yè)務(wù)為中心的靜態(tài)服務(wù)組合方法,以業(yè)務(wù)流程模型構(gòu)建為基礎(chǔ)實(shí)現(xiàn)服務(wù)間的交互與協(xié)作。該方式雖然描述了服務(wù)之間的控制和數(shù)據(jù)依賴關(guān)系,但未充分對(duì)用戶訪問(wèn)的大數(shù)據(jù)進(jìn)行挖掘,以用戶為中心服務(wù)功能未能充分體現(xiàn),過(guò)多冗余的應(yīng)用服務(wù)必然會(huì)降低用戶的使用效率,導(dǎo)致用戶體驗(yàn)性較差。因此,需要以用戶為中心研究,通過(guò)對(duì)用戶上下文信息的分析與挖掘,發(fā)現(xiàn)用戶的操作行為之間蘊(yùn)含的關(guān)聯(lián)關(guān)系,研究更加智能的服務(wù)推薦方法,提高高鐵信息服務(wù)質(zhì)量。
目前,眾多國(guó)內(nèi)外學(xué)者在服務(wù)推薦方面展開(kāi)研究,從多個(gè)角度提出了數(shù)據(jù)挖掘的模型與方法,傳統(tǒng)推薦算法如協(xié)同過(guò)濾、基于內(nèi)容的推薦、混合推薦等。如文獻(xiàn)[3]根據(jù)用戶對(duì)學(xué)習(xí)資源的個(gè)性化需求,提出基于內(nèi)容過(guò)濾的推薦方法。文獻(xiàn)[4]對(duì)用戶進(jìn)行聚類,建立推薦服務(wù)庫(kù),從而實(shí)現(xiàn)服務(wù)推薦。文獻(xiàn)[5]利用關(guān)聯(lián)規(guī)則考慮用戶需求設(shè)計(jì)智能旅游景點(diǎn)推薦系統(tǒng)。上述方法是“用戶-項(xiàng)目”之間關(guān)聯(lián)關(guān)系占據(jù)推薦重要位置,但隨著移動(dòng)應(yīng)用的興起,用戶周邊環(huán)境也開(kāi)始影響用戶服務(wù)選擇,針對(duì)此問(wèn)題,一些學(xué)者將“移動(dòng)用戶-移動(dòng)應(yīng)用-上下文”關(guān)聯(lián)關(guān)系引入推薦系統(tǒng)中。文獻(xiàn)[6]利用用戶所在位置,挖掘出此位置頻繁使用的服務(wù)功能推薦給用戶,該方法只考慮一種上下文的推薦,會(huì)導(dǎo)致數(shù)據(jù)稀疏,從而推薦精度不高。文獻(xiàn)[7]設(shè)計(jì)一種融合上下文信息與社交網(wǎng)絡(luò)信息的個(gè)性化推薦系統(tǒng),通過(guò)隨機(jī)決策建立原始用戶-商品評(píng)分矩陣對(duì)上下文信息處理,最后采用矩陣因式分解進(jìn)行預(yù)測(cè),但此方法未考慮上下文與用戶行為之間的關(guān)系。相似的,文獻(xiàn)[8]提出一種基于上下文感知的個(gè)性化度量嵌入推薦算法,考慮上下文情景信息,進(jìn)一步研究了上下文與用戶操作行為之間存在規(guī)律信息。文獻(xiàn)[9]提出一種基于用戶聚類和移動(dòng)上下文的矩陣分解推薦算法,采用kmeans對(duì)用戶聚類找到相似用戶簇。關(guān)于高鐵信息服務(wù)方面,文獻(xiàn)[2]分析推薦系統(tǒng)在鐵路延伸服務(wù)中的應(yīng)用前景,證明向用戶即時(shí)推薦所需服務(wù)或產(chǎn)品,在發(fā)揮鐵路資源優(yōu)勢(shì)的同時(shí)提升用戶滿意度。文獻(xiàn)[10]提出基于云模型相似性度量的協(xié)同過(guò)濾推薦算法應(yīng)用在旅客服務(wù)推薦中,使用云模型表示項(xiàng)目評(píng)分和用戶評(píng)分,衡量用戶-用戶、項(xiàng)目-項(xiàng)目之間的相似度,從而對(duì)未知用戶進(jìn)行評(píng)分,但只對(duì)MovieLens數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)沒(méi)有實(shí)際結(jié)合鐵路客運(yùn)情況。對(duì)于高效的高鐵移動(dòng)信息服務(wù),旅客當(dāng)前的應(yīng)用場(chǎng)景對(duì)服務(wù)功能的選擇影響較大,因此如何對(duì)上下文信息預(yù)處理和挖掘上下文信息與服務(wù)間的規(guī)則考慮為高鐵站旅客量身定做一個(gè)專屬的服務(wù)集合是十分重要的[11-12]。
為此,本文分析當(dāng)前高鐵站旅客出行需求,結(jié)合高鐵運(yùn)輸特點(diǎn)構(gòu)造上下文模型,采用改進(jìn)FP-Growth算法,賦予不同類型上下文項(xiàng)單獨(dú)最小支持度,以上下文項(xiàng)與服務(wù)間的關(guān)聯(lián)規(guī)則作為匹配依據(jù),對(duì)獲取當(dāng)前上下文信息進(jìn)行相似度計(jì)算,最終精準(zhǔn)定位旅客需求,為多樣化、個(gè)性化的客運(yùn)服務(wù)奠定基礎(chǔ)。
上下文是表述實(shí)體狀態(tài)特征的所有信息,例如地點(diǎn)、天氣、時(shí)間等[13-14]。上下文的感知是將上下文的變化融入到模型中向用戶推送信息或服務(wù),協(xié)助完成具體的任務(wù)。基于上下文感知的服務(wù)推薦方法是利用上下文信息作為服務(wù)推薦主要依據(jù),建立上下文與服務(wù)功能之間的關(guān)系,獲得符合當(dāng)前應(yīng)用場(chǎng)景下的服務(wù)集合并且動(dòng)態(tài)加載到用戶界面中,如圖1所示。
圖1 上下文感知的服務(wù)推薦方法
在基于上下文感知的高鐵信息服務(wù)推薦模型中,由用戶基本信息、第三方提供的信息和移動(dòng)設(shè)備感知信息所構(gòu)成的上下文信息庫(kù)以及高鐵站內(nèi)、站外的延伸服務(wù)構(gòu)成的服務(wù)信息庫(kù)是作為推薦主要依據(jù),根據(jù)顯式信息與隱式信息對(duì)用戶信息服務(wù)進(jìn)行建模[15]。用戶使用系統(tǒng)時(shí),服務(wù)系統(tǒng)自動(dòng)獲取當(dāng)前上下文,通過(guò)對(duì)應(yīng)推薦算法進(jìn)行服務(wù)匹配,構(gòu)造個(gè)性化服務(wù)推薦集合,最終發(fā)布到移動(dòng)客戶端,具體框架如圖2所示。本文采用改進(jìn)FP-Growth推薦算法挖掘上下文與服務(wù)之間的關(guān)聯(lián)規(guī)則,對(duì)有價(jià)值的用戶歷史記錄信息進(jìn)行統(tǒng)計(jì)與分析,通過(guò)用戶行為預(yù)測(cè)實(shí)現(xiàn)信息服務(wù)的精準(zhǔn)推薦。
圖2 基于上下文的高鐵推薦模型框架
(1)相關(guān)概念
關(guān)聯(lián)分析是發(fā)現(xiàn)隱含于大數(shù)據(jù)中具有實(shí)際意義的規(guī)律信息,這些規(guī)律可描述為關(guān)聯(lián)規(guī)則或是頻繁項(xiàng)集[16]。假設(shè)I={I1,I2,…,I m}為項(xiàng)的集合,同時(shí)在事務(wù)數(shù)據(jù)庫(kù)D中每一條事務(wù)T均為I的非空子集,即T?I,而且每一條事務(wù)T獨(dú)有與之對(duì)應(yīng)的標(biāo)識(shí)符TID(Transaction ID)。
定義1(項(xiàng)集)項(xiàng)的集合,包含k個(gè)項(xiàng)的項(xiàng)集稱為k項(xiàng)集。
定義2(支持度)在數(shù)據(jù)挖掘的關(guān)聯(lián)分析中,支持度是所有事務(wù)T中同時(shí)出現(xiàn)A項(xiàng)(或項(xiàng)集)的概率,計(jì)算公式如下:
支持度也可表示為A項(xiàng)(或項(xiàng)集)在數(shù)據(jù)庫(kù)D中出現(xiàn)的頻數(shù),稱為支持度計(jì)數(shù)。設(shè)置最小支持度min_sup,若sup(A)≥min_sup,稱項(xiàng)集A是頻繁項(xiàng)集[16]。
定義3(關(guān)聯(lián)規(guī)則)是蘊(yùn)含關(guān)聯(lián)的規(guī)則,形如X→Y,其中X為前件(antecedent),為Y后件(consequent)。
(2)算法描述
①遍歷事務(wù)數(shù)據(jù)庫(kù)D,計(jì)算每項(xiàng)支持度并過(guò)濾不符合的項(xiàng),獲得頻繁1項(xiàng)集L,按照支持度大小降序排列得到有序頻繁1項(xiàng)集P,然后對(duì)事務(wù)數(shù)據(jù)庫(kù)D重新調(diào)整。
②創(chuàng)建根節(jié)點(diǎn)root和頻繁項(xiàng)目頭表,再一次遍歷事務(wù)數(shù)據(jù)庫(kù)D,將依據(jù)P的排序?qū)γ織l事務(wù)進(jìn)行處理,掃描每條事務(wù)開(kāi)始建立分支生成FP-tree。
③根據(jù)FP-tree樹(shù)找到單項(xiàng)的條件模式基,遞歸挖掘條件FP-tree,最終依據(jù)頻繁項(xiàng)集從中得出關(guān)聯(lián)規(guī)則。
為滿足當(dāng)前實(shí)際應(yīng)用場(chǎng)景,以UML關(guān)系圖為基礎(chǔ)建立高鐵移動(dòng)應(yīng)用上下文模型結(jié)構(gòu),如圖3所示。該模型說(shuō)明各元素之間的關(guān)系,分為時(shí)間、空間、用戶和應(yīng)用四類,其中ISO 8601和UTC為當(dāng)前日期和時(shí)間。
圖3 高鐵移動(dòng)服務(wù)應(yīng)用的上下文模型
為更規(guī)范表達(dá)的例子事務(wù),本文定義數(shù)據(jù)操作符,如表1所示,根據(jù)此操作符列出事務(wù)示例,如表2所示。其中,T.c,T.d和T.l分別表示當(dāng)前時(shí)間、發(fā)車時(shí)間和剩余時(shí)間,該信息可從用戶訪問(wèn)移動(dòng)應(yīng)用獲??;L.d分別表示用戶所在地A與目標(biāo)位置B的距離,該數(shù)據(jù)可從手機(jī)GPS定位中獲??;L.w代表當(dāng)前天氣情況,可通過(guò)手機(jī)自帶軟件獲??;U.a、U.g、U.p、U.i分別表示用戶的年齡、性別、職業(yè)以及興趣愛(ài)好,可從用戶基本信息中獲?。粯I(yè)務(wù)狀態(tài)B.s可由應(yīng)用軟件與用戶進(jìn)行交互獲取[17]。
傳統(tǒng)FP-Growth算法只針對(duì)一維數(shù)據(jù)項(xiàng)設(shè)置單一支持度,進(jìn)行規(guī)則提取實(shí)現(xiàn)推薦。對(duì)實(shí)際應(yīng)用而言,每個(gè)上下文項(xiàng)都是屬性和數(shù)值組成的鍵值對(duì),如果設(shè)置單一最小支持度會(huì)造成關(guān)鍵上下文項(xiàng)丟失,例如U.g只有male和female兩種選擇,而T.c分為六個(gè)時(shí)間段,因此兩類上下文項(xiàng)中的值出現(xiàn)概率不同,前者遠(yuǎn)大于后者。因此,根據(jù)每類上下文項(xiàng)出現(xiàn)概率分別設(shè)置最小支持度(服務(wù)功能項(xiàng)最小支持度設(shè)為0,排在最后),即多最小支持度Min_sup={MinSup1,MinSup2,…,MinSup n}。若項(xiàng)A的支持度Sup(A)≥Min_sup A,則A為二維頻繁項(xiàng)集?;舅枷胧牵涸谑聞?wù)數(shù)據(jù)庫(kù)D中,設(shè)置多最小支持度Min_sup確定有序二維頻繁1項(xiàng)集L,根據(jù)L對(duì)每條事務(wù)重新調(diào)整建立分支,構(gòu)建FP-tree。
表1 數(shù)據(jù)操作符
表2 事務(wù)示例
具體算法描述如下所示:
輸入:事務(wù)數(shù)據(jù)庫(kù)D;
最小支持度Min_sup
Min_sup={MinSup1,MinSup2,…,MinSup n};
輸出:FP-tree;
遍歷事務(wù)數(shù)據(jù)庫(kù)D,計(jì)算每一個(gè)項(xiàng)的支持度計(jì)數(shù)并與Min_sup比較,獲得二維頻繁1項(xiàng)集L,依照最小支持度的值降序排序得到有序二維頻繁1項(xiàng)列表L′。
創(chuàng)建一個(gè)FP-tree的根節(jié)點(diǎn),記為Null;
for事務(wù)中每條事務(wù)Tdo按照L′的順序調(diào)整次序;
將每條經(jīng)過(guò)排序得到二維頻繁項(xiàng)集合[p|P],其中p為首個(gè)元素,P為剩余元素集合;
調(diào)用函數(shù)insert_tree([p|P],T),創(chuàng)建FP-tree;
end for
inser t_tree([p|P],root)
ifiis kind ofNandN.item-name=p.
item-name//i是已有分支的一項(xiàng)
N.count++;
else
創(chuàng)建新節(jié)點(diǎn)N;
N.count=1;
p.parent=r oot;
將此節(jié)點(diǎn)加入到項(xiàng)表頭相同item-name節(jié)點(diǎn)上;
end if
insert(i,node);
上下文信息獲得途徑有手機(jī)內(nèi)置傳感器、用戶注冊(cè)信息或者系統(tǒng)軟件本身等。上下文信息分為:離散型上下文信息(職業(yè)、天氣等);連續(xù)型上下文信息(年齡、剩余時(shí)間等)[18]。假設(shè)系統(tǒng)內(nèi)有F種類型的上下文信息,記,即歷史記錄中用戶u x在使用服務(wù)S y時(shí)全部上下文信息,其中為第k種類型的上下文。記Ccurrent=是目標(biāo)用戶U c在使用當(dāng)前系統(tǒng)時(shí)的所有上下文信息,其中為第k種類型的上下文,計(jì)算相似度公式如下:
如果第k種類型的上下文信息是屬于離散型,則分為相關(guān)性和非相關(guān)性。當(dāng)上下文信息具有相關(guān)性,計(jì)算公式如下:
數(shù)據(jù)預(yù)處理中天氣可分成晴天、陰天、霧天、雨天和雪天五種,設(shè)置等級(jí)為1~5,如simk(晴天,陰天)=1-simk(晴天,雪天)simk(晴天,陰天)>simk(晴天,雪天),晴天與陰天相似度更高。
當(dāng)離散型上下文信息值具有無(wú)相關(guān)性,計(jì)算式如下:
在數(shù)據(jù)預(yù)處理中對(duì)旅客職業(yè)按照國(guó)家職業(yè)分類大全分成8類,這些職業(yè)之間并沒(méi)有相關(guān)性,例如技術(shù)性職業(yè)與商業(yè)性職業(yè)相似度就為0。
如果第k種類型上下文信息是連續(xù)型數(shù)據(jù),則先將連續(xù)型轉(zhuǎn)變成離散型,然后用離散型上下文信息的相似度算法,將連續(xù)型數(shù)據(jù)轉(zhuǎn)化為離散型的計(jì)算公式如下:
式中,Tn(1≤n<N)是分界點(diǎn),當(dāng)轉(zhuǎn)化成離散化之后求相似度的計(jì)算方法如式(3)所示。
在FP-tree中每條路徑均包含類似于C→S的關(guān)聯(lián)關(guān)系,C是除根節(jié)點(diǎn)之外的自上向下構(gòu)成序列集合,S是每一條路徑中包含的服務(wù)功能集合。在當(dāng)前應(yīng)用場(chǎng)景時(shí),可根據(jù)上下文C′構(gòu)造適合該場(chǎng)景的服務(wù)集合,將上下文C′與FP-tree每個(gè)分支中的C做相似度計(jì)算,即sim(C,C′),綜合排序取Top-k,得到服務(wù)推薦集合。
具體算法描述如下所示:
輸入:FP-tree;用戶當(dāng)前上下文信息Current;最小相似度MinCount;推薦服務(wù)個(gè)數(shù)K。
輸出:服務(wù)集合S。
因?yàn)槟壳案哞F旅客信息服務(wù)推薦領(lǐng)域積累不足,為了采集旅客相關(guān)信息,在蘭州站征集了50個(gè)志愿者的智能手機(jī),職業(yè)有教師、學(xué)生、工人等,在高鐵站使用的“鐵路12306”“智行”“美團(tuán)”等相關(guān)類型APP上采集約15萬(wàn)條數(shù)據(jù)。隨機(jī)選取10 000條用戶歷史數(shù)據(jù),以9∶1的方式分成訓(xùn)練集和測(cè)試集,訓(xùn)練集是采用本文算法挖掘出上下文信息和服務(wù)功能之間的關(guān)聯(lián)規(guī)則,測(cè)試集是根據(jù)訓(xùn)練集進(jìn)行服務(wù)匹配。
本文使用的硬件為Intel?酷睿I5-42210U,2.70 GHz處理器,8 GB內(nèi)存,操作系統(tǒng)是Windows 7旗艦版64位;軟件為eclipse3.4-jee-ganymede開(kāi)發(fā)運(yùn)行平臺(tái),JDK7.0版本。
評(píng)價(jià)一個(gè)服務(wù)推薦算法往往從命中率(Recall)、準(zhǔn)確率(Precision)和綜合評(píng)價(jià)(Comprehensive evaluation)3個(gè)方面進(jìn)行考慮,命中率主要用于衡量算法得出推薦服務(wù)集合Ure與實(shí)際可推薦服務(wù)集合Ureal的交集與實(shí)際可推薦服務(wù)數(shù)量的比值,計(jì)算公式如下:
準(zhǔn)確率主要衡量算法所得出的服務(wù)集合Ure與實(shí)際上可推薦的服務(wù)集合Ureal的交集與算法得出服務(wù)數(shù)量的比值,計(jì)算公式如下:
綜合評(píng)價(jià)指標(biāo),可以很好地考量推薦算法的整體性能,計(jì)算公式如下:
在事務(wù)數(shù)據(jù)集中,根據(jù)上下文項(xiàng)的出現(xiàn)頻率和重要程度設(shè)置本算法的多最小支持度Min_Su p={U.g=0.3,T.c=0.2,T.d=0.15,L.w=0.13,U.a=0.15,U.p=0.1,U.i=0.1,T.l=0.1,B.s=0.4},圖4顯示出實(shí)驗(yàn)參數(shù)對(duì)推薦系統(tǒng)產(chǎn)生的影響。Top-k的取值可直接影響實(shí)驗(yàn)的有效性,k值過(guò)小即算法推薦數(shù)量過(guò)少,會(huì)導(dǎo)致命中率過(guò)低,由圖可知,k增加時(shí)命中率也隨之增加。k≤5時(shí)命中率要低于準(zhǔn)確率,是因?yàn)橛脩羝谕姆?wù)個(gè)數(shù)大于算法推薦個(gè)數(shù)。從圖中也可看出隨著k增加準(zhǔn)確率會(huì)降低,雖然k增加命中服務(wù)的概率也會(huì)增大,但是這種增加是具有概率性的。特別是在命中率很高的情況下,k的增加反而會(huì)使準(zhǔn)確率降低,因此整體呈下降趨勢(shì)。當(dāng)k≥11時(shí),命中率和準(zhǔn)確率不再改變,原因是用戶所需服務(wù)已達(dá)到飽和同時(shí)Top-k的所取個(gè)數(shù)為整個(gè)候選服務(wù)集合。從圖中可看出Top-k的較理想取值k=8。
圖4 Top-k對(duì)實(shí)驗(yàn)影響
圖5 實(shí)驗(yàn)對(duì)比結(jié)果
圖5 是在圖4得出的Top-k(k=8)的基礎(chǔ)上進(jìn)行實(shí)驗(yàn)所得結(jié)果。實(shí)驗(yàn)將本文算法、傳統(tǒng)FP-Growth算法和文獻(xiàn)[10]提出基于云模型相似性度量的協(xié)同過(guò)濾推薦算法(即CFBOCMSM),進(jìn)行命中率、準(zhǔn)確率和綜合評(píng)價(jià)三方面比較。傳統(tǒng)FP-Growth算法的最小支持度設(shè)為0.2。為了更好地分析對(duì)比這三種方法,本文將設(shè)置10個(gè)不同高鐵應(yīng)用場(chǎng)景下的用戶所需服務(wù)。由圖可知,本文算法產(chǎn)生結(jié)果均高于其他兩種算法,這是由于設(shè)置多最小支持度對(duì)FP-tree進(jìn)行擴(kuò)展,將頻率較高的項(xiàng)設(shè)置較大的最小支持度,避免關(guān)鍵項(xiàng)丟失的同時(shí)控制規(guī)則數(shù)量,使得平均準(zhǔn)確率從47.94%提高到57.05%,平均命中率從76.74%提高到91.02%。
在事務(wù)數(shù)據(jù)集上,隨機(jī)選擇3 000、6 000、9 000條事務(wù)對(duì)其挖掘,求得準(zhǔn)確率與命中率結(jié)果,如圖6所示。
圖6 事務(wù)數(shù)對(duì)結(jié)果的影響
由圖可知,歷史事務(wù)數(shù)與服務(wù)應(yīng)用的命中率和準(zhǔn)確率成正比,因?yàn)闅v史事務(wù)數(shù)量直接影響關(guān)聯(lián)規(guī)則數(shù),事務(wù)數(shù)據(jù)越多對(duì)挖掘越有幫助。
服務(wù)推薦是當(dāng)前服務(wù)計(jì)算領(lǐng)域中的熱點(diǎn),隨著高鐵站旅客對(duì)出行效率和出行質(zhì)量要求的不斷提高,追求高質(zhì)量服務(wù)組合的難度也隨之增加。分析傳統(tǒng)FP-Growth算法在實(shí)際高鐵應(yīng)用場(chǎng)景所存在的局限性和挖掘不足的問(wèn)題,提出基于上下文感知的服務(wù)推薦方法,根據(jù)不同類型上下文項(xiàng)設(shè)置多最小支持度,得到上下文和服務(wù)之間的關(guān)聯(lián)關(guān)系,采取上下文項(xiàng)相似度的計(jì)算方法進(jìn)行服務(wù)匹配,最后獲得推薦的服務(wù)集合。此方式可以縮短用戶與高鐵信息服務(wù)之間的距離,進(jìn)一步落實(shí)“以人為本”的服務(wù)理念,提升現(xiàn)階段的高鐵信息服務(wù)水平。實(shí)驗(yàn)證明改進(jìn)后的算法顯著提高了服務(wù)匹配的準(zhǔn)確率和命中率,該方法可以有效利用上下文信息并獲得滿足用戶需求的推薦結(jié)果。隨著歷史數(shù)據(jù)量的不斷增大,F(xiàn)PGrowth改進(jìn)算法產(chǎn)生的FP-tree過(guò)于龐大,因此需在海量數(shù)據(jù)環(huán)境中實(shí)現(xiàn)并行化,提高運(yùn)行效率是下一步的研究重點(diǎn)。