top of page

TabTransformer 重寫足球事件的表示方式

  • 2天前
  • 讀畢需時 7 分鐘

職業足球每場比賽大約記錄 1,700 個 on-ball events。要用這批數據計 xG、估動作價值、做球員風格分析,目前的常規做法是每個任務各自準備特徵、各自訓練一個模型,人手 feature engineering 的成本重複支付。

論文中走了相反的路線:先在匿名化的事件數據上預訓練一個 TabTransformer,把每一個事件壓成一條 911 維的 dense vector,之後三個結構完全不同的下游任務共用同一份表示,不再重新訓練 encoder。


本文重點

論文真正處理的問題,是 categorical feature 的表示方式。事件數據裏面的 action type、body part、outcome 全部是字串,主流做法用 one-hot 或 ordinal 編碼,結果是 cross 與 through ball 之間的距離,同 cross 與 tackle 之間的距離完全一樣,即使前兩者共享 final-third 傳送的空間與戰術脈絡。

作者的答案是把 self-attention 直接放在 categorical feature 的 embedding 之上,再以 Masked Language Modeling 做自監督預訓練,讓模型自行學到特徵組合的語意。評估重點放在 probability calibration:以 Brier score 衡量,學到的表示在 xG 與 VAEP 兩個任務上都勝過對應的 baseline。


一、one-hot 與 ordinal

事件數據是異質的 tabular data:座標、時間戳屬連續變量,動作類型、身體部位、動作結果屬 categorical。機器學習模型不能直接吃字串,所以要編碼。

One-hot 把每個類別變成長度為 N 的二元向量。這樣做數值上可行,但所有類別彼此等距,語意上相關的動作不會比無關的動作更接近;高基數特徵例如球員 ID 還會令維度爆炸,加重樹模型的負擔。

Ordinal encoding 把每個類別映射成一個整數,解決了維度問題,但整數之間的大小順序沒有任何意義,語意關係一樣丟失。

論文引用的對照組是 Player Vectors(Decroos 與 Davis, 2020),它由球員的比賽事件歷史導出動作類型與結果的分布,得到適合球探搜尋的低維向量。分別在於聚合層級:Player Vectors 在球員層面聚合統計,本文則為每一個事件產生一條表示,捕捉的是該事件本身各項特徵的互動,而不是執行者的統計傾向。


二、TabTransformer:自注意力放在特徵之間

模型沿用 Huang 等(2020)的 TabTransformer 架構。每個 categorical feature 經專屬的 embedding layer 映射成 d 維向量,連續特徵則保持為 scalar,不進 attention。categorical embedding 序列送入 L 層 Transformer encoder,每層由 multi-head self-attention 與 position-wise feed-forward network 加 layer normalization 組成。

關鍵在於 attention 的作用對象。Self-attention 跨越同一個事件內部的各個特徵欄位,因此模型可以學到「右腳、來自邊路的 cross」屬於語意上連貫的組合。最後把 K 個 categorical feature 的 contextualized output 與 d_con 個原始連續特徵串接,輸出維度為 K·d + d_con。

這一點也是本文同最接近的先前工作 SoccerTransformer(Rovshitz 與 Puzis, 2025)的分野。後者在事件序列層面運作,每個事件當成一個不可分割的 token,而且訓練時保留球員與球隊 ID。作者列出三項差異:attention 放在單一事件內部的特徵之間、預訓練前剔除球員與球隊 ID 以避免能力混淆、評估除進球預測外還涵蓋 VAEP。


三、匿名化的 MLM 預訓練

前處理階段先做兩件減法。球員與球隊 ID 全部移除,防止模型學到個人或球隊層面的偏差;shot end coordinates 這類 posterior feature 也剔除,因為它們已經編碼了動作結果,留下來等同 data leakage。

接着是加法。由原始數據導出幾何特徵,包括空間位移、射門角度與到球門的距離;事件位置再離散化成 16 × 12 的球場網格,產生 start zone 與 end zone 兩個新的 categorical feature,用來緩解連續座標的稀疏問題。

