← Kembali ke artikel
June 22, 2026
Bacaan 5 minit

Temporal Fusion Transformer untuk Ramalan Portfolio Pelbagai Ufuk

Temporal Fusion Transformer untuk Ramalan Portfolio Pelbagai Ufuk
#deep-learning
#transformer
#TFT
#forecasting
#portfolio
#quant
🧠
Part 1 of 4 · Collection
Deep Learning for Markets

Kekecewaan terbesar dalam menerapkan deep learning kepada pengurusan portfolio ialah masalah kotak hitam. Anda melatih rangkaian neural yang menghasilkan nisbah Sharpe yang mengagumkan dalam backtest, tetapi apabila strategi mula mengalami kerugian dalam pengeluaran, anda tidak tahu mengapa. Ciri input manakah yang memacu ramalan tersebut? Ufuk masa manakah yang penting? Adakah model bertindak balas terhadap isyarat makro atau hingar struktur mikro?

Google Research menangani masalah ini secara langsung dengan Temporal Fusion Transformer (TFT) -- seni bina berasaskan attention yang menyampaikan ramalan pelbagai ufuk yang kukuh sambil menyediakan kebolehtafsiran terbina dalam melalui pemberat attention dan skor kepentingan pemboleh ubah. Dalam tanda aras asal, TFT mengurangkan kerugian kuantil sebanyak 7% (P50) dan 9% (P90) secara purata berbanding model terbaik berikutnya, dan menambah baik garis dasar pesaing terkuat sebanyak 3-26% merentas set data ujian. Bagi pengurus portfolio kuantitatif, TFT menawarkan sesuatu yang jarang ditemui: model yang berkuasa dan juga telus.

Pos ini membedah seni bina TFT, menunjukkan cara menerapkannya kepada ramalan portfolio pelbagai ufuk, menelusuri pelaksanaan Python dengan pytorch-forecasting, dan membandingkannya dengan garis dasar LSTM serta transformer biasa.

Mengapa Ramalan Pelbagai Ufuk Penting untuk Portfolio

Ramalan satu langkah tradisional meramalkan satu nilai pada masa t+1t+1. Tetapi keputusan peruntukan portfolio beroperasi merentas pelbagai ufuk secara serentak. Seorang pengurus portfolio perlu mengetahui:

  • Ufuk 1 hari: Untuk pengimbangan semula intraday dan pengurusan risiko
  • Ufuk 1 minggu: Untuk anjakan peruntukan taktikal
  • Ufuk 1 bulan: Untuk peruntukan strategik dan putaran sektor
  • Ufuk 1 suku: Untuk pemposisian yang dipacu makro

Setiap ufuk mempunyai ciri nisbah isyarat-kepada-hingar yang berbeza. Pulangan jangka pendek dikuasai oleh struktur mikro dan aliran pesanan. Pulangan jangka sederhana bertindak balas terhadap momentum dan pengembalian min. Pulangan jangka panjang dipacu oleh asas dan rejim makro.

Model yang menghasilkan ramalan merentas semua ufuk ini secara serentak -- dengan anggaran kuantil bagi ketidakpastian ramalan pada setiap satu -- secara asasnya lebih berguna berbanding model berasingan untuk setiap ufuk. Inilah yang disediakan oleh TFT: diberikan tetingkap pengekod bagi pemerhatian lampau, ia menghasilkan satu set ramalan kuantil untuk τ=1,2,,τmax\tau = 1, 2, \ldots, \tau_{max} langkah ke hadapan.

Secara formal, diberikan siri masa multivariat dengan pemerhatian {yi,t,xi,t,si}\{y_{i,t}, \mathbf{x}_{i,t}, \mathbf{s}_i\} untuk entiti ii pada masa tt, di mana yy ialah sasaran, xt\mathbf{x}_t ialah ciri yang berubah mengikut masa, dan si\mathbf{s}_i ialah metadata statik, TFT mempelajari:

y^i(q,t,τ)=fq(yi,tk:t,xi,tk:t+τ,si)\hat{y}_{i}(q, t, \tau) = f_q\left(y_{i,t-k:t}, \mathbf{x}_{i,t-k:t+\tau}, \mathbf{s}_i\right)

di mana qq ialah kuantil (membolehkan ramalan kebarangkalian), kk ialah tetingkap lihat balik, dan τ\tau ialah ufuk ramalan.

Seni Bina TFT: Keseluruhan Timbunan

Timbunan Temporal Fusion Transformer: rangkaian pemilihan pemboleh ubah, rangkaian baki bergerbang, pengekod-penyahkod LSTM, dan attention yang boleh ditafsir

