動機
有一類問題在量化研究裡反覆出現,你手上有一批因子,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 · 查看原文

