為什麼需要可微分排序
傳統的神經網絡訓練,依賴於損失函數的可微性,你得算得出梯度,才能把權重往對的方向調。排序指標的計算涉及排序操作,而排序是不可微的。可微分排序學習要解決的,就是讓排序指標本身可以直接作為損失函數,使模型的優化方向與最終的投資目標直接對齊。
與LambdaMART的比較
LambdaMART和可微分排序學習都屬於學習排序的範疇,但它們的實現路徑不同。
- LambdaMART是基於梯度提升樹的排序演算法,壓根兒不需要損失函數可微,樹模型更新參數不靠梯度下降。它的優勢是對非線性關係的捕捉能力強、對異常值穩健,且計算效率高。缺點就是跟深度學習整合不起來,你沒辦法讓它從原始數據裡頭自動學特徵表示。
- 可微分排序學習正好補上LambdaMART的缺點,可以在深度學習框架內實現的排序優化,與神經網絡無縫整合,從原始數據中端到端地學習排序。它的優勢是靈活性高,可以與任何深度學習架構結合。缺點是計算成本較高,且需要更多的數據和調參技巧來避免過度擬合。
可微分排序的實現方法
軟排序
最直觀的想法是軟排序。核心思路是不做硬排序,而是用一個平滑的近似來替代。SigmoidRanking就是這個思路,利用Sigmoid函數的平滑特性來近似排序的結果。這種方法的優點是實現簡單,缺點是近似誤差可能較大,尤其是在樣本數量較多時。
神經排序
神經排序透過建構一個可微分的排序算子來實現。它的核心是將排序問題轉化為一個線性規劃問題,然後用一個平滑的近似來求解。這種方法理論基礎較好,但計算成本相對較高。
實戰中的挑戰
計算成本
每次梯度計算都需要在整個股票池上進行排序操作,當股票數量龐大時,計算成本可能很高。對策包括使用小批量訓練、先進行粗搜索再進行精細搜索,或使用GPU加速。
交易成本也需要納入考量
當高換手Alpha帶來的邊際提升更大時,模型會傾向於擬合這類信號,但實際交易中換手成本會顯著侵蝕淨收益。這時候通常的做法是在損失函數裡頭加一個時序平滑正則,把換手率當作懲罰項,讓模型稍微收斂一點,別那麼激進。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文