TFT bukan sekadar transformer generik yang dilekatkan pada siri masa. Ia merupakan seni bina yang dibina khas dengan lima komponen khusus, setiap satu menangani cabaran tertentu dalam ramalan temporal.

1. Rangkaian Baki Bergerbang (GRN)

GRN ialah blok binaan asas TFT, digunakan di seluruh seni bina di mana sahaja pemprosesan tak linear diperlukan. Tidak seperti lapisan suap ke hadapan standard, GRN menggabungkan sambungan langkau dan mekanisme bergerbang yang membolehkan rangkaian mengawal aliran maklumat secara adaptif.

Diberikan input utama a\mathbf{a} dan vektor konteks pilihan c\mathbf{c}, GRN mengira:

GRNω(a,c)=LayerNorm(a+GLUω(η1))\text{GRN}_\omega(\mathbf{a}, \mathbf{c}) = \text{LayerNorm}\left(\mathbf{a} + \text{GLU}_\omega(\boldsymbol{\eta}_1)\right)

di mana:

η1=W1,ωη2+b1,ω\boldsymbol{\eta}_1 = \mathbf{W}_{1,\omega} \boldsymbol{\eta}_2 + \mathbf{b}_{1,\omega}

η2=ELU(W2,ωa+W3,ωc+b2,ω)\boldsymbol{\eta}_2 = \text{ELU}\left(\mathbf{W}_{2,\omega} \mathbf{a} + \mathbf{W}_{3,\omega} \mathbf{c} + \mathbf{b}_{2,\omega}\right)

Gated Linear Unit (GLU) ialah mekanisme bergerbang yang utama:

GLU(γ)=σ(W4γ+b4)(W5γ+b5)\text{GLU}(\boldsymbol{\gamma}) = \sigma(\mathbf{W}_{4} \boldsymbol{\gamma} + \mathbf{b}_4) \odot (\mathbf{W}_{5} \boldsymbol{\gamma} + \mathbf{b}_5)

di mana σ\sigma ialah fungsi sigmoid dan \odot menandakan pendaraban unsur demi unsur. Gerbang sigmoid mempelajari dimensi input yang mana untuk ditindas, membolehkan model melangkau pemprosesan tak linear yang tidak perlu sepenuhnya apabila data tidak memerlukannya. Ini penting bagi data kewangan di mana sesetengah ciri hanya bermaklumat dalam rejim tertentu.

2. Rangkaian Pemilihan Pemboleh Ubah (VSN)

Ini boleh dikatakan komponen yang paling bernilai untuk aplikasi portfolio. Set data kewangan terkenal dengan hingarnya, dengan berpuluh-puluh ciri berpotensi -- penunjuk teknikal, nisbah asas, pemboleh ubah makro, skor sentimen -- yang kebanyakannya berlebihan atau tidak relevan pada bila-bila masa.

VSN mengira pemberat pemilihan lembut ke atas semua ciri input:

vχt=Softmax(GRNvχ(Ξt,cs))\mathbf{v}_{\chi_t} = \text{Softmax}\left(\text{GRN}_{v_\chi}\left(\boldsymbol{\Xi}_t, \mathbf{c}_s\right)\right)

di mana Ξt\boldsymbol{\Xi}_t ialah vektor terleper bagi semua ciri input yang telah ditransformasi pada masa tt, dan cs\mathbf{c}_s ialah vektor konteks yang diperoleh daripada metadata statik. Setiap ciri individu juga diproses melalui GRN-nya sendiri:

ξ~t(j)=GRNξ~(j)(ξt(j))\tilde{\boldsymbol{\xi}}^{(j)}_t = \text{GRN}_{\tilde{\xi}^{(j)}}\left(\boldsymbol{\xi}^{(j)}_t\right)

Perwakilan terpilih akhir ialah jumlah berpemberat:

ξ~t=j=1mχvχt(j)ξ~t(j)\tilde{\boldsymbol{\xi}}_t = \sum_{j=1}^{m_\chi} v_{\chi_t}^{(j)} \tilde{\boldsymbol{\xi}}^{(j)}_t

Dalam konteks portfolio, vχt(j)v_{\chi_t}^{(j)} secara langsung memberitahu anda: "pada masa tt, model memberi pemberat kepada ciri jj sebanyak ini." Anda mungkin mendapati bahawa RSI mendominasi semasa pasaran berjulat, manakala ciri keluk hasil makro mendominasi semasa peralihan rejim. Ini bukan penjelasan pasca-fakta -- ia tertanam dalam seni bina.

Terdapat VSN berasingan untuk kovariat statik, input lampau yang diperhatikan, dan input masa hadapan yang diketahui. Pemisahan ini menghormati struktur sebab-akibat masalah ramalan: anda tidak boleh menggunakan pemerhatian masa hadapan, tetapi anda boleh menggunakan peristiwa masa hadapan yang diketahui (tarikh pendapatan, mesyuarat FOMC, luput pilihan, kesan hari-dalam-minggu).

