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