成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度多元時序模型在攜程關鍵指標預測場景下的探索應用

開發
預測關鍵指標實際上是個典型的時間序列預測問題,即基于指標的歷史真實數據來預測未來一段時間的值。在攜程也有一些相關的業務場景,本文將以預測流量、訂單量、GMV為例,介紹我們在時間序列預測方面使用的一些方法與思考。

作者簡介

doublering,攜程高級算法工程師,關注自然語言處理、LLMs、時序預測等領域。

一、背景

互聯網行業中,有許多關鍵指標直接影響公司未來的規劃與決策,比如流量、訂單量、銷售額等。有效地預測這些關鍵指標能夠輔助公司提前做出相應的預算、規劃、決策,實現收益的最大化。

預測關鍵指標實際上是個典型的時間序列預測問題,即基于指標的歷史真實數據來預測未來一段時間的值。在攜程也有一些相關的業務場景,本文將以預測流量、訂單量、GMV為例,介紹我們在時間序列預測方面使用的一些方法與思考。

二、問題定義與難點

2.1 口徑定義

預測目標值:流量、訂單量和GMV等關鍵指標。

預測時長:未來30天。

重點關注節假日期間的預測,包括清明節、勞動節等法定節假日以及法定節假日的前后一段時間,要求在法定節假日的提前一段時間進行預報,為業務在關鍵時間節點的投放提供參考。

2.2 難點

在現實場景中,時間序列預測會受到宏觀政策、自然災害、社會運動等多種因素的影響,而且這些因素難以量化,這集中表現為時序數據中的突變點和非周期性。再者,時序數據的周期通常以天為單位,一些歷史較短領域的訓練樣本會不足。同時,時序模型需要支持多個特征輔助預測,如節假日特征、時間類特征以及各種協變量等。為了更早地布局,需要進行長時預測,即預測未來一個月、半年、一年的值。

三、方案設計

3.1 數據選擇與特征構建

選取近幾年的關鍵指標的時序數據,時間粒度為“天”。我們畫出各項指標的歷史數據,可以看到明顯的節假日效應,每個尖峰都對應著法定節假日或者寒暑假期間,數值的漲跌對應著工作日與非工作日等。

由此,我們依據時序順序追溯構造7個假期/時間型特征,分別為:預測日是否為假期、預測日是否為工作日、預測日在假期中是第幾天、預測日距離下一次假期的天數、預測日是周幾(周日為1)、預測日所處星期在一年中是第幾周、預測日所處的季節等。

圖片

同時,注意到各項指標之間的總體趨勢是有關聯的,當預測其中一項指標時,其他指標也可作為特征入模,以提高預測的準確性,因此總共構建了20個左右的特征。

3.2 模型介紹

通常來說,時間序列預測模型大致可分為三類:一是傳統時間序列預測模型,比如移動平均、ARIMA、指數平滑法等,二是機器學習模型,比如線性回歸、樹模型、Prophet等,三是深度學習模型,比如時序卷積網絡(TCN)、LSTM、Transformer等。

目前工業實踐上,采用傳統時間序列預測模型進行預估較為普遍。傳統時間序列預測模型具有可解釋性、簡單直觀、理論成熟等優點,但其通常只能以單變量的方式進行預測,而我們的任務涉及多個關鍵指標的預估,有多個特征會影響這些指標,而且這些指標之間也互有影響。除此之外,傳統時間序列預測模型處理多步預測時,往往采用滾動預測的策略,即使用前一期預測值作為實際值加入模型,從而得到下一期的預測,這種策略會導致預測誤差累計,從而使得多步預測的精準性越來越差。

機器學習方法可以利用多變量進行預測,學習到時間序列數據中的復雜模式和趨勢,但是其需要針對每一個指標訓練一個模型,并且涉及到多步預測時,也會存在誤差累積的缺點。

近年來,基于深度學習的方法也被廣泛地應用于時序預測任務中,例如時序卷積網絡(TCN)、LSTM、Transformer等。這些方法克服了上述缺點,具有支持輸入多個變量,自適應地提取特征,執行多步預測,一次性輸出多個指標的預測值等優勢。因此,本文的實戰部分利用的是深度學習方法。下面簡要介紹實踐中涉及到的幾種模型或方法。