3. Pengekod Kovariat Statik

Dalam ramalan portfolio, kovariat statik mewakili metadata peringkat entiti yang tidak berubah dari semasa ke semasa: kelas aset, sektor, bursa, baldi permodalan pasaran, atau wilayah geografi. TFT memproses ini melalui GRN khusus untuk menghasilkan empat vektor konteks yang berbeza:

  • cs\mathbf{c}_s -- konteks untuk pemilihan pemboleh ubah temporal
  • ce\mathbf{c}_e -- konteks untuk pengayaan statik ciri temporal (diterapkan selepas LSTM)
  • cc\mathbf{c}_c -- pemulaan keadaan sel untuk LSTM
  • ch\mathbf{c}_h -- pemulaan keadaan tersembunyi untuk LSTM

Inilah cara TFT mengendalikan maklumat keratan rentas. Apabila meramal portfolio 500 saham, pengekod statik membolehkan model mempelajari bahawa saham teknologi dan saham utiliti mempunyai dinamik temporal yang secara asasnya berbeza, tanpa memerlukan model berasingan.

4. Pemprosesan Temporal: LSTM + Interpretable Multi-Head Attention

TFT menggunakan saluran paip pemprosesan temporal dua peringkat yang menggabungkan kekuatan seni bina berulang dan berasaskan attention.

Peringkat 1: Pemprosesan Tempatan dengan LSTM

Pengekod-penyahkod LSTM jujukan-ke-jujukan memproses siri masa untuk menangkap corak temporal tempatan -- momentum jangka pendek, pengembalian min, dan struktur autoregresif. Pengekod memproses tetingkap lihat balik; penyahkod memproses input masa hadapan yang diketahui. Kedua-duanya dimulakan dengan vektor konteks statik cc\mathbf{c}_c (keadaan sel) dan ch\mathbf{c}_h (keadaan tersembunyi).

Peringkat 2: Kebergantungan Jarak Jauh dengan Interpretable Multi-Head Attention

Selepas pemprosesan tempatan, TFT menerapkan mekanisme self-attention yang diubah suai untuk mempelajari kebergantungan jarak jauh. Pengubahsuaian utama adalah dalam cara head attention diagregat. Multi-head attention standard menyambungkan output head:

MultiHead(Q,K,V)=[head1;;headH]WO\text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = [\text{head}_1; \ldots; \text{head}_H] \mathbf{W}_O

Sebaliknya, TFT berkongsi nilai merentas head dan mempuratakan pemberat attention:

