CoinSkool

ResNLS:融合CNN與LSTM的非線性因子建模新框架

動機

有一類問題在量化研究裡反覆出現,你手上有一批因子,IC 看起來還行,但線性模型就是榨不出更多 alpha。這時候很多人會想到深度學習,但真正動手之後才發現,神經網絡在金融時序數據上的表現,遠比想象中難搞。

這篇文章想聊的,是一個叫 ResNLS 的混合架構。它把 CNN、殘差連接和 LSTM 縫在一起,目標是拟合因子與收益之間的非線性關係。我不打算把它當成一個「答案」,更想把它當成一個思考框架來拆解。

先說動機。傳統線性因子模型的問題不在於不夠複雜,在於它假設因子對收益的貢獻是穩定且可加的。但市場不是這樣運作的。動量因子在趨勢市裡有效,在高波動反轉環境下會大幅失效;價值因子的 IC 在不同流動性環境下差異顯著。這種非線性、非平穩的特性,才是深度學習介入的真正理由。

ResNLS 架構

ResNLS 的設計邏輯是這樣的:輸入是一個時間窗口內的因子序列,先過一個 CNN 模塊做局部特徵提取,然後用殘差連接把原始輸入加回來,再交給 LSTM 做序列建模,最後線性映射到預測收益。

CNN 模塊

CNN 那層的作用,我理解為在因子截面上做模式識別,找出哪些因子組合在短窗口內有協同效應。這有點像在訂單流分析裡,你不只看單一方向的成交量,還會看買賣壓力的相對結構。卷積核的 kernel size 設為 3,加上 padding,保持了輸入輸出維度一致,這個設計讓殘差連接可以直接相加,不用額外做維度對齊。

殘差連接

殘差連接這裡有個細節值得注意:架構裡用了一個可學習的標量權重(`self.weight`,初始化為 0),控制 CNN 輸出對原始輸入的修正幅度。這個設計很聰明,初始化為 0 意味著訓練開始時模型退化為純 LSTM,隨著訓練推進,CNN 的貢獻才逐漸被激活。這在一定程度上緩解了深度模型在金融數據上容易過擬合的問題。

LSTM

LSTM 那層負責捕捉跨時間步的依賴關係。說起來,這也是因子時序建模裡最難處理的部分,因子的有效性本身就在隨時間漂移,LSTM 理論上能學到這種動態,但實際上需要足夠長的訓練樣本和精心設計的正則化才能穩定。

失效條件

說到失效條件,我認為這類架構最大的風險反而是 Regime 的切換。2020 年 3 月那種流動性真空,或者 2022 年加息週期初期的因子大輪動,這些都是模型在訓練集裡幾乎見不到的極端情境。神經網絡在這種情況下的外推基本上是不可靠的。

執行層面

在執行層面,這類模型生成的訊號通常換手率偏高,在流動性不足的市場裡,滑點會快速吃掉模型預測的 alpha。我的觀察是,除非你有足夠的容量測試數據支撐,否則在中小市值股票上跑這類模型,回測結果和實盤之間的落差會相當大。

延伸方向

延伸方向上,有幾個值得探索的維度:

  • 把注意力機制引入因子維度,讓模型自適應地學習哪些因子在當前市場環境下更有效;
  • 加入市場狀態作為條件輸入,讓模型在不同波動率環境下切換行為模式;
  • 在損失函數上做文章,比如用排名損失替代 MSE,讓優化目標更貼近實際交易需求。

總結

深度學習在因子挖掘裡的位置,我覺得是作為一個非線性殘差修正器,在線性模型解釋不了的部分,嘗試找到結構性的模式。這個定位更務實,也更容易在實際策略裡找到落腳點。

原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文

V

作者

Voltima Quant

全職自營量化團隊|多年交易經驗
專注研究CTA擇時、多因子截面策略
標的涵蓋Crypto、港美股、期貨、期權
以科學系統化手段 於波動中尋找最優化交易機會

推薦閱讀

資金權重不等於風險貢獻:因子風險平價如何均攤組合風險

在多因子模型中,資金權重並不等於風險貢獻,高波動因子即使權重不高,也可能主導組合總風險。本文介紹因子風險平價的概念,說明如何讓每個因子對組合風險的貢獻趨於均等,避免單一因子主導整體風險,是量化投資者理解風險配置時不可忽略的關鍵觀念。

Voltima Quant2026/09/19

2008年股票動量崩跌,商品動量為何能獲利?

2008年,股票動量策略出現超過九成回撤,但同一年商品市場的動量基金卻表現亮眼。同一種動量效應,為何一邊崩掉、一邊賺錢?關鍵差別在於當年股票動量交易過於擁擠,導致策略承受巨大壓力。這顯示交易擁擠度是策略表現的重要風險。

Voltima Quant2026/09/18

量化策略來來去去都係咁?同大基金研究員交流後:風險管理先係真正Edge

同唔少大基金量化研究員交流後發現,大家做既策略其實大同小異。以往睇邊間因子低相關、高IC特別多,邊間模型做得特別好就係勁;而家反而覺得,風險管理做得好先至更加有edge。

Voltima Quant2026/09/16