III. Model Architecture & Sequence Learning Framework
Section นี้มุ่งอธิบายว่า เมื่อเราได้ลำดับเหตุการณ์ในรูป token embedding จาก Section 2 แล้ว โมเดลจะ "เรียนรู้โครงสร้างของลำดับ" อย่างไร ภายใต้บริบทของ macro-event + asset-event ใน sequence เดียว
เราจะนำเสนอ:
- นิยามเชิงคณิตของสถาปัตยกรรม
- บทบาทของแต่ละชั้น (layer)
- เหตุผลในการออกแบบ
- การเชื่อมโยงกับ assumption ของงานวิจัย
- มุมมอง implementation-ready สำหรับทีม dev
3.1 Sequential Representation Learning — แนวคิดหลัก
สมมุติฐานพื้นฐานของงานวิจัยนี้คือ ความสัมพันธ์ที่สำคัญไม่ได้อยู่ใน "ค่าฟีเจอร์เดี่ยว ๆ" แต่เกิดจาก ลำดับของเหตุการณ์และจังหวะเวลาที่ก่อตัวขึ้น
ดังนั้น แกนกลางของแบบจำลองจึงไม่ใช่ regression model แต่เป็น sequence representation model
ให้ชุด embedding ของสินทรัพย์ $a$ คือ
หน้าที่ของโมเดลลำดับ คือหาฟังก์ชัน
โดยที่
- $h_i$ = representation หลังโมเดลประมวลลำดับจนถึงตำแหน่ง $i$
- รวมข้อมูลของทั้ง ลักษณะของ event นั้น ๆ, ความสัมพันธ์กับเหตุการณ์ก่อนหน้า, และตัวตนของ macro events ที่ปรากฏในลำดับ
กล่าวเชิงความหมาย: $h_i$ คือ "ความเข้าใจของโมเดล ณ ช่วงเวลานั้น" ซึ่งสะท้อน pattern ที่กำลังก่อตัวอยู่
3.2 Backbone Candidates: ทำไมต้องใช้โมเดลลำดับ
โมเดลที่เหมาะสมกับโจทย์นี้ต้องรองรับ:
- ลำดับไม่สม่ำเสมอ (irregular + sparse)
- ประวัติย้อนหลังยาว (long-horizon memory)
- เหตุการณ์มีหลายระดับเชิงบริบท (asset + macro)
- ปฏิสัมพันธ์ไม่เป็นเชิงเส้น (non-linear interaction)
แบบจำลองพื้นฐานที่พิจารณา รวมถึง:
- Transformer-based Event Sequence Model
- Temporal Convolutional Network (TCN)
- GRU / LSTM (เป็น baseline)
งานวิจัยนี้จะเลือก Transformer เป็นโมเดลหลัก และใช้ TCN / GRU เพื่อเทียบเชิงทดลอง
เหตุผลเชิงทฤษฎี:
- Transformer รองรับ long-range dependency ผ่าน self-attention
- เหมาะกับ token ที่เป็นทั้ง micro และ macro events
- โครงสร้าง align กับ conceptual idea: "ให้เหตุการณ์อธิบายกันเองผ่าน attention"
3.3 Transformer-Based Event Sequence Model (Formal)
ให้ input คือ $(e_1,\dots,e_n)$
เราผ่าน linear projection
จากนั้นเข้าสู่ multi-head self-attention
โดย
ผลลัพธ์หัวที่ $h$
รวมหลายหัว
จากนั้นผ่าน feed-forward layer
พร้อม residual + layer norm
กล่าวเชิงตีความ:
- โมเดลไม่ได้อ่านเหตุการณ์ทีละตัวแบบลำดับตรง ๆ
- แต่ให้เหตุการณ์ทุกตัว มองย้อนกลับและเชื่อมโยงกัน
- macro event token จึงมีบทบาทเหมือน "บริบท" และ "จุดยึดความหมายของ sequence"
3.4 ทำไม Self-Attention จึงเหมาะกับ Macro-Event Tokens
เมื่อ macro event แทรกในลำดับ เช่น
[t1] MACRO_QE_START
[t2] FEATURE_A
[t3] FEATURE_B
[t4] FEATURE_C
attention matrix จะเรียนรู้อัตโนมัติว่า เหตุการณ์ในช่วง $t_2, t_3, t_4$ ควร "ผูก" กับ macro token ที่ $t_1$
เชิงคณิต: หาก attention weight ระหว่าง event $i$ และ macro-event $j$ สูง
แปลว่า representation ของเหตุการณ์ฝั่ง asset ถูก conditioned บน macro context โดยตรง
นี่คือหัวใจของวิธีวิจัยนี้: ไม่ต้องเขียนกฎเอง ให้โมเดลค้นหาว่า "macro ใดเกี่ยวข้องกับ pattern ใด"
3.5 Positional & Temporal Conditioning
ในข้อมูลจริง ตำแหน่งในเวลาไม่สำคัญเท่า "จังหวะเวลาที่ต่างกัน"
ดังนั้น เราใช้ time-gap embedding (จาก Section 2)
จึงทำให้ representation ของเหตุการณ์มีความหมายดังนี้:
- ไม่ใช่แค่ "เหตุการณ์เกิด"
- แต่คือ "เหตุการณ์เกิดหลังจากเหตุการณ์ก่อนหน้า X หน่วยเวลา"
สิ่งนี้ช่วยให้โมเดลเรียนรู้ความหมายเช่น
- pattern เดียวกัน แต่ pace เร็ว / ช้า → อาจมีความหมายต่างกัน
- macro shock + short-interval events → อาจสำคัญกว่า macro + slow pattern
กล่าวอีกแบบ: โมเดลเรียนรู้ "geometry of time" ไม่ใช่แค่ลำดับแบบเรียบ ๆ
3.6 Sequence-Level Representation
เพื่อประเมินแนวโน้มในช่วงอนาคต เราต้องสกัด representation ระดับลำดับทั้งหมด
ให้ $h_1, \dots, h_n$ เราสร้าง summary vector
เช่น mean pooling หรือ attention pooling (แนะนำ)
attention pooling:
$\beta_i$ บอกว่าเหตุการณ์ใดมีความสำคัญต่อ pattern โดยรวม → นำไปตีความภายหลังได้ (explainability)
3.7 Output Head — Probability of Outcome Event
ให้ representation สุดท้ายเป็น $u$ เรานิยาม
หรือในกรณี multi-class
loss function
ความหมายสำคัญ:
- โมเดลพยายามเรียนรู้ว่า ลำดับก่อนหน้า มีความสัมพันธ์กับ outcome event มากน้อยแค่ไหน
- ไม่ใช่การทำนายราคาต่อเนื่อง
3.8 Regime-Conditioned Representation (Implicit Conditioning)
เนื่องจาก macro events อยู่ในลำดับเดียว conditioning เกิดแบบ implicit:
เราสามารถนิยามเชิงความหมายว่า
นี่คือ Regime-Aware Representation Learning โดยไม่ต้องสร้างโมเดลหลายยุค
3.9 Feature-Gated Attention (เชิงออกแบบเชิงเสริม)
เพื่อสะท้อนสมมุติฐาน: มีเพียงบางฟีเจอร์ที่สำคัญ แต่ความสำคัญขึ้นกับบริบทใน sequence
เราปรับ attention weights ด้วย gating
พร้อม sparsity penalty
เชิงความหมาย:
- โมเดลเลือก "กลุ่มเหตุการณ์สำคัญ"
- โดยไม่บังคับเลือกด้วยมนุษย์
3.10 Implementation View — สำหรับทีมพัฒนา
ทีมสามารถมองโครงสร้างเป็น pipeline:
raw events
→ build unified sequence (asset + macro)
→ event embedding
→ transformer sequence encoder
→ sequence summary (attention pooling)
→ output head
→ training objective
ใน framework เช่น PyTorch / JAX:
- Event = token
- Macro event = token ประเภทหนึ่ง
- Time gap = positional input
- Sequence model = standard Transformer layer
- Interpretability = attention map + pooling weight
ไม่มีส่วนไหนต้องออกแบบเป็นกฎเอง ทุกอย่างเกิดจากการเรียนรู้เชิงสถิติ
3.11 เหตุผลเชิงวิจัยของสถาปัตยกรรมนี้
สถาปัตยกรรมนี้ตอบโจทย์สมมุติฐานหลัก:
- รองรับ การก่อตัวของ pattern ระยะยาว
- ข้ามระดับ micro ↔ macro
- รักษา representation เดียวข้ามทุกยุค
- อนุญาตให้ pattern บางแบบมีความหมายเฉพาะบางยุค และบางแบบคงอยู่ข้ามยุค
- ทำให้เราวิเคราะห์เชิงหลังได้ เช่น per-era attention map, per-feature gating, per-context behavior
3.12 จุดเชื่อมไป Section ต่อไป
Section นี้อธิบาย "โมเดลเรียนรู้ลำดับและบริบทได้อย่างไร"
Section ถัดไปจะไปสู่: Training Objective, Regularization, และ Regime-Aware Evaluation ซึ่งจะลงลึกในเรื่อง
- วิธีฝึกโมเดลแบบ time-consistent
- วิธีหลีกเลี่ยง leakage
- กลยุทธ์ imbalance ของ outcome
- การตีความ representation หลังฝึก