鄒威
(北京交通大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 北京市 100044)
伴隨著近些年民航業(yè)的飛速發(fā)展,以及人民消費(fèi)水平的不斷提高,旅客出行方式、服務(wù)流程和交互方式正在不斷演變,旅客開(kāi)始追求更加品質(zhì)化、個(gè)性化的消費(fèi)需求,越來(lái)越多的人選擇更加高速便捷的航空出行方式以節(jié)省時(shí)間。2019年3月5日,民航局發(fā)布《2018年民航機(jī)場(chǎng)生產(chǎn)統(tǒng)計(jì)公報(bào)》[1],數(shù)據(jù)顯示,2018年我國(guó)境內(nèi)機(jī)場(chǎng)主要生產(chǎn)指標(biāo)保持平穩(wěn)較快增長(zhǎng),全年旅客吞吐量高達(dá)12.64 億人次,較2017年增長(zhǎng)10.2%。隨著機(jī)場(chǎng)旅客吞吐量的不斷增加,旅客對(duì)服務(wù)質(zhì)量的要求也越來(lái)越高,除此之外,旅客的出行模式也發(fā)生著變化,不局限于傳統(tǒng)的往返模式,因此旅客的訂票行為模式也在改變,這也給民航業(yè)提出了新的挑戰(zhàn)。如果我們從一個(gè)旅客出行全流程的時(shí)間段分布出發(fā),大致可以分為出行前、在途、出行后。而在出行前與在途這兩個(gè)階段中,存在這么一類旅客,我們稱為“行程未預(yù)定完成旅客”(后均簡(jiǎn)稱為“旅客”),指還未預(yù)定好當(dāng)前完整航程的全部機(jī)票的旅客。而據(jù)中國(guó)航信數(shù)據(jù)統(tǒng)計(jì)表明,在2018年的旅客出行記錄中,約33%的旅客不會(huì)一次性預(yù)定完完整航程的全部機(jī)票,這些旅客短時(shí)間內(nèi)還會(huì)形成新的或臨時(shí)的訂票需求,但這些潛在的需求未能得到及時(shí)的滿足。由于現(xiàn)階段我國(guó)民航市場(chǎng)每年近十幾億人次的出行總量,所以這些具有迫切需求的旅客則是需要被服務(wù)的重點(diǎn)。如果能對(duì)這些旅客的后續(xù)行程進(jìn)行較為準(zhǔn)確的預(yù)測(cè),這將會(huì)幫助各大航空公司和機(jī)票代理商提供更加有的放矢的機(jī)票推薦服務(wù),還會(huì)給旅客帶來(lái)更好的消費(fèi)體驗(yàn),甚至提高整個(gè)民航業(yè)經(jīng)濟(jì)效益。因此,在本文中,我們將嘗試對(duì)這個(gè)與實(shí)際業(yè)務(wù)場(chǎng)景緊密聯(lián)系的應(yīng)用問(wèn)題進(jìn)行分析,實(shí)現(xiàn)對(duì)旅客后續(xù)行程預(yù)測(cè)方法的整體應(yīng)用方法研究。
截止到目前為止,關(guān)于民航領(lǐng)域旅客行程推薦方面的研究主要是以單個(gè)旅行產(chǎn)品的推薦為主,缺乏對(duì)特定場(chǎng)景和特定旅客的后續(xù)行程預(yù)測(cè),還無(wú)法及時(shí)滿足對(duì)旅客精準(zhǔn)化和個(gè)性化的出行需求。同時(shí)民航旅客個(gè)體出行數(shù)據(jù)間隔更為稀疏,不規(guī)則變動(dòng)較大,也同時(shí)容易受到時(shí)間、天氣等外界因素影響。因此,旅客后續(xù)行程預(yù)測(cè)的研究對(duì)民航領(lǐng)域的旅客智能化發(fā)展來(lái)說(shuō)是非常必要且充滿挑戰(zhàn)的。
近些年來(lái),國(guó)內(nèi)外學(xué)者在民航旅客出行預(yù)測(cè)領(lǐng)域也進(jìn)行了相關(guān)的研究,其中一部分研究主要是對(duì)旅行產(chǎn)品的相關(guān)推薦服務(wù)[2],比如,Lim K Н 等人基于用戶興趣和興趣點(diǎn)[3],來(lái)推薦航空旅行產(chǎn)品服務(wù);JIE LIU 等人通過(guò)旅客關(guān)系網(wǎng)絡(luò)和提出的個(gè)性化出行主題概率圖模型[4],為旅客推薦未來(lái)潛在的出行路線。而如果我們將旅客的出行記錄按照時(shí)間順序進(jìn)行序列化研究,目前在序列預(yù)測(cè)領(lǐng)域也已經(jīng)有了很多的研究,尤其是電商領(lǐng)域熱門的點(diǎn)擊率預(yù)測(cè)[5][6]也在序列預(yù)測(cè)上取得了不錯(cuò)的效果,比如,Balázs Нidasi 等人首先提出的考慮用戶行為的時(shí)間偏移的循環(huán)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行點(diǎn)擊序列預(yù)測(cè)[7],Jing Li 等人提出了一種新的NARM 模型[8],該模型考慮了用戶在當(dāng)前會(huì)話中的順序行為和主要目的,并使用雙線性匹配方案計(jì)算推薦分?jǐn)?shù);Liu, Q 等人通過(guò)運(yùn)MLP 模型與注意力網(wǎng)來(lái)捕獲用戶的一般興趣和當(dāng)前興趣[9]。在民航旅行產(chǎn)品的相關(guān)研究中,這些方法都是只考慮了旅客歷史行程,進(jìn)行潛在的民航旅游產(chǎn)品推薦,并沒(méi)有參考旅客當(dāng)前所處的完整航程狀態(tài),并沒(méi)有做到針對(duì)每個(gè)特定旅客的個(gè)性化預(yù)測(cè)和推薦。而在系列預(yù)測(cè)的相關(guān)研究中,現(xiàn)有的這些方法在處理序列點(diǎn)擊預(yù)測(cè)方面,確實(shí)有著不錯(cuò)的效果,但面對(duì)民航旅客特有的出行模式多樣化、出行數(shù)據(jù)稀疏和出行間隔不規(guī)則等特點(diǎn),還無(wú)法準(zhǔn)確預(yù)測(cè)出旅客的后續(xù)出行目的地,尤其是對(duì)于一些相對(duì)較長(zhǎng)的序列的預(yù)測(cè)效果上對(duì)比短序列還是有一些差距。
可以說(shuō),目前并沒(méi)有太多直接應(yīng)用于解決民航旅客后續(xù)行程預(yù)測(cè)的研究,為了解決上述問(wèn)題難點(diǎn),我們結(jié)合民航旅客出行數(shù)據(jù)的特點(diǎn),對(duì)其他領(lǐng)域內(nèi)關(guān)于序列預(yù)測(cè)的主要研究進(jìn)行了分析,發(fā)現(xiàn)在電商推薦領(lǐng)域中的網(wǎng)站點(diǎn)擊率預(yù)測(cè)方法中,一種基于圖結(jié)構(gòu)模型的推薦系統(tǒng)能夠很好的學(xué)習(xí)用戶與商品之間的強(qiáng)交互關(guān)系,并實(shí)現(xiàn)高度準(zhǔn)確的商品推薦[10]。因此,本文將這一圖結(jié)構(gòu)模型類比應(yīng)用到本文的問(wèn)題中,首先通過(guò)圖神經(jīng)網(wǎng)絡(luò)[11]對(duì)旅客的歷史出行城市序列進(jìn)行建模,構(gòu)建對(duì)應(yīng)的有向圖,并額外引入全局航線網(wǎng)絡(luò),獲取融合了鄰居信息的城市節(jié)點(diǎn)表示,然后引入注意力機(jī)制同時(shí)考慮旅客的歷史出行興趣與當(dāng)前所在城市的重要性,實(shí)現(xiàn)對(duì)旅客的后續(xù)行程預(yù)測(cè)。本文在長(zhǎng)期大量的民航旅客出行數(shù)據(jù)集上進(jìn)行多組實(shí)驗(yàn),結(jié)果驗(yàn)證了基于圖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的預(yù)測(cè)模型效果的顯著性。
本文要解決的預(yù)測(cè)任務(wù)是,針對(duì)于行程未預(yù)定完成旅客,根據(jù)一定時(shí)間內(nèi)的歷史出行城市序列,預(yù)測(cè)其下一次出行的候選目的地集合。對(duì)于任意旅客,其歷史行程記錄可以表示為
圖1:模型結(jié)構(gòu)圖
本文采用的是一種基于圖神經(jīng)網(wǎng)絡(luò)、注意力機(jī)制和全局航線網(wǎng)絡(luò)的后續(xù)行程預(yù)測(cè)模型的架構(gòu)圖如圖1 所示。首先,我們獲取旅客的歷史前M 條出行記錄序列來(lái)預(yù)測(cè)第M+1 位置的城市,通過(guò)圖神經(jīng)網(wǎng)絡(luò)建模,得到每個(gè)出行城市的節(jié)點(diǎn)向量表示。然后,同時(shí)考慮旅客的歷史出行興趣和當(dāng)前所在城市的重要性,通過(guò)引入注意力機(jī)制,基于其他歷史出行城市節(jié)點(diǎn)向量與當(dāng)前城市節(jié)點(diǎn)向量?jī)蓛捎?jì)算相似度,作為本次出行輸入的全局向量的表示,并將當(dāng)前城市向量作為局部向量表示,將兩者融合成為新的出行序列向量表示。最后,將這個(gè)最終得到的出行序列向量通過(guò)一個(gè)softmax 層計(jì)算出下一次出行的城市的概率分布,取排名最高的前k 個(gè)城市最為最終的預(yù)測(cè)城市集合。
3.2.1 全局航線網(wǎng)絡(luò)與城市節(jié)點(diǎn)嵌入
為了更好的對(duì)候選城市集合進(jìn)行預(yù)測(cè),我們認(rèn)為預(yù)測(cè)的城市集合要與當(dāng)前城市之間有航線,所以我們先根據(jù)民航旅客的歷史出行記錄進(jìn)行匯總計(jì)算,構(gòu)造出一個(gè)全局航線網(wǎng)絡(luò)(G,V,E)。其中每個(gè)出現(xiàn)的城市作為一個(gè)節(jié)點(diǎn),城市之前有航線可達(dá)則節(jié)點(diǎn)之間有邊。模型先基于航線網(wǎng)絡(luò)(G,V,E)通過(guò)圖卷積網(wǎng)絡(luò)獲得每個(gè)節(jié)點(diǎn)的全局結(jié)構(gòu)信息表示
對(duì)于每個(gè)旅客的出行城市序列集合,我們輸入其前N-1 個(gè)城市所構(gòu)成的出行城市序列
在序列中的每個(gè)城市節(jié)點(diǎn)嵌入表示的過(guò)程中,對(duì)于圖G'的一個(gè)節(jié)點(diǎn)嵌入vi,它在t 時(shí)刻的更新函數(shù)如下:
3.2.2 出行序列表示
在獲得旅客出行序列的每個(gè)城市的表示之后,我們需要重新對(duì)旅客的出行序列進(jìn)行向量融合,由于我們認(rèn)為旅客的后續(xù)出行目的地除了受到其歷史出行規(guī)律的影響之外,還主要受到其當(dāng)前所在城市的影響,后續(xù)出行城市與當(dāng)前城市的航線網(wǎng)絡(luò)關(guān)系以及歷史出行頻次都將影響結(jié)果。
所以模型還將引入注意力機(jī)制,將其他城市節(jié)點(diǎn)向量與當(dāng)前所在城市節(jié)點(diǎn)向量進(jìn)行兩兩計(jì)算相似度,作為生成本次輸入全局向量的權(quán)重偏好,考慮當(dāng)前所在城市的重要性,將其作為局部向量表示,并與基于注意力機(jī)制生成全局向量融合,通過(guò)一個(gè)全連接層,最終輸出作為該歷史出行向量表示
3.2.3 計(jì)算出行概率分布
我們將最后得到的這個(gè)旅客歷史出行向量經(jīng)過(guò)一個(gè)softmax 層,最終輸出候選集合中每個(gè)城市被選中的概率分布
其中p 為候選集中每個(gè)樣本被選中的真實(shí)概率分布,q 表示模型預(yù)測(cè)的候選集中每個(gè)城市的概率分布,M 為候選城市集。通過(guò)計(jì)算損失函數(shù):
對(duì)所計(jì)算的損失利用后向傳播算法經(jīng)過(guò)多輪迭代并更新模型中參數(shù)以更好的擬合真實(shí)樣本分布。
為了還原真實(shí)旅客出行的情景,本文使用了2015年1月1日至2018年6月30日脫敏匿名化后的真實(shí)旅客出行記錄,共涉及旅客量10 萬(wàn)人,完整航程記錄264647 條,航段數(shù)量470239 條。
然后基于如下策略進(jìn)行數(shù)據(jù)集劃分:首先在原始數(shù)據(jù)集的基礎(chǔ)上根據(jù)旅客歷史總航段數(shù)目篩選歷史總航段數(shù)不低于3,5,10 的旅客記錄,將其劃分為origin@3,origin@5,origin@10 三個(gè)數(shù)據(jù)集,并分別進(jìn)行訓(xùn)練集和測(cè)試集的劃分,如表1 所示。
本實(shí)驗(yàn)中我們采用top_5 作為推薦城市集合數(shù)量,在模型訓(xùn)練階段,整個(gè)數(shù)據(jù)集訓(xùn)練輪次的最大次數(shù)為20,學(xué)習(xí)率取1e-3,學(xué)習(xí)率衰減參數(shù)取0.5,學(xué)習(xí)率衰減輪數(shù)取10,訓(xùn)練集與預(yù)測(cè)集的批次取128。
為了進(jìn)行實(shí)驗(yàn)評(píng)估,我們將圖結(jié)構(gòu)預(yù)測(cè)模型與目前已有的幾種序列預(yù)測(cè)方法進(jìn)行比較:(1)GRU 模型;(2)STAMP 模型;(3)FF 模型(frequency_first),即對(duì)旅客歷史所到達(dá)城市按照頻率從大到小排序,對(duì)前top_k 個(gè)城市作為最終的推薦集合。
實(shí)驗(yàn)所使用評(píng)價(jià)指標(biāo)包括hr@k 和mrr@k,其中k 表示前k 個(gè)城市所構(gòu)成的推薦城市集大小,具體如下所示:
其中#hit 表示測(cè)試集中預(yù)測(cè)命中的個(gè)數(shù),其中我們認(rèn)為旅客真實(shí)到達(dá)的目的地h_N 出現(xiàn)在大小為k 的推薦集合中則表示該次預(yù)測(cè)命中。
其中Rank(t)表示t 所表示的城市在推薦集合中排名,mrr@k值越高越好,表示我們預(yù)測(cè)命中的結(jié)果在我們的推薦集合中的順序更靠前。
本文在三個(gè)不同的數(shù)據(jù)集上都進(jìn)行了實(shí)驗(yàn),圖結(jié)構(gòu)模型在兩個(gè)指標(biāo)下均取得了更好的實(shí)驗(yàn)效果,這表明本文使用的基于圖神經(jīng)網(wǎng)絡(luò)與注意力機(jī)制的模型對(duì)解決旅客后續(xù)行程預(yù)測(cè)問(wèn)題上具有高度的匹配性,能夠更好的解決本文提出的問(wèn)題。
從表2 中可以看出,基于旅客歷史記錄中城市所出現(xiàn)的頻率進(jìn)行推薦目的地的方法FF 在各個(gè)數(shù)據(jù)集上取得了不錯(cuò)的效果,均超越了主流的時(shí)序預(yù)測(cè)模型GRU 與點(diǎn)擊率預(yù)測(cè)模型STAMP,但其mrr@5 指標(biāo)始終較低,說(shuō)明在其預(yù)測(cè)的結(jié)果候選集中,真實(shí)目的地的排名比較靠后,而圖結(jié)構(gòu)模型的實(shí)驗(yàn)結(jié)果在hr@5 和mrr@5 兩個(gè)指標(biāo)上均優(yōu)于其他所有的方法。
本文針對(duì)旅客后續(xù)行程預(yù)測(cè)的問(wèn)題,通過(guò)對(duì)旅客出行數(shù)據(jù)的分析,結(jié)合當(dāng)前各個(gè)領(lǐng)域?qū)π蛄蓄A(yù)測(cè)的研究,尋找到了一種基于圖結(jié)構(gòu)模型的預(yù)測(cè)方法。通過(guò)圖神經(jīng)網(wǎng)絡(luò)對(duì)旅客的歷史出行城市序列進(jìn)行建模,與全局航線網(wǎng)絡(luò)結(jié)合,同時(shí)考慮旅客的歷史出行興趣與當(dāng)前所在城市的重要性,并引入注意力機(jī)制,實(shí)現(xiàn)對(duì)行程未預(yù)定完成旅客的后續(xù)行程預(yù)測(cè),解決了民航旅客出行模式多樣化、出行記錄稀疏和出行間隔不規(guī)則等難點(diǎn),以及跳出了旅客個(gè)體出行受到外界因素影響的問(wèn)題,從旅客個(gè)體歷史出行序列出發(fā),并在真實(shí)的旅客出行數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)證明圖結(jié)構(gòu)模型具有更好的預(yù)測(cè)效果。
表1:實(shí)驗(yàn)數(shù)據(jù)集
表2:不同方法在三個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果