3.2.1 Prophet

Prophet是Facebook開發的時間序列預測模型,具有簡單易用、運行效率高、可解釋性強等優點。Prophet是將時間序列看成是一個關于t的函數,并將時間序列分解為趨勢項、季節項和節假日項等,有加法模型和乘法模型兩種模式,加法模型的核心公式如下:

y(t)=g(t)+s(t)+h(t)+?t

其中,g(t)代表趨勢項,s(t)代表季節項,h(t)代表節假日項(或者泛指外部變量), ?t代表噪聲項。

趨勢項用于擬合時間序列非周期性的趨勢變化,例如:上升、下降趨勢。按照趨勢模式,可分為線性趨勢和非線性趨勢,線性趨勢的公式為:

g(t)=kt+m

非線性趨勢的公式為:

圖片

其中,C表示上限容量,即g(t)所能達到的上界;k表示增長率;m表示偏移參數,趨勢項斜率發生變化的轉折點。調整m可以對曲線進行左右平移。在具體的實現中,C和k都是時間t的函數,且k的變化是不連續的,為了使g(t)連續會引入一系列復雜的變換,在此不贅述。

季節項用于擬合周、月、季等的周期性變化趨勢,使用傅里葉級數來逼近:

圖片

圖片

則,s(t)=X(t)β,β是需要學習的圖片服從正態分布N(0,σ2)。

其中,P表示周期(年用365.25,周用7),N表示使用的逼近項數目(年用10,周用3)。

節假日項用于表示潛在的跳變點對預測的影響,例如:節假日、突發事件等。由于每個節假日對時間序列的影響程度不一樣,因此,不同的節假日可以看成相互獨立的模型。并且可以為不同的節假日設置不同的前后窗口值,表示該節假日會影響前后一段時間的時間序列。假設現在有L種不同的節假日,Di表示節假日窗口的日期集合,節假日項可表示為:

