Event-Driven Representation Learning in Sparse Financial Time Series

A Macro-Contextual Conceptual Framework and Methodology

Niran Pravithana

II. Event Representation & Embedding Framework

Section นี้มีหน้าที่เชื่อม "ข้อมูลจริงที่ทีมคุณถืออยู่" เข้ากับกรอบเชิงคณิตที่โมเดลสามารถเรียนรู้ได้ โดยมุ่งให้

  • รองรับ sparse, asynchronous, heterogeneous time events
  • ผสาน asset-level events และ macro-level events ในลำดับเดียว
  • สามารถนำไป implement ได้โดยตรงในเชิงระบบ

2.1 Event Structure (โครงสร้างเหตุการณ์เชิงทางการ)

ให้เหตุการณ์เดี่ยวหนึ่งรายการเขียนในรูป

$$z_i = (t_i, x_i, v_i)$$

โดย

  • $t_i$ = เวลาเกิดเหตุการณ์
  • $x_i$ = ชนิดของเหตุการณ์ (feature / indicator / macro tag)
  • $v_i$ = ค่าเชิงปริมาณ (เช่น Boolean, discrete, หรือค่าเชิงต่อเนื่อง)

นิยาม โดเมนของเหตุการณ์ทั้งหมด เป็น

$$x_i \in \mathcal{X}_{asset} \cup \mathcal{X}_{macro}$$

กล่าวคือ เหตุการณ์อาจเป็น

  • สัญญาณระดับบริษัท/หุ้น (micro-structure / strategy / factor signal)
  • เหตุการณ์ระดับมหภาค (QE, QT, crisis flag, policy shock ฯลฯ)

2.2 Unified Event Sequence (ลำดับเหตุการณ์แบบรวมเดียว)

สำหรับสินทรัพย์ $a$ ให้มีชุดเหตุการณ์เฉพาะตัว

$$\mathcal{S}^a = \{z_i^a\}_{i=1}^{N_a}$$

และเหตุการณ์มหภาคส่วนกลางร่วมกันทั้งตลาด

$$\mathcal{M} = \{z_j^{macro}\}_{j=1}^{K}$$

เราสร้างลำดับเหตุการณ์ "แบบรวมเดียว" โดย

$$\tilde{\mathcal{S}}^a = \text{merge-sort}(\mathcal{S}^a, \mathcal{M})$$

ผลลัพธ์คือ sequence เดียวที่มีทั้ง

  • เหตุการณ์ของหุ้นตัวนั้น
  • เหตุการณ์ macro ที่เกิดในช่วงเวลาเดียวกัน

และเรียงลำดับตามเวลา ทำให้โมเดล มองเห็นความสัมพันธ์เชิงเวลาแบบต่อเนื่อง ระหว่างเหตุการณ์สองระดับในโครงสร้างเดียว

2.3 Time Encoding & Temporal Geometry

เนื่องจากข้อมูลเป็น asynchronous / irregular time series ค่าช่วงเวลาระหว่างเหตุการณ์จึงมีความหมายเชิงโครงสร้าง จึงนิยาม

$$\Delta t_i = t_i - t_{i-1}$$

และแทนเป็น embedding

$$\tau_i = \phi_{\tau}(\Delta t_i)$$

ซึ่งอาจเลือกเป็น

  • log-scale bucket
  • continuous projection layer
  • หรือ positional-style time kernel

หลักคิดคือ ให้โมเดล "รับรู้จังหวะเวลา (tempo)" ของ pattern ไม่ใช่เพียงลำดับเหตุการณ์เฉย ๆ

2.4 Event Token Representation (ตัวแทนเวกเตอร์ของเหตุการณ์)

เรากำหนดฟังก์ชันแปลงเหตุการณ์เป็นเวกเตอร์

$$e_i = f_{\theta}(x_i, v_i, \tau_i)$$

โดยแยกย่อยเป็นองค์ประกอบ

$$e_i = \big[ \text{type-emb}(x_i), \text{feature-emb}(x_i), \text{value-proj}(v_i), \tau_i \big]$$

คำอธิบายเชิงระบบ:

  • type-emb — บอกว่า token นี้เป็น asset-event หรือ macro-event
  • feature-emb — แยกชนิดของสัญญาณ เช่น Feature-ID, Regime-ID
  • value-proj — รองรับ Boolean / discrete / continuous ในรูปเวกเตอร์เดียวกัน
  • $\tau_i$ — ให้ความหมายกับช่วงเวลา

โครงสร้างนี้ทำให้ทีม dev สามารถ map ฟีเจอร์จริง → token embedding ได้ตรงไปตรงมา

2.5 Sparsity Awareness & Event Importance (เชิงออกแบบ)

เนื่องจากจำนวนฟีเจอร์มีมาก แต่คาดว่า มีเพียงส่วนน้อยที่มีนัยเชิงสาเหตุในบางบริบท จึงเพิ่มชั้น feature-gating function

$$\alpha_i = g_{\psi}(x_i)$$

และใช้เป็น scaling

$$\tilde{e}_i = \alpha_i \cdot e_i$$

พร้อม regularization เพื่อส่งเสริม sparsity

$$\Omega(\psi) = \lambda \|\alpha\|_1$$

สิ่งนี้ไม่ได้บังคับลดฟีเจอร์ แต่ทำให้ representation ค่อย ๆ คัดเลือก feature ที่สำคัญด้วยตนเอง

2.6 การตีความเชิงการพัฒนา (Implementation-Ready View)

ในระดับระบบ ทีมสามารถมอง token หนึ่งรายการเป็น JSON เช่น

{
  "t": 1712001234,
  "type": "asset_event",
  "feature": "feature_X_217",
  "value": 1,
  "delta_t": 5400
}

แล้ว mapping ผ่าน embedding layer ตามสมการด้านบน จะได้เวกเตอร์ $e_i$ ซึ่งส่งเข้าสู่โมเดลลำดับ

กล่าวอีกแบบ:

  • ฝั่ง data engineering → ดูแลการสร้าง sequence
  • ฝั่ง ML model → ทำงานบน embedding + sequence layer เท่านั้น

2.7 จุดเชื่อมไปยังโมเดลลำดับ

เมื่อได้ลำดับเวกเตอร์

$$\mathbf{E}^a = (e_1, \dots, e_n)$$

โมเดลลำดับ (เช่น Transformer / TCN) จะเรียนรู้

$$\mathbf{H}^a = F_{\Theta}(\mathbf{E}^a)$$

ซึ่งเป็น foundation ของ

  • การเรียนรู้ pattern accumulation
  • การทำ regime-conditioned analysis ภายหลัง

Section ถัดไปจะอธิบาย backbone และ training objective อย่างเป็นทางการ