關于多元時間序列中的公平性問題
?今天給大家介紹一篇2023.1發在arixv的多元時序預測文章,出發點比較有趣:如何提升多變量時間序列的公平性。文中采用的建模方法都是之前在時空預測、Domain Adaptation等中使用過的常規操作,但是對于多變量公平性這個點的提出比較新穎。
- 論文標題:Learning Informative Representation for Fairness-aware Multivariate Time-series Forecasting: A Group-based Perspective
- 下載地址:https://arxiv.org/pdf/2301.11535.pdf
1.多元時間序列的公平性
公平性問題,在機器學習領域中是一個宏觀的概念。機器學習中公平性的一種理解是,一個模型對于不同的樣本的擬合效果的一致程度。如果一個模型在某些樣本上效果很好,另一些樣本上效果不好,那么這個模型的公平性就比較差。例如,一個常見的場景是推薦系統中,模型對于頭部樣本的預測效果優于尾部樣本,這就體現了模型對于不同樣本的預測效果存在不公平性。
回到多元時間序列預測問題中,公平性指的是模型是否對各個變量的預測效果都比較好。如果模型對于不同變量的預測效果差異很大,那么這個多元時間序列預測模型是不公平的。例如下圖中的例子,第一行表格是各種模型在各個變量上預測效果MAE的方差,可以看到不同模型多存在一定程度的不公平性。下圖的序列是一個例子,一些序列的預測效果比較好,而另一些序列的預測效果較差。
2.不公平現象的成因和解法
為什么會造成不公平性呢?無論是在多元時間序列中,還是在其他機器學習領域,造成不同樣本預測效果差異較大的一大原因是,不同樣本的特點不同,模型在訓練過程中可能被某些樣本的特點主導,導致模型對主導訓練的樣本預測效果好,而對于非主導樣本的預測效果差。
在多元時間序列中,不同的變量,其序列pattern可能存在很大的差異。例如上面圖的例子,大部分序列都是平穩的,主導了模型的訓練過程。而少數序列呈現出了和其他序列不同的波動性,導致模型在這部分序列上預測效果較差。
如何解決多元時間序列中的不公平現象呢?一種思路是,既然造成不公平現象的原因是不同序列的特點不同,如果能將各個序列之間的共性,以及各個序列之間的差異性分解開,獨立進行建模,就能緩解上述問題。
這篇文章就建立在這個思路之上,整體架構是利用聚類的方法將多變量序列分組,并得到每組的共性特征;進一步使用對抗學習的方法,從原始表示中剝離掉各個組特有的信息,得到公共的信息。通過上述過程,實現來了公共信息和序列特有信息的剝離,再基于這兩個部分信息進行最終預測。
3、實現細節
整體的模型結構主要包括4個模塊:多變量序列關系學習、時空關系網絡、序列聚類、分解學習。
多變量序列關系學習
多元時間序列的一個重點是學習各個序列之間的關系。本文采用的是Spatial-Temporal的方法學習這個關系。由于多元時間序列不像很多時空預測任務,各個變量之間的關系可以預先定義好,因此這里使用了鄰接矩陣的自動學習方法。具體的計算邏輯為,為每個變量生成一個隨機初始化的embedding,然后使用embedding的內積,以及一些后處理,計算兩兩變量之間的關系,作為鄰接矩陣對應位置上的元素,公式如下:
這種自動學習鄰接矩陣的方法,在時空預測中很常用,在Connecting the Dots: Multivariate Time Series Forecasting with Graph Neural Networks(KDD 2020)、REST: Reciprocal Framework for Spatiotemporal-coupled Prediction(WWW 2021)等文章中,都采用了這種方式。我在星球文章KDD2020經典時空預測模型MTGNN代碼解析中詳細介紹過相關模型的原理實現,感興趣的同學可以進一步閱讀。
時空關系網絡
有了鄰接矩陣后,文中采用了圖時序預測模型,對多變量時間序列進行時空編碼,得到每個變量序列的表示。具體的模型結構很類似于DCRNN,在GRU基礎上,每個單元的計算引入了GCN模塊。可以理解為,在正常GRU的每個單元的計算過程中,引入了鄰居節點的向量做一次GCN,得到更新后的表示。關于DCRNN的實現代碼原理,可以參考DCRNN模型源碼解析這篇文章。
序列聚類
在得到每個變量時間序列的表示后,下一步是將這些表示聚類,以此得到各個變量序列的分組,進而提取每組變量特有的信息。文中引入下面的損失函數來指導聚類過程,其中H表示每個變量序列的表示,F表示每個變量的序列跟K個類別的從屬關系。
這個損失函數的更新過程需要采用EM算法,即固定序列表示H,優化F,以及固定F,優化H。文中采用的方法是,訓練幾輪模型得到表示H后,使用SVD更新一次矩陣F。
分解學習
分解學習模塊的核心是將各個類別變量的公共表示和私有表示區分開,公共表示指的是各個類簇變量的序列共有的特點,私有表示指的是每個類簇內變量序列獨有的特點。為了實現這個目的,文中采用了分解學習和對抗學習的思路,將各個類簇的表示,從原始的序列表示中剝離開。類簇表示代表每個類的特性,剝離后的表示代表所有序列的共性,利用這個共性的表示進行預測,可以實現對各個變量預測的公平性。
文中利用對抗學習的思路,直接計算公共表示和私有表示(也就是聚類得到的每個類簇的表示)的L2距離,以此作為loss反向優化,讓公共部分表示和私有表示的差距盡可能拉大。此外,還會增加一個正交約束,讓公共表示和私有表示的內積接近0。
4、實驗結果
文中的實驗主要從公平性和預測效果兩個方面進行了對比,對比的模型包括基礎時序預測模型(LSTNet、Informer)、圖時序預測模型等。在公平性上,采用的是不同變量預測結果的方差,通過對比,本文的方法公平性相比其他模型要有比較明顯的提升(如下表)。
在預測效果上,本文提出的模型也基本能夠取得和SOTA相當的效果:
5、總結
如何保證模型的公平性,是機器學習很多場景都面臨的問題。本文將這一維度的問題引入到了多元時間序列預測中,并利用時空預測、對抗學習的方法進行了比較好的解決。