Event2Vec 是一個用於學習離散事件序列(如購買記錄、日誌、臨床代碼等)嵌入的小型開源函式庫。其核心結構刻意保持簡單:歷史狀態是事件向量的累積總和,公式為 h_t = h_{t-1} + e_{x_t}(經範數裁剪),預測機率為 p(x_{t+1} | h_t) = softmax(W h_t + b)。訓練過程採用自我監督的下一個事件預測,並加入重建項以確保 h_t - h_{t-1} 能恢復 e_{x_t},無需標籤數據。由於歷史狀態是總和,任何基於歷史的線性模型(如流失或風險評分)也可分解為單個事件的線性組合:score = w·h + b = Σ_i (e_i·w) + b。雖然歐幾里得空間中的向量加法具有交換律,但訓練過程並非如此。該函式庫還支援多種非交換幾何空間,包括用於層次結構的雙曲空間(Möbius 加法)、用於循環結構的球面空間、用於記錄順序的 SO(n) 旋轉以及海森堡群。該專案最初用於伯克利實驗室 Advanced Light Source 的故障序列根本原因分析,旨在提供方向性而不依賴不透明的序列模型。程式碼以 MIT 授權發布,提供 scikit-learn 風格 API,後端基於 PyTorch,支援 CPU/CUDA/MPS 執行。

事件背景

原文提及該函式庫支援多種幾何空間,包括雙曲空間(Möbius 加法)、κ-球面投影(從雙曲到平坦再到球面的曲率調節,引用 Bachmann et al., 2020)、球面空間以及 SO(n) 旋轉和海森堡群。這些空間具有非交換性質,其中 SO(n) 旋轉因非交換性導致順序改變終點,而海森堡群則通過帶符號面積座標記錄順序。