当深度学习遇上量化交易——因子挖掘篇
?PaperWeekly 原創 ·?作者|桑運鑫
學校|上海交通大學博士生
研究方向|圖神經網絡在金融領域的應用
在深度學習的所有應用場景中,股價預測也無疑是其中一個異常誘人的場景。隨著傳統線性模型的潛力逐漸枯竭,非線性模型逐漸成為量化交易的主要探索方向,深度學習對非線性關系良好的擬合能力讓其在量化交易中面臨著廣闊的應用前景(關于量化交易一些基礎知識,推薦知乎專欄:人工智能與量化投資)。
但與常規的回歸預測任務不同的是,股價預測問題有其獨特性,存在時間序列、噪聲高、過擬合等問題。當前對于深度學習在股票交易中的研究主要側重在因子挖掘、圖神經網絡與知識圖譜、新聞與社交媒體等非結構化數據的利用、以及時序模型改進四個方面。
我們會在文章中依次探討近 5 年頂會上對這四個方向的研究。此外,因為相關的資料確實相當匱乏,我在 GitHub 上新建了一個 repo:deep-stock, 用于收集、整理相關的研究論文、書籍、數據、網站等,歡迎 star!
deep-stock:
https://github.com/sangyx/deep-stock
本文主要介紹 MSRA 在 KDD 2019 上發表的兩篇文章,這兩篇文章主要關注深度學習在因子挖掘方面的應用。
TTIO
論文標題:Individualized Indicator for All: Stock-wise Technical Indicator Optimization with Stock Embedding
論文鏈接:https://dl.acm.org/doi/10.1145/3292500.3330833
對于股票進行分析常用的手段有基本面分析(fundamental analysis)和技術面分析(technical analysis)。技術面分析依靠股票市場歷史上的交易價格和成交量衍生出一系列的技術指標,成為技術因子(technical indicators)。
傳統的多因子模型認為同一種因子的系數(, 因子暴露)對于所有的股票的影響是一樣的。但我們稍加觀察下圖就會發現,對于具有不同的內稟屬性(intrinsic properties)的股票,同一個因子即使在同一時間取值大致相同,對于股價的影響也是不一樣的。
而要解決上述問題,需要解決下面兩個問題:
怎么把股票分成不同種類,或者說怎么發現因子的內稟屬性?
怎么找出不同的技術因子對不同種類股票的影響程度?即如何計算那個加權系數?
文章對上述問題分別進行了解答。
對于第一個問題,要解決它其實要給每只股票生成一個 embedding,并且這個? embedding 要包含足夠的信息?;凇叭f物皆可 embedding” 的思想,可以很自然的想到 word2vec 中的 skip-gram 和 cbow 兩個生成 embedding 的方法。
文章在這里采用了 skip-gram 的方法,但 skip-gram 方法建立在一個詞和它周圍的詞組成的詞組更合理的基礎上,我們如何得到由有相似屬性的股票組成的序列呢?
文章提出了一個有意思的假設:那些專業的基金經理比起我們這些小白來姿勢水平肯定不知道高到哪里去了,他們在給自己管理的基金挑選股票組合時肯定傾向于選擇有相似屬性的股票(但這個假設其實有兩個潛在的問題,第二篇文章有提到),所以我們這些基金組合入手,生成股票序列。具體的步驟如下:
1. 我們首先將股票和其所屬的基金組織成一個如下圖所示的二部圖 ,其中 U 代表股票,V 代表這些股票所述的基金,E 是這兩者之間的邊,代表一個基金對一只股票的投資。
2. 使用 Random Walk 算法來采樣一系列的股票序列。從任意一只股票結點 開始,它到基金結點 的概率是:
從基金結點 開始到另一個股票結點 的概率定義如下:
因為我們只需要股票序列,在采樣時去掉基金結點,只保留股票結點即可。
3. 使用 Skip-Gram 算法對上面采樣得到的股票序列進行訓練可以得到股票 的 embedding 。
對于第二個問題,文章提出了一個稱為 TTIO(Technical Trading Indicator Optimization)的框架。其中最重要的就是通過一種稱為 Re-scaling Network 的方法計算股票對每種技術因子的權重。它包括兩步:生成初始權重和權重歸一化。
因為我們的假設會讓具有相似屬性的股票生成相似的 embedding。為了保持這種關系,我們不能進行過于復雜的變化,這里只用一個簡單的線性變化來得到 re-scaling score,之后使用 softmax 函數進行歸一化:
之后使用這個這個權重乘相應的技術因子 獲得優化過的因子 :
之后使用信息系數(Information Correlation,IC)作為目標函數對這個單層神經網絡進行優化。
因為投資的動態性,所以文章引入了 Rotation Learning 的方法隨時間不斷更新因子,如下圖所示。
最后,文章對上述方法使用從 2013 年到 2016 年 2000 只股票的交易數據對如下表所示的七種因子進行了實驗。
對照方法包括 Raw(原始因子),Norm re-scales(對原始因子進行歸一化),NoEmb(將 stock embedding 作為訓練參數直接進行訓練)、Complex(將原始因子和股票 embedding 直接進行連接,輸入一個兩層的神經網絡進行訓練,為了測試過擬合問題)。
實驗結果自然是吊打 baseline,如下圖所示。但也有兩個其他結論值得注意,Norm 方法相比 Raw 方法并不好,甚至要更差,這顯示了除了相對大小,因子的絕對大小也很重要。而 Complex 雖然只使用了最簡單的的兩層神經網絡,但過擬合問題也讓它表現十分糟糕。
論文標題:Investment Behaviors Can Tell What Inside: Exploring Stock Intrinsic Properties for Stock Trend Prediction
論文鏈接:https://www.microsoft.com/en-us/research/uploads/prod/2019/11/p2376-chen.pdf
這篇文章的出發點是雖然深度學習已經在這么多領域取得令人矚目的成就,但在股票市場上卻仍然是人類投資者占據主導地位,因為他們在做決策時會考慮股票的內稟屬性,把股票分成不同的種類。所以為了達到更好的預測準確率,要向人類投資者學習,解決以下兩個問題:
如何挖掘股票的內稟屬性?
如何將股票靜態的內稟屬性融入到深度神經網絡中來加強動態的股票預測?
對于第一個問題,我們當然是使用 skip-gram。不好意思,串文了,skip-gram 是上一篇論文采取的方法,這篇文章提出了另一種解決方案,那就是萬物皆可 Embedding 的另一個邪教——矩陣分解(Matrix Factorization)。
那去哪找矩陣呢?文章提出了一個有意思的假設:那些專業的基金經理比起我們這些小白來姿勢水平肯定不知道高到哪里去了,他們在給自己管理的基金挑選股票組合時肯定傾向于選擇有相似屬性的股票(嗯,這里沒串,兩篇文章其實用的是同一個假設)。
所以我們構建一個 行 列的矩陣 ,矩陣中的元素 表示基金經理 對股票 的投資行為(應該是金額或者比例,文章沒有寫明), 和 分別表示基金經理和股票的數量。之后按下圖所示的方式分解得到股票 的表示 ,這個 包括 和 。
分解的目標函數為:
其中 是基金經理 的隱向量,是股票 的隱向量。 表示股票 的 bias,表示基金經理 的 bias,表示模型中的其他偏差。
雖然與上一篇文章生成股票 embedding 基于的假設相同。但是這篇文章指出了這個假設存在的問題:
除了基金經理偏好的股票屬性,基金中的投資組合同樣依賴于股票的動態趨勢和風險分布。沒有基金經理會投資一個在持續下跌的股票,即使它具有讓他心動的優良屬性。同樣的,為了保證基金收益更加健壯,很多投資組合都會做風險平均。
但文章指出,這一問題可以通過使用足夠長時間的投資組合的數據來解決,因為在長期內累積的投資行為會削弱上面兩個因素的影響,讓股票的內稟屬性更好的暴露出來。
之后要解決的就是如何將上面得到的股票靜態的內稟屬性用于動態的股票預測呢?傳統的做法是將股票在一個時刻的一些因子輸入到類 RNN 的網絡中,獲得一個股票 在時刻 的動態表示 。那么進行融合的簡單想法就是直接進行拼接輸入到感知機中。
但經驗告訴我們,市場是動態的,它在不同的時間段對不同的股票內稟屬性的偏好是不同的。所以文章提出了兩種不同的方法來分別捕捉動態市場狀態(dynamic market state)和和動態市場趨勢(dynamic market trend)。
獲取動態市場狀態的方法較為簡單,直接對時刻?市場上收益率最高的 只股票的表示向量進行平均即可獲得時刻?的市場偏好 。之后利用獲得的市場偏好對股票 的向量表示做內積獲得這只股票的當前市場狀態。
基于市場偏好在連續兩天很可能是一致的假設,我們可以利用時刻 的市場狀態來預測股票在 時刻的收益排名。
雖然市場偏好在連續兩天是一致的情況很有可能發生,但它并不總是對的。并且只使用最后的市場狀態可能會遭遇市場上突發的高波動。我們可以使用 LSTM 使用過去的市場狀態預測未來的市場趨勢。
之后利用 與股票表示 做內積得 ,與 拼接輸入 MLP 即可。
訓練的損失函數包括兩部分,包括回歸損失和排序損失。加入排序損失是因為每個股票都是獨立的。其中:
實驗部分,文章采用了 2012 年到 2016 年的股市數據,用 101 個因子計算 。
對比的方法包括:stock_LSTM (ALSTM with dynamic stock inputs)、stock_SFM (A SFM with dynamic stock inputs)、DASR (Directly appending stock representation,直接拼接 和 ),IMSR (Integrating market state representations,第一種融合方法),IMTR (Integrating market trend representations,第二種融合方法)。
結果顯示 IMSR 和 IMTR 優于 stock_LSTM 和 stock_LSTM。其他的發現包括 DASR 因為沒有考慮股票和市場的動態特性所以表現不佳,但在 2015 年下半年卻表現不錯,因為在急劇變動的市場中,股票的內稟屬性是保持不變的。
總結
MSRA 的兩篇文章都是從傳統的量化模型出發,挖掘更多的股票屬性,并賦予因子動態時間特性。在將深度學習引入量化交易中的研究中,對傳統的手工因子構造進行改造,發現更強大的因子或提出更有效的因子挖掘方法是可行性比較高,也是最為業界所接受的方法。
如果您對深度學習在量化交易中的應用感興趣,歡迎加我微信一起學習探討。
點擊以下標題查看更多往期內容:?
CVPR 2020 | 商湯TSD目標檢測算法解讀
如何理解用戶評論中的細粒度情感?
EAE:自編碼器 + BN + 最大熵 = 生成模型
針對復雜問題的知識圖譜問答最新進展
深入理解圖注意力機制(Graph Attention Network)
淺談CTR預估模型發展史
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的当深度学习遇上量化交易——因子挖掘篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直播预告 | 清华大学博士生牛艺霖:常识
- 下一篇: 打个人征信去哪个银行