Z(t)=[1(t∈D1,…,1(t∈DL)]

h(t)=Z(t)κ

其中,κ同樣服從正態分布N(0,ν2),ν叫做holidays_prior_scale,默認值是10,當值越大時,表示節假日對模型的影響越大;當值越小時,表示節假日對模型的效果越小。

最后,噪聲項用于表示未預測到的隨機波動。

根據以上介紹,Prophet模型其實是在訓練:趨勢項里的k,m;季節項里的β;節假日項里的κ;以及誤差項?t。Prophet模型適用于預測符合以下條件的時間序列數據:

  • 訓練數據:擁有至少一個完整周期的數據,讓模型完整學習規律;
  • 數據趨勢:數據有一定正常的周期效應,例如:周末效應、季節效應等;
  • 跳變情況:明確可能發生跳變的時間點及窗口期,例如:雙十一、春節等;
  • 缺失值情況:歷史數據的缺失值和異常值保持在合理范圍內。

3.2.2 Informer

Informer是一種基于Transformer架構的時間序列預測模型。Transformer由自注意力機制的編碼器和解碼器組成。Informer的設計目標是解決傳統的時間序列預測模型在長序列和多尺度預測上的挑戰,以便模型能夠更好地捕捉序列中的長期依賴關系和全局上下文信息。

Informer的關鍵特點包括:

  • 一種稀疏自注意力機制,在時間復雜度和內存使用方面達到O(LlnL)。
  • 自注意力蒸餾機制,通過對每個自注意力層結果上進行一維卷積,再通過一個最大池化層,對每層輸出減半來突出主導注意力,并有效地處理過長的輸入序列。
  • 并行生成式解碼器機制,對長時間序列進行一次前向計算輸出所有預測結果而不是逐步的方式進行預測,這大大提高了長序列預測的推理速度。

圖片

Informer在時間序列預測任務中取得了很好的性能,尤其在長序列和多尺度預測上表現出色。它已經被廣泛應用于氣象預測、交通流量預測、金融市場預測等領域。論文中提到模型在ETT(變壓器溫度)、ECL(電力消耗)、Weather(天氣)等標準數據集上達到SOTA。

3.2.3 Autoformer

之前基于Transformer的時間序列預測模型Informer,通過自注意力機制來捕捉時刻間的依賴,在時序預測上取得了一些進展。但是在長期序列預測中,仍存在不足:

  • 長序列中的復雜時間模式使得注意力機制難以發現可靠的時序依賴。
  • Informer不得不使用稀疏形式的注意力機制來應對二次復雜度的問題,但造成了信息利用的瓶頸。

為突破上述問題,作者提出了名為Autoformer的模型,主要包含以下創新:

  • 突破將序列分解作為預處理的傳統方法,提出深度分解架構(Decomposition Architecture),能夠從復雜時間模式中分解出可預測性更強的組分。
  • 基于隨機過程理論,提出自相關機制(Auto-Correlation Mechanism),代替點向連接的注意力機制,實現序列級連接和O(LlnL)復雜度,打破信息利用瓶頸。

圖片

時間序列分解是指將時間序列分解為幾個組分,每個組分表示一類潛在的時間模式,如周期項,趨勢項。由于預測問題中未來的不可知性,通常先對過去序列進行分解,再分別預測。但這會造成預測結果受限于分解效果,并且忽視了未來各個組分之間的相互作用。作者提出深度分解層,將序列分解作為Autoformer的一個內部單元,嵌入到編碼器-解碼器中。在預測過程中,模型交替進行預測結果優化和序列分解,即從隱變量中逐步分離趨勢項與周期項,實現漸進式分解。

序列分解單元基于滑動平均思想,平滑周期項、突出趨勢項:

Xt= AvgPool(Padding(χ))

XS=X-Xt

其中,χ為待分解的隱變量,Xt,XS分別為趨勢項和周期項,將上述公式記為:Xt,XS=SeriesDecomp(χ)。

此外,Autoformer通過自相關機制來實現高效的序列級連接,從而擴展信息效用。觀察到,不同周期的相似相位之間通常表現出相似的子過程,作者利用這種序列固有的周期性來設計自相關機制,包含基于周期的依賴發現和時延信息聚合。

最終,作者表示在長期預測問題中,Autoformer在能源、交通、經濟、氣象、疾病五大時序領域大幅超越之前SOTA,實現38%的相對效果提升。

3.2.4 DLinear

DLinear的作者嘗試質疑基于Transformer的模型進行時間序列預測的有效性。作者認為基于Transformer的模型忽略了有序的連續點之間的時間關系,時序上的位置信息在時序預測中時十分重要的,因此提出DLinear模型。

實際上,DLinear的結構非常簡單,僅僅是在Autoformer 的分解層后面加上全連接層。模型使用分解層將輸入時間序列分解為殘差部分(季節性)和趨勢部分。隨后每個部分都被輸入到各自的線性層,輸出各自的結果。最終的輸出就是兩部分輸出的和。作者表示DLinear在能源、交通、經濟、氣象、疾病等領域的數據集上超越了其他深度學習模型。

圖片

3.2.5 TimesNet

現實世界的時序數據往往是多種過程疊加,如交通數據的日變化和周變化,天氣數據的日變化和年變化等。這種內在的多周期屬性使得時序變化極其復雜。

對于某一特定周期過程,其內部每個時間點的時序變化不僅僅與臨近時刻有關,也與鄰近周期高度相關,即呈現周期內與周期間兩種時序變化。其中周期內變化對應著一個周期內的短期過程,周期間變化則可以反應連續周期間的長期趨勢。

TimesNet嘗試從一個全新的多周期視角分析時序變化。一維時間序列通過快速傅里葉變換選取多個周期,基于多個周期對一維數據進行折疊,得到多個二維張量,每個二維張量的列和行分別反應了周期內與周期間的時序變化。通過這種方式將一維時序數據擴展至二維空間進行分析。

TimesNet由堆疊的若干個TimesBlock組成,每個TimesBlock都有時序數據升維、2D卷積提取表征、中間結果降維、自適應融合等步驟。輸入序列X首先經過嵌入層得到深度特征圖片。對于第l層時間塊,輸入為圖片,經過時間塊內部的處理得到輸出:圖片,注意到每一層時間塊之間都進行了殘差連接。

時間塊的內部的處理過程:

1)時序數據升維