InterpretableMultiHead(Q,K,V)=H~WH\text{InterpretableMultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \tilde{\mathbf{H}} \mathbf{W}_H

H~=1Hh=1HAttention(QWQ(h),KWK(h),VWV)\tilde{\mathbf{H}} = \frac{1}{H} \sum_{h=1}^{H} \text{Attention}\left(\mathbf{Q} \mathbf{W}_Q^{(h)}, \mathbf{K} \mathbf{W}_K^{(h)}, \mathbf{V} \mathbf{W}_V\right)

Attention(Q,K,V)=Softmax(QKdattn)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{Softmax}\left(\frac{\mathbf{Q} \mathbf{K}^\top}{\sqrt{d_{\text{attn}}}}\right) \mathbf{V}

Perhatikan: WV\mathbf{W}_V tidak mempunyai superskrip head -- semua head berkongsi unjuran nilai yang sama. Ini bermakna pemberat attention daripada setiap head boleh dipuratakan dengan bermakna dan ditafsir sebagai skor kepentingan temporal. Bagi ramalan tertentu, anda boleh menggambarkan dengan tepat langkah masa lampau yang mana model memberi perhatian, dan bagaimana corak attention berbeza merentas head.

Untuk ramalan portfolio, ini mendedahkan sama ada model memberi perhatian kepada pergerakan harga terkini (momentum), corak sejarah yang jauh (kemusiman), atau peristiwa kalendar tertentu. Setiap head boleh mengkhusus dalam corak temporal yang berbeza.

5. Lapisan Output Kuantil

Lapisan akhir menghasilkan ramalan pada pelbagai kuantil, dioptimumkan dengan kerugian kuantil:

L(Ω)=ytΩqQτ=1τmaxQL(yt,y^(q,tτ,τ),q)Ωτmax\mathcal{L}(\Omega) = \sum_{y_t \in \Omega} \sum_{q \in \mathcal{Q}} \sum_{\tau=1}^{\tau_{\max}} \frac{QL(y_t, \hat{y}(q, t-\tau, \tau), q)}{|\Omega| \cdot \tau_{\max}}

QL(y,y^,q)=qmax(0,yy^)+(1q)max(0,y^y)QL(y, \hat{y}, q) = q \max(0, y - \hat{y}) + (1 - q) \max(0, \hat{y} - y)

di mana Q\mathcal{Q} ialah set kuantil sasaran (cth., {0.1,0.5,0.9}\{0.1, 0.5, 0.9\}). Ini memberikan anda bukan sekadar ramalan titik, tetapi anggaran kuantil bagi selang ramalan pada setiap ufuk. Untuk pengurusan risiko portfolio, ramalan persentil ke-10 dan ke-90 memaklumkan penyaiztan posisi dan paras henti-rugi.

Satu peringatan yang patut dinyatakan di awal: meminimumkan kerugian pinball menghasilkan anggaran kuantil bersyarat, tetapi ia tidak menjamin liputan luar sampel yang tertentukur. Pada pasaran tidak pegun dan bertukar rejim, selang ini kerap tersalah tentukur -- selang nominal 80% mungkin meliputi jauh lebih sedikit (atau lebih) daripada 80% realisasi. Anggap kuantil sebagai anggaran yang perlu disahkan secara empirik dengan ujian liputan/kebolehpercayaan, dan ketatkannya dengan conformal prediction jika anda memerlukan jaminan liputan. Kita akan kembali kepada ini dalam bahagian pengeluaran.

TFT vs LSTM vs Transformer Biasa

TFT berbanding LSTM berbanding transformer biasa: tiga seni bina ramalan menghasilkan ramalan dengan ketajaman yang berbeza

Memahami di mana TFT berada relatif kepada seni bina lain membantu dalam memutuskan bila untuk menggunakannya.

Ciri LSTM Transformer Biasa TFT
Kebergantungan jarak jauh Terhad (kecerunan lenyap) Kuat (self-attention) Kuat (LSTM + attention)
Pemilihan pemboleh ubah Tiada (kejuruteraan ciri manual) Tiada VSN terbina dalam
Kebolehtafsiran Legap Pemberat attention (berhingar) Attention berstruktur + kepentingan pemboleh ubah
Kovariat statik Penyambungan ad-hoc Penyambungan ad-hoc Saluran paip pengekodan khusus
Output pelbagai ufuk Autoregresif (pengumpulan ralat) Langsung atau autoregresif (bergantung penyahkodan) Langsung (selari)
Input masa hadapan yang diketahui Pengendalian janggal Tiada perbezaan asli Pemisahan input eksplisit
Output kebarangkalian Memerlukan pengubahsuaian Memerlukan pengubahsuaian Regresi kuantil asli
Kestabilan latihan Sederhana Sering tidak stabil pada data kecil Stabil (gerbang membantu)

Bila LSTM Masih Menang

LSTM kekal berdaya saing untuk ramalan jangka sangat pendek (peringkat tik, bawah seminit) di mana tetingkap lihat balik adalah pendek dan struktur autoregresif tempatan mendominasi. Ia juga lebih mudah untuk digunakan, dengan kependaman yang lebih rendah dalam inferens. Bagi bot market-making yang memerlukan ramalan bawah-milisaat, LSTM masih merupakan pilihan praktikal.

Bila Transformer Biasa Tidak Memadai

Transformer standard yang diterapkan secara naif kepada siri masa kewangan sering terlampau muat. Ia kekurangan bias induktif yang diperlukan untuk data temporal -- tiada konsep ciri statik berbanding berubah mengikut masa, tiada pemilihan pemboleh ubah, dan multi-head attention bersambung standard menghasilkan peta attention yang sukar ditafsir dengan bermakna.

Bila TFT Cemerlang

TFT adalah optimum apabila anda mempunyai: (1) pelbagai jenis input heterogen, (2) data keratan rentas (banyak aset), (3) keperluan untuk ramalan kebarangkalian pelbagai ufuk, dan (4) keperluan untuk kebolehtafsiran model. Ini menggambarkan pada dasarnya setiap masalah ramalan portfolio institusi.

Pelaksanaan Python dengan PyTorch Forecasting

Berikut ialah pelaksanaan praktikal TFT untuk ramalan pulangan portfolio pelbagai aset menggunakan pustaka pytorch-forecasting.

Penyediaan Data

Perhatikan penggunaan sengaja input masa hadapan yang diketahui sebenar -- day_of_week, days_to_earnings, is_fomc, days_to_expiry. Ini ialah nilai yang kita ketahui terlebih dahulu untuk tetingkap ramalan, dan menyuapkannya sebagai reals/categoricals yang diketahui adalah tepat keupayaan TFT yang menjadi tunjang seni bina ini. Kita menggugurkan time_idx mentah daripada known reals: add_relative_time_idx=True sudah pun menyuntik indeks kedudukan relatif, dan pembilang monotonik mentah kebanyakannya membocorkan trend.

import pandas as pd
import numpy as np
import lightning.pytorch as pl
from lightning.pytorch.callbacks import EarlyStopping, LearningRateMonitor
from lightning.pytorch.loggers import TensorBoardLogger

from pytorch_forecasting import (
    TimeSeriesDataSet,
    TemporalFusionTransformer,
    QuantileLoss,
    GroupNormalizer,
)


max_encoder_length = 60   # 60 hari dagangan lihat balik (~3 bulan)
max_prediction_length = 20 # 20 hari dagangan ke hadapan (~1 bulan)

training_cutoff = df["time_idx"].max() - max_prediction_length

training = TimeSeriesDataSet(
    df[lambda x: x.time_idx <= training_cutoff],
    time_idx="time_idx",
    target="log_return",
    group_ids=["asset_id"],
    min_encoder_length=max_encoder_length // 2,
    max_encoder_length=max_encoder_length,
    min_prediction_length=1,
    max_prediction_length=max_prediction_length,

    static_categoricals=["sector", "market_cap_bucket"],

    time_varying_known_categoricals=["day_of_week", "is_fomc"],
    time_varying_known_reals=["days_to_earnings", "days_to_expiry"],

    time_varying_unknown_reals=[
        "log_return",
        "rsi_14",
        "macd",
        "bb_width",
        "pe_ratio",
        "earnings_yield",
        "vix",
        "yield_spread",
        "dxy",
    ],

    target_normalizer=GroupNormalizer(
        groups=["asset_id"],
        transformation="softplus",
    ),
    add_relative_time_idx=True,
    add_target_scales=True,
    add_encoder_length=True,
)

validation = TimeSeriesDataSet.from_dataset(
    training, df, predict=True, stop_randomization=True
)

batch_size = 64
train_dataloader = training.to_dataloader(
    train=True, batch_size=batch_size, num_workers=4
)
val_dataloader = validation.to_dataloader(
    train=False, batch_size=batch_size * 4, num_workers=4
)

Takrifan Model dan Latihan

tft = TemporalFusionTransformer.from_dataset(
    training,
    learning_rate=1e-3,
    hidden_size=64,
    attention_head_size=4,
    dropout=0.1,
    hidden_continuous_size=32,
    output_size=7,  # 7 kuantil
    loss=QuantileLoss(quantiles=[0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98]),
    log_interval=10,
    optimizer="Ranger",
    reduce_on_plateau_patience=4,
)

print(f"Number of parameters: {tft.size() / 1e3:.1f}k")

early_stop_callback = EarlyStopping(
    monitor="val_loss",
    min_delta=1e-4,
    patience=10,
    verbose=False,
    mode="min",
)

lr_logger = LearningRateMonitor()
logger = TensorBoardLogger("lightning_logs")

trainer = pl.Trainer(
    max_epochs=100,
    accelerator="auto",
    enable_model_summary=True,
    gradient_clip_val=0.1,
    callbacks=[lr_logger, early_stop_callback],
    logger=logger,
)

trainer.fit(
    tft,
    train_dataloaders=train_dataloader,
    val_dataloaders=val_dataloader,
)

Mengekstrak Output Yang Boleh Ditafsir

Panggilan kebolehtafsiran mempunyai satu keperluan yang tidak jelas: interpret_output() menggunakan dict output mentah (dengan kunci seperti encoder_variables, decoder_variables, static_variables, encoder_attention, ...), yang predict() hanya hasilkan di bawah mode="raw". Kira ia sekali, kemudian gunakan semula objek yang sama untuk kedua-dua kepentingan pemboleh ubah dan attention.

best_model_path = trainer.checkpoint_callback.best_model_path
best_tft = TemporalFusionTransformer.load_from_checkpoint(best_model_path)

raw_predictions, x = best_tft.predict(val_dataloader, mode="raw", return_x=True)

interpretation = best_tft.interpret_output(raw_predictions, reduction="sum")

best_tft.plot_interpretation(interpretation)

preds = raw_predictions.output["prediction"]

Daripada Ramalan kepada Pemberat Portfolio

def forecasts_to_portfolio_weights(
    predictions: dict,
    index: pd.DataFrame,
    risk_aversion: float = 2.0,
) -> pd.DataFrame:
    """
    Tukarkan ramalan kuantil pelbagai ufuk TFT kepada pemberat portfolio
    long-sahaja menggunakan skor yang DIILHAMKAN min-varians (bukan
    pengoptimuman penuh: tiada matriks kovarians di sini, hanya skor
    laras risiko setiap aset).

    Menggunakan ramalan median sebagai pulangan jangkaan dan (q90 - q10)
    sebagai proksi bagi ketidakpastian ramalan.
    """
    preds = predictions["prediction"]

    median_return = preds[:, :, 3].mean(dim=1).numpy()  # purata merentas ufuk
    q90 = preds[:, :, 5].mean(dim=1).numpy()
    q10 = preds[:, :, 1].mean(dim=1).numpy()
    forecast_uncertainty = q90 - q10  # lebar 80% PI

    scores = median_return / (risk_aversion * forecast_uncertainty + 1e-8)

    result = index[["asset_id"]].copy()
    result["score"] = scores
    result["raw_weight"] = np.maximum(scores, 0)  # long-sahaja

    total = result["raw_weight"].sum()
    result["weight"] = result["raw_weight"] / (total + 1e-8)

    return result[["asset_id", "weight", "score"]]

Kebolehtafsiran dalam Amalan: Apa Yang TFT Dedahkan Tentang Pasaran

Kebolehtafsiran TFT: pemberat attention dan kepentingan pemboleh ubah mendedahkan input dan langkah masa yang model bergantung kepadanya

Output kebolehtafsiran daripada TFT bukan keingintahuan akademik -- ia menyediakan kecerdasan yang boleh ditindaki untuk pengurus portfolio.

Kepentingan Pemboleh Ubah Merentas Rejim

Apabila anda memeriksa pemberat pemilihan pemboleh ubah dari semasa ke semasa, corak muncul yang sejajar dengan intuisi pasaran:

  • Semasa kitaran kenaikan kadar 2022: ciri keluk hasil (yield_spread, fed_funds_rate) mendominasi kepentingan pemboleh ubah, menyumbang 35-40% pemberat pemilihan. Penunjuk teknikal jatuh ke bawah 10%.
  • Semasa rali yang dipacu AI 2024: ciri momentum (rsi_14, macd) melonjak dalam kepentingan. Kovariat statik peringkat sektor juga menjadi signifikan kerana rali tersebut sangat tertumpu dalam teknologi.
  • Semasa tempoh terikat julat: penunjuk pengembalian min (bb_width, relative_value) menerima pemberat tertinggi, manakala ciri ikut-trend ditindas oleh mekanisme bergerbang.

Inilah gerbang GRN dalam tindakan. Apabila ciri momentum tidak membawa isyarat, gerbang GLU memacu sumbangannya ke arah sifar, dan model secara automatik beralih kepada ciri alternatif. (Ini ialah corak ilustratif daripada larian penerokaan, bukan keputusan bertanda aras -- sahkannya pada data anda sendiri.)

Corak Attention Temporal

Visualisasi pemberat attention mendedahkan struktur memori berkesan model:

  • Puncak attention jangka pendek: Attention kuat pada lat 1-5 mencerminkan autokorelasi dan kesan momentum/pembalikan jangka pendek.
  • Corak mingguan: Lonjakan attention pada lat 5, 10, 15 sepadan dengan kesan kalendar mingguan.
  • Corak bulanan: Puncak attention yang konsisten sekitar lat 21 (satu bulan dagangan) menangkap aliran pengimbangan semula bulanan dan kesan luput pilihan.
  • Kitaran pendapatan: Bagi saham individu, attention menunjukkan lonjakan tajam pada lat ~63 dan ~126 hari, sepadan dengan tarikh pendapatan suku tahunan.

Corak ini menyediakan pengesahan bebas bahawa model telah mempelajari struktur temporal yang bermakna dan bukannya memuatkan hingar.

Prestasi dan Aplikasi Dunia Sebenar

Keputusan Tanda Aras

Daripada kertas asal dan penyelidikan seterusnya, TFT mempamerkan prestasi yang kukuh dan terdokumentasi dengan baik:

  • Kerugian kuantil P50 7% lebih rendah dan P90 9% lebih rendah secara purata berbanding model terbaik berikutnya merentas set data tanda aras kertas (elektrik, lalu lintas, runcit, kemeruapan), dan penambahbaikan 3-26% berbanding garis dasar pesaing terkuat bergantung pada set data. Pesaing tertentu berbeza mengikut set data -- contohnya, DeepAR adalah antara garis dasar yang lebih lemah pada elektrik dan lalu lintas tetapi lebih berdaya saing pada runcit dan kemeruapan -- jadi angka utama ialah keuntungan ke atas model terbaik berikutnya, bukan ke atas mana-mana garis dasar tetap tunggal.
  • Secara konsisten mengatasi garis dasar klasik ARIMA, ETS, dan Prophet pada metrik pelbagai ufuk.

Hala Tuju Penyelidikan dalam Kewangan

TFT telah mencetuskan satu garis penyelidikan khusus kewangan yang aktif. Beberapa benang perwakilan, dengan metrik yang dilaporkan sebenar (petik dan ulang hasil sebelum bergantung kepada mana-mana satu):

  • TFT adaptif / pelbagai skala untuk kripto. Kerja seperti Adaptive Temporal Fusion Transformers for Cryptocurrency Price Prediction (arXiv:2509.10542) melaporkan penambahbaikan berbanding garis dasar TFT panjang tetap dan LSTM pada ramalan harga kripto. Anggap angka keuntungan-perdagangan sebagai khusus-kertas dan bergantung-rejim dan bukan sejagat -- kita sengaja tidak memetik delta Sharpe mutlak di sini, kerana angka yang berlegar di sekitar literatur sering mencampuradukkan ketepatan ramalan dengan Sharpe yang direalisasikan.
  • Objektif sedar-Sharpe. Garis kerja MDPI Sensors "multi-sensor TFT / nisbah Sharpe adaptif" mengoptimumkan ke arah objektif gaya-Sharpe secara langsung; ambil perhatian bahawa keputusan utamanya adalah lebih kurang penambahbaikan 18% dalam ketepatan ramalan nisbah-Sharpe, yang merupakan kuantiti yang berbeza daripada kenaikan Sharpe mutlak.
  • Model TFT-GNN hibrid. Menggabungkan TFT dengan rangkaian neural graf untuk menangkap kebergantungan antara aset, dengan hibrid dilaporkan mengatasi TFT bersendirian pada ramalan saham keratan rentas.
  • Gabungan temporal silang-modal. Mengintegrasikan data harga berstruktur dengan data tidak berstruktur (berita, transkrip panggilan pendapatan) melalui lapisan gabungan transformer, melanjutkan paradigma TFT kepada data kewangan multimodal.

Hala tuju ini adalah benar, tetapi tiada satu pun daripadanya merupakan kelebihan sedia-pakai. Ulang hasil metrik pada universe dan kos anda sendiri sebelum digunakan.

Pertimbangan Praktikal untuk Pengeluaran

Keperluan data: TFT memerlukan data latihan yang banyak. Rancang untuk sekurang-kurangnya 2-3 tahun data harian setiap aset, atau 6-12 bulan data sejam. Data keratan rentas (banyak aset) banyak membantu -- melatih pada 500 saham secara serentak lebih berkesan daripada melatih 500 model berasingan.

Kejuruteraan ciri: Walaupun TFT melaksanakan pemilihan pemboleh ubah secara automatik, kualiti ciri calon masih penting. Sertakan set ciri yang pelbagai merangkumi data teknikal, asas, makro, dan alternatif. Biarkan VSN menentukan apa yang berguna.

Kos pengiraan: TFT lebih mahal untuk dilatih berbanding LSTM tetapi setanding dengan transformer biasa. Pada satu GPU A100 tunggal, latihan pada 500 saham dengan 3 tahun data harian mengambil masa beberapa jam untuk 100 epoch. Inferens adalah pantas -- menjana ramalan untuk seluruh universe mengambil masa jauh di bawah satu saat.

Sahkan penentukuran, jangan andaikannya. Sebelum mana-mana kuantil memacu penyaiztan posisi, semak liputan empirik pada data luar sampel: adakah selang nominal 80% sebenarnya mengandungi ~80% pulangan yang direalisasikan? Pada pasaran tidak pegun ia sering tidak. Jalankan rajah kebolehpercayaan setiap ufuk, dan pertimbangkan untuk membalut model dalam conformal prediction bagi memulihkan jaminan liputan.

Penyesuaian rejim: TFT tidak memodelkan pertukaran rejim secara eksplisit (tidak seperti HMM). Walau bagaimanapun, mekanisme bergerbang menyediakan penyesuaian rejim tersirat. Dalam amalan, melatih semula setiap bulan dengan tetingkap mengembang menangkap perubahan struktur dengan berkesan.

Mitigasi terlampau muat: Data kewangan adalah berhingar dan tidak pegun. Gunakan regularisasi agresif: dropout 0.1-0.3, pengepitan kecerunan pada 0.1, penghentian awal dengan kesabaran 10-15 epoch. Pengesahan walk-forward adalah penting -- jangan sekali-kali menggunakan pembahagian latih/uji rawak pada siri masa.

Menggabungkan Semuanya: Saluran Paip Portfolio Berasaskan TFT

Saluran paip portfolio dipacu TFT: ramalan kebarangkalian pelbagai aset menyuap penyaiztan posisi dan belanjawan risiko

Saluran paip pengeluaran untuk pengurusan portfolio berasaskan TFT kelihatan seperti ini:

  1. Pengambilan data: Kumpulkan data OHLCV, asas, makro, dan alternatif setiap hari. Kira ciri (200+ calon), termasuk kalendar masa hadapan yang diketahui sebenar (pendapatan, FOMC, luput, hari-dalam-minggu).
  2. Stor ciri: Kekalkan stor ciri yang dinormalkan dan diindeks masa. Kendalikan data hilang, tindakan korporat, dan bias kebolehmandirian.
  3. Latihan model: Latih semula TFT setiap bulan menggunakan metodologi walk-forward. Gunakan data 3-5 tahun terkini dengan tetingkap mengembang.
  4. Penjanaan ramalan: Inferens harian menghasilkan ramalan kuantil pada ufuk 1, 5, 10, dan 20 hari untuk seluruh universe aset.
  5. Semakan penentukuran: Jejaki liputan setiap selang kuantil bagi setiap ufuk. Tentukur semula (atau terapkan pelarasan conformal) apabila liputan menyimpang.
  6. Papan pemuka kebolehtafsiran: Gambarkan kepentingan pemboleh ubah dan pemberat attention. Tandakan anomali (cth., anjakan mendadak dalam kepentingan ciri).
  7. Pengoptimuman portfolio: Tukarkan ramalan kepada pemberat menggunakan min-varians, Black-Litterman, atau pariti risiko, dengan kuantil TFT menyediakan input pulangan dan ketidakpastian.
  8. Lapisan risiko: Gunakan ramalan persentil ke-2 dan ke-98 untuk penilaian risiko ekor. Kurangkan saiz posisi apabila selang ramalan melebar.
  9. Pelaksanaan: Hantar pemberat sasaran kepada enjin pelaksanaan. Pantau ralat penjejakan antara portfolio sasaran dan yang direalisasikan.

Kesimpulan

Temporal Fusion Transformer mewakili kemajuan sejati untuk pengurusan portfolio kuantitatif. Ia bukan sekadar satu lagi model deep learning yang dibaling kepada data kewangan -- ia ialah seni bina yang direka dari asas untuk cabaran khusus ramalan temporal pelbagai ufuk: input heterogen, struktur keratan rentas, output kebarangkalian, dan keperluan kritikal untuk kebolehtafsiran.

Rangkaian pemilihan pemboleh ubah memberitahu anda apa yang model beri perhatian. Pemberat attention memberitahu anda bila ia melihat. Mekanisme bergerbang memastikan ia mengendalikan ciri tidak relevan dan perubahan rejim dengan anggun. Dan output kuantil memberikan anda anggaran ketidakpastian untuk pengurusan risiko -- dengan syarat anda mengesahkan penentukurannya dan bukannya mempercayainya secara membuta tuli.

TFT bukan peluru perak. Pasaran kewangan kekal sebagai persekitaran bermusuhan di mana sebarang kelebihan ramalan adalah sementara dan bergantung rejim. Tetapi TFT menyediakan rangka kerja berprinsip untuk membina sistem ramalan yang berkuasa dan juga boleh difahami -- dan dalam perdagangan pengeluaran, memahami mengapa model anda membuat pertaruhan adalah sama pentingnya dengan pertaruhan itu sendiri.


Rujukan

  1. Lim, B., Arik, S.O., Loeff, N., & Pfister, T. (2021). "Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting." International Journal of Forecasting, 37(4), 1748-1764. arXiv:1912.09363
  2. Oreshkin, B.N., Carpov, D., Chapados, N., & Bengio, Y. (2020). "N-BEATS: Neural basis expansion analysis for interpretable time series forecasting." ICLR 2020.
  3. Salinas, D., Flunkert, V., Gasthaus, J., & Januschowski, T. (2020). "DeepAR: Probabilistic forecasting with autoregressive recurrent networks." International Journal of Forecasting, 36(3), 1181-1191.
  4. pytorch-forecasting documentation -- Pelaksanaan TFT dengan PyTorch Lightning.
  5. google-research/tft -- Pelaksanaan rujukan TFT asal.
Penafian: Maklumat yang disediakan dalam artikel ini adalah untuk tujuan pendidikan dan maklumat sahaja dan bukan merupakan nasihat kewangan, pelaburan, atau dagangan. Dagangan mata wang kripto melibatkan risiko kerugian yang ketara.

Pengarang

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Kekal Mendahului Pasaran

Langgan surat berita kami untuk pandangan dagangan AI eksklusif, analisis pasaran, dan kemas kini platform.

Kami menghormati privasi anda. Berhenti melanggan pada bila-bila masa.