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