前處理之後保留 28 個 categorical feature 與 15 個連續特徵。以 d = 32 計,輸出維度剛好是 28 × 32 + 15 = 911。

預訓練目標採用 BERT 的 MLM:每個 categorical feature 獨立以 0.15 的機率被遮蔽,模型要用同一事件的其餘特徵把它重建出來。這個目標迫使模型建立對全部輸入特徵的整體理解,例如「右腳動作」與「進攻三區位置」的關聯,或者「長傳」與「防守區起點」的關聯。


四、數據集

全部實驗使用 StatsBomb open data。訓練集為 2015/16 球季五大聯賽(英超、西甲、德甲、意甲、法甲)1,823 場比賽,共 6,391,338 個事件。

測試集是三項完全獨立的賽事:UEFA Euro 2020(51 場,192,692 事件)、2022 世界盃(64 場,234,652 事件)與 2024 美洲盃(32 場,100,305 事件)。以俱樂部球季訓練、以國家隊賽事測試,本身就是對跨賽事泛化能力的檢驗。


五、下游任務一:xG

xG 量度一次射門的入球機率。實驗把事件數據切成 attacking sequences,定義為連續控球時段(容許不多於兩次連續的對手觸球),以射門、犯規、失去控球或出界結束。超過 48 個事件的序列截斷,不足的補零,並用 binary validity mask 把 padding 位置排除在 attention 之外。

保留的開放進攻序列中,訓練集 17,034 條,測試集 1,230 條;入球與非入球比例分別是 1:8.32 與 1:7.72。訓練集再以 9:1 分出驗證集作 checkpoint 選擇。每個事件先由預訓練的 TabTransformer 由 44 維 StatsBomb 特徵編碼成 911 維 embedding,再由一個 GRU 按時序處理整條序列,預測射門結果。

由於 xG 本質是機率估計,論文以 calibration 為首要判準:一個校準良好的模型,給出 0.2 的射門應該有兩成真的入球,與決策門檻設在哪裏無關。因此 Brier score 與 LogLoss 是主指標,F1 與 ROC-AUC 只作補充。

TabTransformer 的 Brier(0.0923)與 LogLoss(0.3173)都低於 MLP baseline(0.1010 與 0.3283),校準較佳,不過 F1 與 AUC 反而較低。StatsBomb 內建的 xG 模型整體校準最好,作者的解釋是它有更大的專有訓練集,而且用上捕捉球員與對手站位的額外空間特徵。


六、下游任務二:VAEP

VAEP 給每個 on-ball 動作一個價值,等於它令未來 k = 10 個動作內入球或失球機率的變化。實務上通常用 XGBoost、CatBoost 一類 gradient-boosted decision tree 實現。

本實驗在 TabTransformer 產出的 embedding 上訓練 CatBoost,並先用 PCA 降到 128 個成分以控制計算成本;同一組特徵上另外訓練 XGBoost、CatBoost 與 MLP 作對照,論文亦一併列出 SPADL 格式上的原始 VAEP 結果。以下只摘錄 StatsBomb 44 維特徵這一組的數字。

Score 任務:

Concede 任務:

兩個子任務的 AUC 最高值都由樹模型取得,但 Brier 的差距是另一回事:concede 任務上 TabTransformer + MLP 的 0.003 是全表最低,score 任務上則與 baseline MLP 並列 0.011。作者由此得出的結論是,改善並非單純來自資訊量更多,而是來自 dense embedding 對同一批資訊有更好的表示;論文亦註明 Brier 才是這類機率預測任務的適當評估指標。


七、下游任務三:球員風格相似搜尋

第三個任務沒有標籤,直接測試表示空間的語意結構是否合理:當一名球員離隊或退役,球會想找一個風格與戰術定位盡量接近的替代。

做法是兩層平均池化。訓練集內每名球員的所有動作先在比賽層面平均,再在 2015/16 球季層面平均,得出球員層的 embedding,然後以 cosine similarity 檢索最相似的球員。