首先通過快速傅里葉變換對輸入的一維時序特征圖片提取周期,選取強度最大的k個頻率{f1,…,fk},他們對應著最顯著的k個周期{p1,…,pk},然后將其轉化成二維張量。相關公式如下:

圖片

其中,圖片代表每個頻率分量的強度,Period代表快速傅里葉變換以及選取topk個頻率和周期的過程。Reshape代表降一維結果轉換成二維張量的過程,Padding表示在卷積過程中的補零操作。

2)2D卷積提取表征

對于每個頻率分量的二維張量圖片,使用2D卷積提取信息,此處使用Inception模型:

圖片

3)中間結果降維

將二維特征轉換至一維空間,繼續進行信息聚合: 

圖片

其中,Trunc表示將步驟1)中Padding操作補充的零去除。

4)自適應融合

將上一步中得到的一維表征圖片,與其對應的頻率強度進行加權求和,得到一個時間塊的最終輸出。

圖片

通過時間塊的設計,模型完成了從多個周期分別提取二維時序變化,再進行自適應融合的時序建模過程。各個時間塊之間進行殘差連接,便于梯度的直接回傳,可加速模型收斂、避免梯度消失。

最終TimesNet在能源、交通、經濟、氣象、疾病等領域的數據集上達到最佳。

圖片

圖片

以上就是我們用于比較預測效果的模型,由于本文側重實踐,如果想要更深入地了解各個模型的具體細節,可以自行閱讀原論文,論文鏈接在參考文獻中給出。

四、實戰

4.1 數據預處理

經過分析,自然狀態下的某頻道的流量、訂單量等指標具有明顯的周期性和趨勢性,但這種周期性和趨勢性在疫情期間無法有效體現,如圖紅框所示,在疫情期間各項指標的時序數值,較之疫情前后沒有明顯的周期性和趨勢性,受疫情政策的影響較大。而經過22年底至23年初國內對疫情的快速過峰,23年的各項指標序列基本恢復了疫情前的周期性和趨勢性,我們的目標是預測23年恢復自然狀態之后的指標,因此考慮剔除疫情期間(2020/01/20~2023/01/19)的數據。

圖片

以某頻道流量為例,畫出去除疫情數據后的走勢圖,紅線是以年為尺度進行分割,可以看出數據具有顯著的年周期性。

圖片

4.2 模型訓練與評估

以各項指標的歷史數據和其他特征作為數據集,利用3.2中介紹的模型進行預測(Prophet模型只接受單輸入,故不作統一比較)。下面以某頻道流量為例進行介紹。數據經過脫敏處理。

經測試:Informer的效果在絕大部分情況下均不及Autoformer,因此后續的對比在Autoformer、DLinear和TimesNet中進行。

首先定義輸入數據的幾個參數:

  • model_in:模型的輸入維度,設定為20;
  • model_out:模型的輸出維度,設定為20;
  • seq_len:訓練模型時編碼器時間窗口的大小,可理解為模型回看的時間周期;
  • label_len:訓練模型時解碼器時間窗口的大小,label_len不要超過seq_len,一般設置為seq_len的一半;
  • pred_len:預測窗口的大小,即對未來預測多少個時間步,本文中pred_len等于30。

評價指標:MSE(均方誤差)和MAE(平均絕對誤差)。

* Autoformer                                

圖片

* DLinear

圖片

* TimesNet

圖片

我們分別對不同的seq_len和label_len組合進行了對比實驗,測試集的結果顯示,當seq_len=180、label_len=90時,預測的結果最好。模型之間的橫向對比顯示,TimesNet的效果最好。

此外,針對可能發生的突變點,我們進行了T=120的預測,結果如下:

圖片

圖像表明,TimesNet模型也無法捕捉到突變點的變化,這可能是訓練數據太少導致的。為了能夠捕捉到突變點,通過集成Prophet等對突變點較為敏感的傳統模型,結果表明集成模型在保證預測精度的同時,還能較好地捕獲突變點的變化,且MSE和MAE均小于原模型,如下圖所示。

值得一提的是,以上方法的輸入輸出的維度是可以自己定義的,即可以單輸入單輸出、多輸入單輸出、多輸入多輸出等。

圖片

4.3 模型部署與回測

