劉增霞,藺光嶺,劉華中,劉速,楊文軍
昆侖數(shù)智科技有限責(zé)任公司
2020年以來,受國際石油市場油價波動和全球疫情影響,中國成品油零售市場呈現(xiàn)增速放緩態(tài)勢。從市場需求來看,隨著新能源汽車的普及,汽車產(chǎn)業(yè)結(jié)構(gòu)進(jìn)入調(diào)整期,雖然汽車市場需求總量穩(wěn)步增長,但燃油汽車需求增長放緩,新能源汽車的替代效應(yīng)逐步顯現(xiàn),成品油零售業(yè)務(wù)面臨較為嚴(yán)峻的挑戰(zhàn);從市場供應(yīng)來看,隨著中國成品油零售市場開放,國內(nèi)煉油能力持續(xù)提升,民營煉化崛起,成品油零售行業(yè)形成國企、民營、外企常態(tài)化競爭的市場格局[1]。相較成品油批發(fā)業(yè)務(wù),成品油零售業(yè)務(wù)對市場動態(tài)變化更具敏感性,面對當(dāng)前經(jīng)濟(jì)環(huán)境低迷、新能源革命崛起及自身行業(yè)發(fā)展約束,成品油零售市場擴(kuò)銷上量難度增大,企業(yè)面臨巨大的轉(zhuǎn)型發(fā)展壓力。在當(dāng)今數(shù)字經(jīng)濟(jì)快速發(fā)展的大環(huán)境下,通過數(shù)字化轉(zhuǎn)型實現(xiàn)零售業(yè)務(wù)創(chuàng)新變革和高質(zhì)量發(fā)展是企業(yè)順應(yīng)時代、保持核心競爭力的重要抓手。
零售業(yè)務(wù)直面客戶與市場,是成品油煉化與供應(yīng)的主要價值體現(xiàn),而對零售數(shù)據(jù)探索的廣度和深度[2],則是成品油零售行業(yè)數(shù)字化、智能化轉(zhuǎn)型較為關(guān)鍵的一步。中國石油天然氣集團(tuán)有限公司(簡稱中國石油)已開展數(shù)據(jù)湖、數(shù)據(jù)治理體系及銷售大數(shù)據(jù)平臺建設(shè)工作。通過建立銷售業(yè)務(wù)知識體系,構(gòu)建基于零售業(yè)務(wù)場景的知識圖譜庫,結(jié)合零售業(yè)務(wù)交易數(shù)據(jù)、內(nèi)外部影響因素數(shù)據(jù),挖掘成品油零售業(yè)務(wù)銷售規(guī)律,實現(xiàn)對未來銷量的精準(zhǔn)預(yù)測,支持銷售計劃經(jīng)營決策,對成品油零售業(yè)務(wù)釋放數(shù)字經(jīng)濟(jì)增長潛能、降本提質(zhì)增效具有重要意義。
對于成品油銷量預(yù)測的研究,相關(guān)理論方法、模型及算法不斷更新迭代,目前主流的方法為時間序列模型、機器學(xué)習(xí)模型及深度學(xué)習(xí)模型。曾文豪[3]基于現(xiàn)有普通城鎮(zhèn)加油站銷量預(yù)測模型,重點研究分析了高速公路加油站車流量、車流有效率、進(jìn)站率、單車加油量等方面的特點,建立了高速公路加油站油品銷量預(yù)測的理論模型。鮮燕[4]選取彈性系數(shù)法、趨勢外推法、灰色預(yù)測法和組合預(yù)測模型分別對汽柴油銷量進(jìn)行了預(yù)測,提高了預(yù)測精度。趙振學(xué)等[5]將成品油出庫量視為銷售時間序列數(shù)據(jù),設(shè)計了月度與日度串行集成的雙時間顆粒度計算模型,采用時間序列預(yù)測算法進(jìn)行月度出庫量預(yù)測,應(yīng)用Mamdani 模糊推理系統(tǒng),按照設(shè)定的推理規(guī)則分解月度出庫量,生成日間出庫量。張晨等[6]基于決策樹集成模型的加油站銷量預(yù)測方法,利用積累的歷史銷售數(shù)據(jù)和相關(guān)特征數(shù)據(jù)進(jìn)行計算,對加油站的銷量進(jìn)行預(yù)測。馬聘[7]基于BP 神經(jīng)網(wǎng)絡(luò)設(shè)計了針對加油站成品油短期銷量的預(yù)測模型。潘詩元等[8]提出基于GA(遺傳算法)和LSTM(長短記憶神經(jīng)網(wǎng)絡(luò))的銷量組合預(yù)測模型,在原始數(shù)據(jù)的基礎(chǔ)上加入溫度、天氣、油價、星期、節(jié)假日特征進(jìn)行輔助預(yù)測,采用遺傳算法求得LSTM 模型的最優(yōu)超參數(shù)來提升模型精度。Rizvi 等[9]采用卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)算法預(yù)測成品油零售銷量。
這些預(yù)測模型對成品油銷量數(shù)據(jù)做時間序列預(yù)測,可實現(xiàn)輸入某種油品在某個加油站的歷史銷量,輸出此油品在這個加油站的未來銷量預(yù)測。但是,在中國石油數(shù)據(jù)庫中有約44 萬種商品,為每一種商品單獨建立模型是不現(xiàn)實的,必須使用統(tǒng)一的模型來為不同的商品進(jìn)行銷量預(yù)測。
使用統(tǒng)一的預(yù)測模型進(jìn)行時間序列預(yù)測,模型的擬合器就必須能分辨出不同商品的差異信息。為44 萬種商品進(jìn)行獨熱編碼,由于維度較高且沒有與之相匹配數(shù)量級的銷量數(shù)據(jù)用于訓(xùn)練,顯然不太現(xiàn)實。因此,引入知識圖譜和圖神經(jīng)網(wǎng)絡(luò)模型,基于圖譜訓(xùn)練的圖神經(jīng)網(wǎng)絡(luò)可以將不同的商品映射到一個200 維(實際維度數(shù)量可以按需調(diào)整)的向量空間中,將該向量作為商品或加油站差異信息的編碼,擬合器便能夠通過少量維度分辨出不同商品或加油站,可以使用統(tǒng)一的模型同時為不同的商品或加油站做時間序列預(yù)測。另外,加入節(jié)點圖向量表示后,商品和加油站特性得以充分表達(dá),能對商品銷量預(yù)測的模型精度提升具有一定幫助。
本文以成品油零售業(yè)務(wù)銷量預(yù)測為例,構(gòu)建成品油零售業(yè)務(wù)知識圖譜,利用GATNE(異構(gòu)圖神經(jīng)網(wǎng)絡(luò)圖嵌入模型)將加油站和商品進(jìn)行圖向量化表征,基于內(nèi)外部影響因素基礎(chǔ)上,為所選取油品和加油站構(gòu)建統(tǒng)一的多元線性回歸模型和XGBoost(極度梯度提升樹)模型,探索油品銷量加入圖向量與不加圖向量的預(yù)測效果,以期為成品油銷量預(yù)測的研究提供新的思路。
本文理論研究部分主要解決兩方面的問題,一個是成品油零售業(yè)務(wù)知識圖譜的圖嵌入方法問題,另一個是成品油銷量預(yù)測方法問題。
圖嵌入方法方面,本文構(gòu)建的知識圖譜包含成品油商品、加油站、商品所屬類目、電子用戶、卡用戶、交易記錄等10 類節(jié)點及實體間屬于、代表、綁定、開卡地、交易發(fā)起者、交易商品、交易發(fā)生地等7 種關(guān)系且節(jié)點有多種屬性,屬于AMHEN(屬性多重異構(gòu)網(wǎng)絡(luò))?,F(xiàn)有圖嵌入方法通常研究節(jié)點間單一關(guān)系的網(wǎng)絡(luò),即HEN(異構(gòu)網(wǎng)絡(luò))或AHEN(屬性異構(gòu)網(wǎng)絡(luò)),如HNE 方法[10]是在網(wǎng)絡(luò)中加入了內(nèi)容信息及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息來表示單一關(guān)系異質(zhì)網(wǎng)絡(luò)中的不同節(jié)點;而現(xiàn)實中的網(wǎng)絡(luò)通常是節(jié)點間具有多種關(guān)系的多視圖網(wǎng)絡(luò),即MHEN(多重異構(gòu)網(wǎng)絡(luò)),解決多重異構(gòu)網(wǎng)絡(luò)的嵌入方法有PMNE(原則性多層網(wǎng)絡(luò)嵌入)、MVE(多視圖網(wǎng)絡(luò))、MNE(多路復(fù)用網(wǎng)絡(luò)嵌入模型)、Mvn2vec(多視角網(wǎng)絡(luò)嵌入)等方法[11],但是這些方法的嵌入過程只關(guān)注網(wǎng)絡(luò)結(jié)構(gòu)中的拓?fù)浣Y(jié)構(gòu)信息,忽略了節(jié)點屬性信息,而節(jié)點屬性能有效提高網(wǎng)絡(luò)嵌入的質(zhì)量,更好地服務(wù)于下游任務(wù)。最新的異構(gòu)圖神經(jīng)網(wǎng)絡(luò)圖嵌入模型(此處指GATNE-I)在多重異構(gòu)網(wǎng)絡(luò)嵌入方法的基礎(chǔ)上,提出了更為完整和通用的算法框架,使得節(jié)點以一個低維向量來表示,且這個低維向量能最大化保存原網(wǎng)絡(luò)結(jié)構(gòu)信息及節(jié)點屬性信息,對屬性多重異構(gòu)網(wǎng)絡(luò)的圖嵌入問題具有較強的實用性。
銷量預(yù)測方法方面,定性預(yù)測方法如主觀概率法、專家評判意見法、德爾菲法等簡單易實施,工作量小,但是根據(jù)業(yè)務(wù)經(jīng)驗判斷的過程受各種主觀因素的影響,有失客觀性;時間序列方法如自回歸、馬爾科夫預(yù)測法、指數(shù)平滑法、趨勢外推法等基于歷史銷量數(shù)據(jù)規(guī)律來預(yù)測,因僅考慮單一因素而預(yù)測的準(zhǔn)確率低[12];回歸預(yù)測方法如多元線性回歸,作為比較經(jīng)典的預(yù)測方法,能夠較好擬合變量與銷量的關(guān)系,參數(shù)估計等相關(guān)理論較為成熟,本文以此作為基準(zhǔn)對比分析其他銷量預(yù)測方法;人工神經(jīng)網(wǎng)絡(luò)模型如誤差反向傳播網(wǎng)絡(luò)模型BP 神經(jīng)網(wǎng)絡(luò)、長短期記憶網(wǎng)絡(luò)LSTM 模型[13]、基于注意力機制的Transformer 模型等具有學(xué)習(xí)能力強,魯棒性好、容錯能力強等特點,但是模型訓(xùn)練需要大量的樣本數(shù)據(jù),本文成品油銷量樣本數(shù)據(jù)不能滿足,在模型探索階段利用嘗試建立LSTM 模型和Transformer 模型過程中也發(fā)現(xiàn)存在欠擬合現(xiàn)象;而傳統(tǒng)機器學(xué)習(xí)預(yù)測算法中XGBoost、隨機森林、支持向量機等預(yù)測算法因穩(wěn)定性相對較高且能處理多維影響因素及較復(fù)雜的情況被廣泛應(yīng)用,本文經(jīng)建立模型對比驗證發(fā)現(xiàn),就本文成品油銷售預(yù)測而言,XGBoost 提供了更加穩(wěn)定且相對較高的準(zhǔn)確率。
GATNE 網(wǎng)絡(luò)結(jié)構(gòu)利用兩部分向量,即基向量和邊向量表示,其中基向量為共享向量,出現(xiàn)在每一種邊類型中,邊向量在每一種邊類型中均不同。該模型希望每個實體節(jié)點在不同類型邊中有不同的向量表示,如:用戶A 在點擊商品的場景下學(xué)習(xí)一種向量表示,在購買商品的場景下學(xué)習(xí)另一種向量表示,而不同場景之間并不完全獨立,利用基向量來當(dāng)做不同邊類型信息傳遞的橋梁。綜合基向量與每一邊類型的邊向量來進(jìn)行建模,在直推式背景下提出GATNE-T 模型,該模型僅僅利用了網(wǎng)絡(luò)結(jié)構(gòu)信息,在歸納式學(xué)習(xí)背景下提出GATNE-I 模型,該模型同時考慮了網(wǎng)絡(luò)結(jié)構(gòu)信息和節(jié)點性質(zhì),因此使用該模型進(jìn)行實體向量表征,核心步驟[14-15]如下。
1)隨機初始化節(jié)點i每個邊類型下節(jié)點的向量。
2)節(jié)點i對邊類型r的第k階鄰居進(jìn)行聚合,得到邊向量。
3)將第k階鄰居不同邊類型節(jié)點對應(yīng)的邊向量進(jìn)行聚合。
4)考慮到不同邊類型的影響不同,利用注意力機制計算權(quán)重。
5)計算節(jié)點向量表征,包括基礎(chǔ)向量、邊類型向量和屬性向量。
式中:vi,r——節(jié)點υi在邊類型r上的整體向量表征;hz——轉(zhuǎn)換函數(shù);Dz——節(jié)點類型為z的節(jié)點的特征轉(zhuǎn)換矩陣;——模型可學(xué)習(xí)參數(shù)。
6)負(fù)采樣方式構(gòu)造節(jié)點對(υi,υj)的目標(biāo)函數(shù)的近似表示。
式中:E——節(jié)點對(υi,υj)目標(biāo)函數(shù)的近似表示;υk——從噪聲分布中采樣得到的節(jié)點,即負(fù)樣本;——節(jié)點υk的期望;——模型可學(xué)習(xí)參數(shù);——sigmoid 函數(shù);L——負(fù)樣本數(shù);——節(jié)點集合Vt的噪聲分布。
通過梯度下降更新模型中的可學(xué)習(xí)參數(shù),使目標(biāo)函數(shù)達(dá)到最優(yōu),便可利用訓(xùn)練好的模型得到油品和加油站等實體的向量表征,后續(xù)應(yīng)用到成品油銷量預(yù)測中。
1.2.1 XGBoost 模型
XGBoost 是Boosting 算法的一種實現(xiàn)方式,它的基分類器是CART(分類回歸樹)決策樹,最后的預(yù)測結(jié)果為t棵決策樹的預(yù)測結(jié)果之和。該算法不僅可以擬合數(shù)據(jù)中的線性關(guān)系還可以擬合非線性關(guān)系,而且在損失函數(shù)中加入了正則項,用于控制模型的復(fù)雜度,降低了過擬合的可能性,對擬合結(jié)果也具有較好的可解釋性。其公式如下:
式中:xi,yi——數(shù)據(jù)樣本;——i樣本在模型t次迭代后的預(yù)測結(jié)果;——i樣本在第t棵決策樹的預(yù)測值。
利用二階泰勒展開式展開且經(jīng)過t次迭代后,不帶常數(shù)項的簡單目標(biāo)函數(shù)公式為:
在第t棵決策樹中,存在一個映射函數(shù)能夠把一個樣本映射到某個葉子節(jié)點,所以目標(biāo)函數(shù)可以從樣本求和轉(zhuǎn)化為葉子求和。通常正則化懲罰函數(shù)T表示樹中包含T個葉子,γ和λ表示正則化懲罰函數(shù)的兩個系數(shù),用于控制模型復(fù)雜度,wj表示第j個葉子節(jié)點的權(quán)重取值。設(shè)目標(biāo)函數(shù)加入正則項后,公式如下:
對wj求導(dǎo),然后代入極值點,可得出葉子節(jié)點最優(yōu)值和目標(biāo)函數(shù)最優(yōu)值
在創(chuàng)建決策樹時,一棵樹的目標(biāo)函數(shù)值越小,該樹的結(jié)構(gòu)越好。也就是說,一個葉子節(jié)點分裂后的信息增益越大,該樹結(jié)構(gòu)越好。信息增益的計算公式如下:
式中:Gain——葉子節(jié)點分裂后的信息增益;——該節(jié)點分裂后左子樹的得分;——該節(jié)點分裂后右子樹的得分;——該節(jié)點不分裂的得分。
1.2.2 多元線性回歸模型
多元線性回歸模型是指含有多個解釋變量的線性回歸模型,用于解釋因變量與其他多個解釋變量之間的線性關(guān)系。該模型只能擬合數(shù)據(jù)中的線性關(guān)系,且對擬合結(jié)果具有較好的可解釋性。數(shù)學(xué)模型一般表示為:
式中:y——因變量;x1…xk——解釋變量;β0——常數(shù)項;β1…βk——回歸系數(shù);ε——隨機誤差項。
本文成品油銷量預(yù)測分析過程中,以多元線性回歸模型為基準(zhǔn)模型,來對比評估其他模型的預(yù)測效果。
1.2.3 隨機森林模型
隨機森林回歸算法是隨機森林的重要應(yīng)用分支。隨機森林回歸模型通過隨機抽取樣本和特征,建立多棵相互不關(guān)聯(lián)的決策樹,通過并行的方式獲得預(yù)測結(jié)果。每棵決策樹都能通過抽取的樣本和特征得出一個預(yù)測結(jié)果,通過綜合所有樹的結(jié)果取平均值,得到整個森林的回歸預(yù)測結(jié)果。隨機森林回歸算法適用于對數(shù)據(jù)維度要求相對較低(幾十維),同時對準(zhǔn)確性要求較高的場景下。
1.2.4 支持向量機模型
SVM(支持向量機)模型可以很好地概括尚未看到的數(shù)據(jù),適合推廣到回歸問題。SVR(支持向量回歸)的特點是使用核、稀疏解和VC 維控制邊距和支持向量的數(shù)量,且已被證明是實值函數(shù)估計的有效工具。支持向量回歸的主要優(yōu)點之一是其計算復(fù)雜度不依賴于輸入空間的維度,且具有出色的泛化能力。然而,在每個數(shù)據(jù)點的特征數(shù)量超過訓(xùn)練數(shù)據(jù)樣本數(shù)量的情況下,支持向量回歸表現(xiàn)不佳。
本文主要根據(jù)中國石油交易數(shù)據(jù)中的用戶、商品及其類目、加油站、交易信息等數(shù)據(jù)進(jìn)行本體設(shè)計,構(gòu)建一個成品油零售知識圖譜,然后用GATNE對相關(guān)實體進(jìn)行向量表征。
2.1.1 知識圖譜概述
谷歌公司于2012年正式提出知識圖譜概念并通過該技術(shù)改善了搜索引擎性能。知識圖譜以結(jié)構(gòu)化的形式描述客觀世界中概念、實體及其關(guān)系,將信息表達(dá)成更接近人類認(rèn)知世界的形式,提供了一種更好地組織、管理和理解海量信息的能力。其本質(zhì)是一種語義網(wǎng)絡(luò),其中的節(jié)點代表實體(或者概念),節(jié)點之間的連線代表實體間(或者概念之間)的各種語義關(guān)系。知識圖譜的基本組成單位是“實體-關(guān)系-實體”構(gòu)成的三元組,也是知識圖譜的核心。知識圖譜的三元組表示如下:
式中:E——知識庫中的實體集合;R——知識庫中的關(guān)系集合;S?E×R×E,代表知識庫中的三元組集合;G——實體、關(guān)系、三元組的表示集合,代表整個知識圖譜。
2.1.2 Schema 設(shè)計
成品油銷售知識圖譜的構(gòu)建,首先是根據(jù)內(nèi)部成品油交易數(shù)據(jù)進(jìn)行知識抽?。?6],從中提取成品油商品、商品所屬類目、電子用戶、卡用戶、交易記錄等實體及其屬性以及實體間的屬于、代表、綁定、開卡地、發(fā)起者、交易商品、發(fā)生地等關(guān)系,在此基礎(chǔ)上形成結(jié)構(gòu)化的知識表達(dá);數(shù)據(jù)經(jīng)過預(yù)處理與對齊,最終抽取10 類實體、7 種關(guān)系,并據(jù)此設(shè)計圖譜的本體,圖譜Schema 設(shè)計簡化圖見圖1。
圖1 成品油零售業(yè)務(wù)知識圖譜本體設(shè)計
2.1.3 導(dǎo)入圖數(shù)據(jù)庫
根據(jù)圖譜的本體設(shè)計,將實體、屬性、關(guān)系數(shù)據(jù)批量導(dǎo)入ArangoDB 圖數(shù)據(jù)庫,最終構(gòu)建A 市成品油銷售知識圖譜實體數(shù)量為9 867 950 個,關(guān)系數(shù)量為28 033 850 條。通過ArangoDB 圖數(shù)據(jù)庫可視化界面可以進(jìn)行相關(guān)實體、屬性、關(guān)系的查詢及可視化展示,查詢油品編號,可知該油品在哪個加油站被哪個客戶購買。
根據(jù)成品油銷售業(yè)務(wù)設(shè)計知識圖譜Schema,通過交易節(jié)點將用戶、加油站、商品及其類目關(guān)聯(lián)起來,即:交易記錄發(fā)生在哪個加油站,由哪個用戶發(fā)起,關(guān)聯(lián)哪個商品。整個圖譜具有不同類型的節(jié)點和關(guān)系,屬于異構(gòu)圖。本文選用異構(gòu)圖神經(jīng)網(wǎng)絡(luò)嵌入模型GATNE 對實體向量進(jìn)行表征,該算法希望每個節(jié)點在不同類型邊中有不同的表示,建模的目標(biāo)任務(wù)定義為一個自監(jiān)督圖嵌入任務(wù),即訓(xùn)練異構(gòu)圖神經(jīng)網(wǎng)絡(luò)來預(yù)測給定節(jié)點的上下文。自監(jiān)督圖嵌入任務(wù)認(rèn)為,當(dāng)模型可以很好地預(yù)測每個節(jié)點的上下文時,說明模型對每個節(jié)點都有了一個很準(zhǔn)確的語義建模。
GATNE 圖算法首先讀入完整圖譜數(shù)據(jù),對圖中的全部節(jié)點進(jìn)行標(biāo)號;遍歷每個節(jié)點并通過隨機游走得到不同的序列,每個序列描述的是節(jié)點的長程上下文或影響范圍,序列的長度由配置信息決定;對圖中的每個節(jié)點做鄰域生成,鄰居節(jié)點過多時進(jìn)行采樣,采樣個數(shù)由模型缺省值給出,節(jié)點的鄰域信息將作為節(jié)點信息的一部分參與訓(xùn)練;通過Skip-Gram(跳字模型)的方式訓(xùn)練節(jié)點的向量表示,即當(dāng)模型輸入包含鄰域信息在內(nèi)的節(jié)點的信息時可以輸出預(yù)測節(jié)點的長程上下文信息,并與真實的節(jié)點的長程上下文信息進(jìn)行比較,讓其越接近越好;模型訓(xùn)練結(jié)束后,也就具有了建模節(jié)點行為和特征的能力。因此,GATNE 算法可以將實體的語義信息和圖結(jié)構(gòu)信息進(jìn)行編碼,從而更好地表征實體向量。
實際實現(xiàn)過程中,考慮到數(shù)據(jù)庫中用戶數(shù)量巨大,無法把整個知識圖譜送入模型進(jìn)行訓(xùn)練。因此,首先在整個大的圖譜上進(jìn)行節(jié)點編號、隨機游走[17]和鄰域生成,然后從中隨機采樣一個子圖(約占全圖的十分之一)訓(xùn)練GATNE 圖算法模型,最后用訓(xùn)練好的模型對整個圖中的節(jié)點進(jìn)行向量表征,模型訓(xùn)練方案見圖2。
圖2 GATNE 模型訓(xùn)練方案
經(jīng)過GATNE 模型訓(xùn)練,加油站、油品節(jié)點向量便具有了表征其圖結(jié)構(gòu)信息及節(jié)點屬性信息的能力,也即具備了表征自身特性的能力。因此,在構(gòu)建銷量預(yù)測模型時,不必按不同品號和加油站分別建模,而是通過輸入加油站向量和油品向量,不同加油站、不同油品品號的特征便可以充分表達(dá),從而構(gòu)建銷量預(yù)測的統(tǒng)一模型。部分加油站、油品的向量化表征見表1。
表1 GATNE 模型輸出加油站、油品向量化表征
選取某公司加油站92 號、95 號、98 號汽油及0 號、-10 號柴油銷量數(shù)據(jù)進(jìn)行預(yù)測分析,時間范圍為2020年1月1日—2022年10月12日,原始銷量數(shù)據(jù)包括日期、加油站、油品品號和銷量4 個字段??紤]內(nèi)外部影響因素對油品銷量的影響,內(nèi)部因素主要考慮油品分類屬性、加油站屬性(地理位置、站級分類等)、油品實收價格3 個維度影響,外部因素通過爬取獲得新冠肺炎疫情(簡稱疫情)、國際現(xiàn)貨成品油價格、國際期貨原油價格、天氣(溫度、氣象)等32 個維度的數(shù)據(jù)。
3.1.1 缺失值處理
本次銷量預(yù)測未考慮節(jié)假日及會員日影響,因此在實際銷量預(yù)測過程中將節(jié)假日、會員日等銷量異常數(shù)據(jù)剔除。對于模型輸入數(shù)據(jù),由于數(shù)據(jù)來源不同,在表間關(guān)聯(lián)時會出現(xiàn)數(shù)據(jù)為空(“null”或“NaN”)的情況,因此對歷史銷量及各數(shù)值型影響因素數(shù)據(jù)采取平均值填充的方法進(jìn)行缺失值填充(文本型氣象數(shù)據(jù)較完備,無需填充)。對于模型輸出數(shù)據(jù),即當(dāng)天銷量數(shù)據(jù),若出現(xiàn)“NaN”的情況,直接跳過此條記錄,不做訓(xùn)練。
3.1.2 數(shù)據(jù)標(biāo)準(zhǔn)化處理
銷量預(yù)測過程需要對基礎(chǔ)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,本文對離散型文本型數(shù)據(jù)進(jìn)行獨熱編碼處理,對數(shù)值型數(shù)據(jù)進(jìn)行歸一化處理。
對氣象類文本數(shù)據(jù)采用one-hot 獨熱編碼,17類氣象數(shù)據(jù)用17 維向量建模,通過one-hot 編碼后的特征稀疏并且高維,因此它在一定程度上可以擴(kuò)充特征。
對于數(shù)值型數(shù)據(jù),由于各影響因素數(shù)據(jù)來源不同,數(shù)據(jù)間差異較大,為消除不同量綱的影響,對數(shù)值型影響因素數(shù)據(jù)進(jìn)行歸一化處理。歸一化采取min-max 標(biāo)準(zhǔn)化,使數(shù)據(jù)映射在[0,1]區(qū)間內(nèi)。
3.2.1 內(nèi)部因素向量化表征
銷量預(yù)測內(nèi)部影響因素是商品、加油站的內(nèi)在屬性,如商品的特點、商品的受眾范圍、商品之間的差異性等。除非為每一個商品或加油站都訓(xùn)練一個時序預(yù)測模型來預(yù)測它們的銷量變化,否則一個統(tǒng)一的時序預(yù)測模型就必須能夠區(qū)分其需要預(yù)測的商品和加油站具體是哪一個、具有怎樣的特點等。通過成品油零售交易的知識圖譜構(gòu)建及GATNE 模型圖向量表示,生成了一套基于知識圖譜和圖神經(jīng)網(wǎng)絡(luò)建模的油品、加油站表征向量,作為本文時間序列預(yù)測的商品、加油站的特征表示,參與系統(tǒng)訓(xùn)練。
3.2.2 外部因素特征提取
成品油零售業(yè)務(wù)受多種因素影響,尤其近兩年隨著疫情頻發(fā),疫情區(qū)域加油站油品零售業(yè)務(wù)受到嚴(yán)重影響。綜合考慮影響銷量因素[18]及數(shù)據(jù)的可獲得性,選取外部因素的具體分析維度見表2。
表2 外部影響因素及數(shù)據(jù)維度
3.2.3 影響因素特征篩選
將內(nèi)部因素實收價格作為0 號因素,與外部因素按順序計算33 個影響因素對銷量的皮爾遜相關(guān)系數(shù)(見圖3)。影響因素中疑似病例及9 種氣象類型與銷量的相關(guān)系數(shù)很小,接近0,將其排除,剩余23 個影響因素進(jìn)入模型分析。
圖3 各因子與成品油銷量相關(guān)系數(shù)
3.3.1 滑窗采樣
剔除與銷量無關(guān)的影響因素后,對剩余影響因素及銷量數(shù)據(jù)采用滑窗采樣方式進(jìn)行取樣,滑窗采樣窗口大小通過當(dāng)日銷量與歷史銷量的相關(guān)關(guān)系來確定,具體見圖4。計算前1 天到前10 天的銷量與當(dāng)天銷量的相關(guān)關(guān)系,發(fā)現(xiàn)在間隔7 天時出現(xiàn)一次波峰;其次,相關(guān)系數(shù)隨著間隔天數(shù)的增加在減少,說明加油行為有一定按周變化的周期性,在間隔7天時銷量相關(guān)性有小幅度增加。綜上,選擇的歷史滑窗時間為1~7 天。
圖4 歷史銷量與當(dāng)日銷量相關(guān)系數(shù)
3.3.2 模型設(shè)計
本文油品零售業(yè)務(wù)銷量預(yù)測算法是基于圖神經(jīng)網(wǎng)絡(luò)實體建模輔助的時間序列預(yù)測,其架構(gòu)見圖5。圖中,GNN 為圖神經(jīng)網(wǎng)絡(luò);a,b,c,d,e 表示商品P 或加油站S 節(jié)點的鄰居節(jié)點,商品子圖和或加油站子圖。
圖5 模型架構(gòu)設(shè)計
一方面通過滑窗構(gòu)造時序歷史數(shù)據(jù)的輸入向量,一方面通過知識圖譜得到某個加油站和商品經(jīng)過圖神經(jīng)網(wǎng)絡(luò)建模之后的圖向量,將兩個向量拼接作為擬合器的輸入,由擬合器負(fù)責(zé)生成對未來銷量數(shù)據(jù)的預(yù)測。通常預(yù)測未來一天需要一個擬合器,實際使用中需要預(yù)測未來7 天的銷量情況,需要構(gòu)造7個擬合器。
需要指出的是,對于不復(fù)雜的模型,增加擬合器的數(shù)量體現(xiàn)在操作流程上僅增加擬合模型的輸出向量維度即可,因為一個N維輸出的擬合器可以看做是N個1 維輸出的擬合器。
本模型架構(gòu)的實際效果依賴于GNN 模型和擬合器模型的選擇,本文選擇異構(gòu)圖神經(jīng)網(wǎng)絡(luò)圖嵌入模型GATNE 作為生成圖向量的圖神經(jīng)網(wǎng)絡(luò)模型,使用多元線性回歸、XGBoost 模型、隨機森林和支持向量機作為擬合器進(jìn)行對比分析。
3.4.1 模型評估指標(biāo)
3.4.1.1 MAE
MAE(平均絕對誤差)即預(yù)測值和真實值的絕對值誤差均值。該指標(biāo)的優(yōu)點是能夠直接衡量誤差的絕對大小,缺點是對原數(shù)據(jù)沒有了解的人無法通過MAE 看出擬合效果的好壞,公式為:
3.4.1.2 MAPE MAPE(平均絕對百分誤差)即絕對誤差占原數(shù)據(jù)的比例的平均值。該指標(biāo)的優(yōu)點是可以直接從比例看出擬合效果的好壞,缺點是該指標(biāo)將真實值作為分母,導(dǎo)致受真實值的波動與基數(shù)影響大,通常一個點位的誤差會因為分母的真實值太小,而直接放大到整個MAPE 上。
3.4.1.3 sMAPE
sMAPE(對稱平均絕對百分誤差)的優(yōu)點是通過取真實值和預(yù)測值的中值作為分母,解決MAPE波動巨大的問題,缺點是該指標(biāo)的比例結(jié)果不能完全體現(xiàn)相對誤差情況且受真實值的基數(shù)影響大。
3.4.1.4 wMAPE
wMAPE(加權(quán)平均絕對百分誤差)也可寫作rMAE(相對平均絕對誤差),是平均絕對誤差與真實值平均值的比值。該指標(biāo)的優(yōu)點是通過統(tǒng)一求和之后再做比例,解決MAPE 波動巨大的問題,缺點是該指標(biāo)受真實值的基數(shù)影響大,若將真實值全部向上平移很大的單位,則會導(dǎo)致MAPE 特別小。
3.4.2 統(tǒng)一模型驗證結(jié)果
將成品油銷售數(shù)據(jù)向量運用多元線性回歸模型、XGBoost 模型、隨機森林和支持向量機4 種模型分別構(gòu)建統(tǒng)一模型,考慮加入圖向量與無圖向量(僅加入歷史數(shù)據(jù)向量)兩種情況,對各評估指標(biāo)進(jìn)行統(tǒng)計,見表3。
表3 統(tǒng)一模型預(yù)測結(jié)果對比
從評估指標(biāo)可以看出,在多元線性回歸、XGBoost和支持向量機模型的預(yù)測結(jié)果中,加入圖向量后模型的預(yù)測精度整體高于不加圖向量時的預(yù)測精度,在MAPE 指標(biāo)上體現(xiàn)的尤為明顯;而隨機森林和支持向量機出現(xiàn)添加圖譜反而效果不好的情況,并且在MAPE 評估指標(biāo)上預(yù)測效果低于基準(zhǔn)的多元線性回歸模型??紤]此兩種算法對于高維度(特別是維度大于樣本數(shù)量的情況)數(shù)據(jù)的支持不好,而歷史數(shù)據(jù)向量和圖向量的拼接直接造成了向量維度較大,而采樣數(shù)據(jù)有限,因此兩個模型的預(yù)測效果不好。另一方面,從MAPE 評估指標(biāo)來看,4 個模型在加入圖向量與不加入圖向量的精度上,XGBoost 模型的預(yù)測精度整體高于其他模型;相較于多元線性回歸模型,無論是否加入圖向量,XGBoost 模型的預(yù)測精度均高于多元線性回歸的預(yù)測精度。但是即使XGBoost 模型整體表現(xiàn)最好,其MAPE 指標(biāo)值也達(dá)到了37.48%,預(yù)測誤差較大,因此進(jìn)一步考慮在加油站維度上對站內(nèi)各品號油品構(gòu)建統(tǒng)一模型,并與多組未加入圖向量的分品號、分加油站單獨構(gòu)建的模型進(jìn)行預(yù)測效果分析。
3.4.3 加油站維度統(tǒng)一模型驗證結(jié)果
進(jìn)一步從加油站維度加入成品油圖向量來構(gòu)建油品銷量預(yù)測的統(tǒng)一模型,同時從傳統(tǒng)做法上在不考慮圖向量的情況下分品號、分加油站單獨建模,以此驗證加入圖向量后統(tǒng)一模型銷量預(yù)測效果的準(zhǔn)確性,銷量預(yù)測模型均通過XGBoost 模型構(gòu)建。隨機選取3 個加油站構(gòu)建統(tǒng)一模型,并在3 個加油站范圍內(nèi)隨機選取7 個不同的油品、加油站組合進(jìn)行分開建模,模型評估指標(biāo)統(tǒng)計見表4。
表4 加油站統(tǒng)一模型與各油品分別建模預(yù)測結(jié)果對比
分析可見,利用XGBoost 模型對成品油銷量進(jìn)行預(yù)測的誤差在10%以內(nèi),預(yù)測準(zhǔn)確率較高;從統(tǒng)一模型與分品號、分加油站單獨構(gòu)建模型的效果對比來看,在3 個加油站范圍內(nèi),不同品號、不同加油站單獨建模的模型預(yù)測精度有高有低,加入圖向量的統(tǒng)一模型的銷量預(yù)測精度較加油頻次較高的92號汽油、95 號汽油略低,而略高于加油頻次相對低的98 號汽油、0 號柴油等,符合業(yè)務(wù)邏輯規(guī)律,說明經(jīng)過GATNE 模型訓(xùn)練的油品節(jié)點向量較好地刻畫了油品特征信息,使得統(tǒng)一模型的銷量預(yù)測結(jié)果相對比較穩(wěn)定,具有業(yè)務(wù)實際應(yīng)用意義。
本文基于圖神經(jīng)網(wǎng)絡(luò)實體建模輔助成品油銷量預(yù)測分析,通過知識圖譜構(gòu)建及圖神經(jīng)網(wǎng)絡(luò)模型將油品及加油站進(jìn)行圖向量表征,使模型擬合器可以從較少的數(shù)據(jù)維度中分辯出不同加油站或不同油品,從而實現(xiàn)構(gòu)建成品油銷量預(yù)測統(tǒng)一模型的目的。分析結(jié)果表明,綜合考慮內(nèi)外部影響因素,直接基于油品向量與加油站向量構(gòu)建的統(tǒng)一模型預(yù)測精度欠佳,從加油站維度構(gòu)建引入油品圖向量的銷量預(yù)測統(tǒng)一模型具有更高的預(yù)測精度,且與分品號、分加油站單獨建模效果相比,從加油站維度構(gòu)建的銷量預(yù)測統(tǒng)一模型符合業(yè)務(wù)邏輯規(guī)律,為從加油站維度對不同商品銷量情況進(jìn)行智能化分析提供了實際應(yīng)用意義,改善了現(xiàn)行在加油站維度對商品銷量情況進(jìn)行人工估計或依靠簡單公式粗略估算的局面。
對成品油銷量預(yù)測的進(jìn)一步研究主要從以下幾方面展開:在知識圖譜中深入挖掘各節(jié)點間潛在關(guān)系,同時從業(yè)務(wù)角度進(jìn)一步豐富加油站等節(jié)點的屬性特征,使圖向量表征體現(xiàn)更多加油站、油品特性;深入探索影響油品銷量的其他相關(guān)因素,以期獲得更高質(zhì)量的訓(xùn)練數(shù)據(jù)。