六個位置的查詢結果都具備位置一致性,top-5 全部與查詢球員同位置。Lewandowski 的名單包括 Higuaín、Luis Suárez、Ibrahimović、Diego Costa 與 Benzema,同屬兼具終結、做球與連繫能力的前鋒;Messi 對應 Callejón、Shaqiri、Bale、Di María 與 Berardi;Iniesta 對應 Seri、Hamšík、Croce、Pogba 與 Baselli;Sergio Ramos 對應 Koscielny、Rüdiger、Koulibaly、Murillo 與 Niedermeier;Neuer 對應 Bravo、Rodríguez、Bürki、Reina 與 Trapp。

Philipp Lahm 的例子值得一提:名單前列是 Florenzi 與 Danilo,兩人都能勝任左右兩邊,與 Lahm 本身的位置多功能性吻合。

作者同時指出這組結果的弱點。相似度普遍偏高,不少直接等於 1.0,原因是球季層面的平均池化壓縮了同位置之內的變異,令球員層表示過度集中。能否用 contrastive 或更細緻的預訓練目標改善同位置的區辨力,列為後續工作。


八、限制

論文對自身的定位相當克制:主要優勢在於表示的通用性,而不是單一任務的最佳成績。同一條 911 維表示,在序列式的 xG 預測與 tabular 的 VAEP 估計兩種結構完全不同的任務上直接使用,期間沒有重新訓練 backbone encoder,這正是 BERT fine-tuning 範式的性質。

已知限制有兩項。第一,在 xG 與 VAEP score 任務上,相對針對性訓練的 gradient boosting 模型仍有差距。第二,論文尚未在數據稀缺的情境下做實證評估,而預訓練表示的價值通常正是在這種情境下最為明顯。

作者列出的後續方向包括:以定性分析檢視 embedding 的幾何結構,驗證動作類型是否形成語意叢集;設計數據稀缺的受控實驗;以及探索比單一特徵遮蔽更具表達力的預訓練目標。


總結:把表示層與任務層拆開

這篇論文的主張,可以歸結為一個工程上的分工:表示層做一次,任務層做多次。預訓練階段剝走球員與球隊身分,模型學到的是動作本身的語意,而不是球員名氣的近似值,這也是它能由五大聯賽俱樂部數據遷移到國家隊賽事的原因。

對於已經維護着一堆各自為政的事件模型的分析團隊,值得留意的訊號是 calibration 指標的改善方向:AUC 未必更好,但機率本身更可信。在需要把模型輸出當作機率直接使用的場景,這個取捨的意義不小。


W. Yang, D. Memmert, M. Klemp-Weins. A Universal Dense Football Event Representation Based on TabTransformer. arXiv:2606.09327v1 [cs.LG], 8 Jun 2026.X. Huang, A. Khetan, M. Cvitkovic, Z. Karnin. TabTransformer: Tabular Data Modeling Using Contextual Embeddings. arXiv, 2020.J. Devlin, M.-W. Chang, K. Lee, K. Toutanova. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. 2018.T. Decroos, L. Bransen, J. Van Haaren, J. Davis. Actions Speak Louder than Goals: Valuing Player Actions in Soccer. KDD, 2019.T. Decroos, J. Davis. Player Vectors: Characterizing Soccer Players' Playing Style from Match Event Streams. ECML PKDD, 2020.A. Rovshitz, R. Puzis. Transformer-based Framework for Versatile Analysis of Events Data in Soccer. MLSA, 2025.P. Robberechts, J. Davis. How Data Availability Affects the Ability to Learn Good xG Models. MLSA, 2020.M. Van Roy, P. Robberechts, T. Decroos, J. Davis. Valuing On-the-Ball Actions in Soccer: A Critical Comparison of xT and VAEP. AAAI-20 Workshop on AI in Team Sports.StatsBomb. StatsBomb Open Data, July 2024.


原文 Paper



bottom of page