在離線訓練模型完畢之后,我們將模型部署到了線上,每天更新T+30D的結果,流程如圖所示:

圖片

模型上線后需要一定的監控機制,以便在模型預測的效果不好的時候及時修正模型。我們持續監控預測值和真實值的T+3D、T+7D、T+14D、T+21D、T+30D偏差,并以報表的形式展現。

圖片

以某頻道為例,我們應用模型預測五一節假日某頻道的流量,平均預測偏差率為+1.03%,峰值預測偏差率為+0.43%,模型達到了非常優秀的效果。另外,選取五一假期的結束日期作為截止點,3天、7天、14天、21天、30天的平均預測偏差率分別為:+3.7%、+1.8%、+1.4%、+5.5%、-9.6%。

圖片

圖片

五、總結與展望

本文從預測關鍵指標的任務出發,論述了時序預測的相關方法、模型的訓練與評估、以及模型的在線部署與回測,其中部分內容做了簡化處理。

總體而言,近幾年來基于深度學習的時序預測的方法是在蓬勃發展的。但是,深度學習的方法很大程度上依賴于數據量,訓練數據越多,模型就更的容易從中發現時序潛在的模式。而在現實場景中,數據量并不總是充足的,因此會影響深度學習模型的效果,有時甚至不如傳統的方法。另一方面,由于時序數據本身帶有公式化的數學特性,深度學習方法能否提供形式化的表征也是一種未知數。

不過,隨著時間的發展,數據是會越來越多的,同時,目前越來越多的研究將傳統的時序預測方法融合進深度學習時序預測模型中,這也是將數學特性融入深度學習方法的一種嘗試。

在今后我們還將繼續對基于深度學習的時序模型進行優化,如構造更多特征和協變量、增加預測置信區間、完善模型的評判標準等。

責任編輯:張燕妮 來源: 攜程技術
相關推薦

2024-09-30 09:29:18

2023-12-29 09:42:28

攜程開發

2022-08-06 08:23:47

云計算公有云廠商成本

2023-07-14 07:15:13

2023-05-03 20:27:49

獨立預測聯合預測多元時序

2022-11-29 21:00:39

技術搜索

2023-06-06 16:01:00

Web優化

2013-09-09 13:48:28

移動應用指標運營

2021-08-10 08:44:13

系統性能優化

2023-01-10 10:06:18

數據備份

2024-11-05 09:56:30

2021-04-26 23:03:48

運維并發Linux

2017-07-06 19:57:11

AndroidMVP攜程酒店

2022-06-17 10:44:49

實體鏈接系統旅游AI知識圖譜攜程

2023-08-18 10:49:14

開發攜程

2020-10-16 12:00:47

勒索軟件駐留時間攻擊

2023-12-08 09:30:11

模型系統工具

2022-07-15 12:58:02

鴻蒙攜程華為

2023-06-28 10:10:31

攜程技術

2016-10-13 14:44:53

DevOpsRoi
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频一区二区三区 | 二区中文字幕 | 中文字幕在线免费 | 国产成人免费视频网站高清观看视频 | 日韩在线观看一区二区三区 | 国产成人一区二区三区精 | 国产一区欧美 | jav成人av免费播放 | 日本精品视频在线 | 亚洲高清中文字幕 | 黄色高清视频 | 国产午夜精品一区二区三区在线观看 | av黄色在线 | 亚洲一区二区在线 | 在线国产一区 | 国产在线观看网站 | 中国黄色毛片视频 | 久草在线在线精品观看 | 国产精品伦一区二区三级视频 | 天天操夜夜操 | 草在线| 国产91网站在线观看 | 一区二区三区国产 | 国产精品国产三级国产aⅴ无密码 | 97精品超碰一区二区三区 | 女同久久 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲一区二区三 | 国产精品免费一区二区 | 成人在线观看免费爱爱 | 中文字幕综合在线 | 国产精品美女www爽爽爽视频 | 日韩国产一区二区三区 | 久久午夜电影 | 久久久激情 | 欧美综合在线观看 | 亚洲精品久久久久久国产精华液 | 久久精品| 一区二区三区在线 | 99免费| 女朋友的闺蜜3韩国三级 |