0
本文作者: 周蕾 | 2020-09-08 09:56 |
2020年8月7日-9日,第五屆CCF-GAIR全球人工智能與機器人峰會,于深圳隆重舉辦。
此次峰會由中國計算機學會主辦,雷鋒網、香港中文大學(深圳)聯合承辦,鵬城實驗室、深圳市人工智能與機器人研究院協辦。
在大會第三日的「AI金融專場」中,著名統(tǒng)計學家、普林斯頓大學金融講座教授范劍青,從大數據與人工智能、穩(wěn)健因子學習及其應用、債券風險溢價預測、高頻交易預測、文本分析與金融投資,這五大板塊,向與會者報告近些年他的研究團隊的部分工作成果。
范劍青是國際數理統(tǒng)計學會創(chuàng)辦70年以來第一位華人主席,也是統(tǒng)計旗艦雜志《統(tǒng)計年鑒》的第一位華人主編,論文引用數多年位列世界數學家前十名,是素有統(tǒng)計學諾貝爾獎之稱的CPOSS總統(tǒng)獎得主,也是《概率及其相關領域》、《計量經濟》、《商務統(tǒng)計》等五個國際頂尖學術期刊的主編。
在范劍青看來,人工智能是機器學習的平方,讓機器自動學習機器算法、是機器學習的理想境界。而大數據賦能AI,從大數據相關的科學挑戰(zhàn)衍生的新興科學即為數據科學,他認為數據科學以應用為背景,其目的是想把大數據解決成智慧數據。
他指出,大數據=系統(tǒng)+分析+應用,機器學習=統(tǒng)計+優(yōu)化+實現環(huán)境。
如今深度學習之所以能如此成功,范劍青認為它是權衡偏差和方差的有效方法,深度網絡使高維函數更加靈活,大數據降低了統(tǒng)計方差,而現在計算技術使大數據深度學習得到有效的實現。
范劍青認為,在經濟金融、生物醫(yī)學、管理決策和人文社會中,機器學習有很多挑戰(zhàn)和機遇。由于個體差異大,數據集未知,現在發(fā)生的事情與幾年后的變量完全不一樣,難以提取特征,需要各學科交叉。尤其是在金融行業(yè),數據不平穩(wěn),隨著時間而變,多人參與競爭的市場也是對金融的挑戰(zhàn)。
而機器學習本身就是為降低維數和預測而設計的,他認為機器能學習金融,盡管金融非常復雜,但它的形式是可預測的。以股票收益預測為例,可以通過高維線性模型、機器學習模型或是深度學習模型來處理。他強調,成功預測的屬性一是大數據,二是魯棒,三是模型具備市場的重要特征。
他還詳盡地用幾個例子來說明溢價預測相關的問題,例如通過市場因子來預測債券風險;并介紹了現階段可以使用的兩種因子學習方法,一是傳統(tǒng)主成分方法,二是利用投影主成分來操作。
此外,范劍青也與現場觀眾介紹了文本數據如何協助股票投資決策,他表示現在可以通過對新聞內容的分析,解析文章對股票的褒貶程度。
最后,范劍青總結稱,資產定價本質上是預測問題,機器可以學習金融。他認為機器學習可以幫助處理大數據并從中選擇重要因素和特征,能很好地應對過度擬合的問題,允許非線性學習極大地改善預測效果,將穩(wěn)健性和對抗性網絡提煉為定價,智能預測也會帶來很大的經濟收益。
以下是范劍青的大會報告內容,雷鋒網做了不改變原意的編輯與整理:
非常榮幸能夠參加第五屆CCF-GAIR全球人工智能與機器人峰會。我今天的報告主題是《機器是怎么學習金融的》。
這次報告的內容,是我們金融工程實驗室多人的工作成果,大綱如下:
大數據與人工智能
穩(wěn)健因子學習及其應用
債券風險溢價預測
高頻交易預測
文本數據與資產定價
眾所周知,人工智能是由John McCarthy于1955年首次提出,一年后,他也與多名科學家組織了著名的Dartmouth會議。
何謂人工智能?
Wikipedia中是這樣介紹的:“人工智能”指機器模仿人類的“認知”功能所展示的智能,例如“學習”和“解決問題”?,F實中的人工智能是技術能夠訓練機器,將人從重復性、簡單性、危險性的繁瑣事務中解除出來。
Thomas J.Sargent:人工智能其實是統(tǒng)計學,只不過用了一個華麗辭藻。
我認為人工智能是機器學習的平方,讓機器自動學習機器算法、是機器學習的理想境界。目前內容包括圖像識別、語音識別、機器學習、機器人、專家系統(tǒng)、計算機視覺、自然語言處理等。
為什么現在大家談人工智能?What powers AI?
是大數據。
現在大數據無處不在,商業(yè)大數據、醫(yī)學大數據、網絡大數據、政府大數據等。針對大數據的共性,解決其對大數據系統(tǒng)和分析的科學挑戰(zhàn)所產生的新興科學叫數據科學。
我個人認為數據科學以應用為背景,包括數據的獲取、存儲、數據分析、科學計算。數據科學的目的是想把大數據解決成智慧數據。
我把它總結為:大數據=系統(tǒng)+分析+應用。
何謂機器學習?
Arthur L Samuel在1959年的“跳棋游戲”論文中創(chuàng)造了“機器學習”這個術語:讓機器從數據中學習并做決策,它是可擴展的統(tǒng)計算法,充分融合統(tǒng)計建模思想和計算優(yōu)化方法。使這些數據分析的思想能在大數據環(huán)境下得到有效的實現。
我個人認為機器學習是:統(tǒng)計+優(yōu)化+實現環(huán)境。
機器學習最后的產品一定是可操作的代碼(Actionable codes)。
為了有可操作的代碼,我們需有優(yōu)化的目標(Optimization objects),為了有優(yōu)化的目標,我們需有統(tǒng)計模型(Statistical Modeling)和經濟效用(Economic Utility)。
現在最常見的是深度學習。
深度學習的概念是很常見的,是數學的函數逼近,它用的是兩種方法,信號源的線性組合,再做非線性的選擇,重復的過程構成很復雜的函數逼近方法。
為何今天深度學習這么成功?
我認為它是很好的權衡偏差和方差的有效方法。深度網絡使得高維函數逼近更加靈活,即偏差很小。
另外90年代,我們就參與建設了這方面的工作,為什么學術界和工業(yè)界現在才大談深度學習?
主要是因為大數據的到來,大數據的到來大大減少統(tǒng)計的方差,樣本量變大,方差自然變小。
現在計算技術使得大規(guī)模優(yōu)化成為現實,使得我們可以在大數據上實現深度神經網絡逼近函數。
簡而言之是非參數統(tǒng)計思想在高維海量數據環(huán)境下的實現。
具體成功案例是圖像識別、機器翻譯、語音處理等等。
這些問題的共同特點是個體差異小,我們說話盡管各有口音,但個體間的差異小,而且信號集已知,你看到的圖像就是你那張圖像。換句話說X是已知的,信噪比大,∈小,學習得比較好。
我們今天要談的主要是機器學習的挑戰(zhàn)。
對于經濟金融、生物醫(yī)學、管理決策和人文社會,機器學習有很多挑戰(zhàn)和機遇,第一是個體差異大,第二是數據集未知。
例如上圖是閃電崩盤,這次發(fā)生的事情和幾年后發(fā)生的事情,可能變量完全不一樣,是什么引起的我們也不知道,所以難以提取特征,需要各學科交叉,使得這方面的發(fā)展挑戰(zhàn)更大。
對金融來說,金融數據的特點是什么?
第一信號低,跟物理不一樣,物理信噪比很強。
第二數據不平穩(wěn),一直是隨著時間的變化而變化的,整個市場也是隨著時間的變化而變化,很多人參與,這是一個競爭的市場。這是對金融的挑戰(zhàn)。
機器能學習金融嗎?回答是肯定的:
第一,資產定價問題,本質上是預測問題,機器學習本身就是為預測設計的。
第二,影響市場的因子變量很多,這些變量往往是相關的。機器學習本身就是為降低維度和變量選擇設計的。
第三,定價的公式,不像物理是推導出來的、有很多假設的。資產定價非常復雜、形式未知。機器學習正是為高維復雜的非線性組合而設計。
基于這三個原因,我認為機器從某種程度上講是能夠學習金融。
如果我有一個黑盒子可以預測金融下一刻的回報,我們應該如何投資?
假設有1000只股票,有這1000只股票的額外收益數據,還有風險因子和公司本身變量數據,我們要預測每一只股票的額外收益或者投在每一只股票上的權重。
如果你預測第i只股票,你肯定要建一個形式,一個是宏觀變量(macro-factors),一個是公司的變量(firm characteristics)。
我們對每一只股票進行預測,常用回歸來做,,
可以是高維線性模型、機器學習模型或者深度學習模型。
舉例來說,我要預測下一個時刻的股票回報,我要用現在時刻市場因子,加上每個預測的參數
肯定跟第i只股票和時刻t有關系。這既依賴第i只股票,也依賴第t天。
我們把做成線性回歸的形式
,把
寫在一起,我們很容易得到1000個變量甚至更多。
有了預測后,我們一般怎么投?1000只股票里,在我預測里的top 10%做多,bottom 10%做空。
首先這應該是Risk-neutral的投資。市場漲時,top 10%漲,bottom 10%降;市場降時,top 10%降,bottom 10%漲。
第二是這樣的投資組合足夠多樣性(diversified)。第三充分體現你的預測信息,哪些股票是top 10%,哪些股票是bottom 10%。
還有一種方法比較好,是6月份剛寫完放在網上的一篇文章。關鍵詞是“Principal Portfolios”,用你估計到的信號和
做一個主成分投資組合。
第三種很傳統(tǒng),用資產定價理論,在時刻t構造一個Portfolio,使得最小化。神經對抗網絡可以解決這種條件預測問題。
以上是資產定價常見的三種方法。
大家自然會問預測成功的因素是什么?一是大數據;二是魯棒性;三是你的模型捕獲能力。
什么是大數據的典型特征?
相依性和厚尾性:我們很多變量都是衡量市場的經濟狀況,必然相關
異樣性、內生性、假相關等
數據缺失,測量誤差
幸存者偏差,采樣偏差
這些特征對金融和宏觀經濟學尤其明顯。
今天我們主要講如何處理相依性和厚尾性一些方法。
接下來我用一個學術上常用的例子預測債券風險溢價來說明。
我要預測的變量是美國債券,債券有2、3、4等年期,可以對每一個債券進行預測。
是131個宏觀經濟系列的月度數據。除此之外我們還有8個國內生產總值,居民消費價格指數等匯總宏觀經濟系列。這131個變量都是衡量經濟的健康狀況,所以他們是相關的。
我們對每一個時間序列算峰度(kurtosis),分布如圖所示。有大概三分之一左右峰度大于,它們應該是厚尾分布。我們自然而然會問:如何處理厚尾?我們從131個變量學習決定市場的因子之外,我們還有8個宏觀經濟時間序列,我們如何使用這8個信息更好地提取市場因子?
如果大家要看論文,可以看看這一篇綜述:Fan, J., Wang, K., Zhong, Y., and Zhu, Z. (2020).Robust high dimensional factor models with applications to statistical machine learning. Statistical Science, to appear.
如果更詳盡大家可以看看我們新著的《Statistical Foundations of Data Science》這本書,有三章會講這方面內容。
什么是因子模型?假設我有1000只股票,有5個影響這1000只股票漲幅的市場因子,不同的股票對不同因子的依賴程度不一樣,因此有一個載荷矩陣 B。
再加上每一只股票自己的特質因素(idiosyncratic components) ,很多時候我們把這兩個部分稱為
。這種衡量1000只股票的相關性,在股票市場上有很多應用,同樣對其它方面也有很多應用。比如根據1000個基因的表達共同性,找出潛在的因子。
我們主要的信息是什么?我們學習了因子后,我們把因子共性的部分完全學習好,把它減掉,則整個信噪比增加。
舉一個簡單的例子。設想我用131個宏觀經濟序列來預測債券風險溢價。這131個變量具有高相關性,機器學習里常用的變量選擇方法,正則性會不滿足。
如果把131個變量分成不同因子:共性+個性,然后把代到
里,我們變成兩部分:共性
和個性
。假設影響這些宏觀變量的共同因子是5個,共性的參數是5個,個性的參數是131個,最后得到136維空間的變量。
這136維空間中變量的相關性很弱,因為相關的部分已經取出來。如果把現在的作為你新的變量,我們平時采用的高維方法就能工作。這就是我們提出的因子調整的模型(FARMselect)方法。簡而言之是先學習共同的因子,然后用
和
作為預測變量。
如果你把學好了,
求出來之后解一解就可以了。整個思想是把原來131個變量變成136個變量,空間變得大了,變量變得弱相關。用共性+個性,和原來的
是等價的,這個過程其實是用因子增進預測能力。
舉一個模擬的例子。這是線性模型,前10個變量對Y有影響,后面的變量沒有影響。X如果是有共同的相關性,假設有250個變量,做100次模擬,每一個時間序列長度是100。
如果我們用原始Lasso來做變量選擇,只有在完全不相關時,Lasso工作得還好。只要相關系數增加一點點,Lasso就不能完全選出這10個變量。
另一方面,如果我把這250個個性,加上每一個共同的因子拿出來作為第251個變量,就可以達到100%的正確模型選擇。如果說不知道是不是251個,而用255個可以嗎?可以,也可以得到這樣的效果。
如果Σ設成像標普500只成分股那樣的協方差,最后的結果是一樣的,我們可以百分百把重要的變量選出來,其他的方法做不到。
同樣的話,我們可以把這個方法拿來做統(tǒng)計推斷。比如我們自然而然會問到底有多少共同基金有技能(positive alpha)?設想我有1000個共同基金,我們把分成共性+個性。
以前最簡單的做法是把每一個共同基金的額外收益平均作為統(tǒng)計量,這樣的統(tǒng)計量肯定是相關的,有共同因子,且噪音比較大。我們所說的因子調整是學習共同的因子并減去,這樣得到的統(tǒng)計量是弱相關,且減少噪音。
我們有相關的模擬試驗來證明,我只是做一個簡單的介紹。想象我們有500只股票,為了圖像方便理解,25%的基金有技能,為0.6, 75%沒有
。假設觀測100天,只是做500只基金平均回報的直方圖,基本分不出哪部分有技能,哪些沒有。
如果我們把共同因子先學習一下然后減掉,就比較容易區(qū)分了。因為是t3-分布,尾巴比較重(heavy-tailed),如果我們做魯棒均值估計, 就可以把這兩者分得很開。
同樣地,因子學習后,我們也可以做預測。從131個宏觀變量里,我可以學到5個潛在因子,有8個匯總宏觀變量,加起來有13個變量。最簡單的是用這13個變量做線性回歸來預測債券風險溢價。
另外一種是構建預測指標,整個模型看起來像神經網絡。我們認為有一些共同的因子影響這些宏觀變量,所以從131個宏觀變量中學習共同因子后,構造預測指標,最后預測債券風險溢價。
提起因子,除了我們平時做的主成分分析之外,我們如何把8個額外的變量加入因子學習的過程中?很簡單,是常見的因子模型,假設這幾個未知因子
跟
是有關系的,對這個模型我們如何操作?
我們對每一個宏觀經濟序列和8個匯總宏觀變量
做回歸,這個擬合所得是X用W回歸的擬合值,再對該擬合值做主成分分析,這樣就把8個變量糅合到131個變量里。
為什么這個方法可行?因為做回歸從數學上來說是基于條件期望。我們做投影的目的是什么?先把這部分的噪聲平滑掉,這樣就可以把因子學得更好。這是我們主要的想法。
因子模型還有其他的應用。比如金融風險建模,對高頻金融里流動性強和差的股票之間的協方差矩陣的估計,用矩陣填補的方法可以獲得。你也可以用相關性來學習社區(qū)增強自回歸模型之類,其關鍵是降維。
因子模型的目的是處理相關性,接下來我講幾分鐘我們如何處理穩(wěn)健性。假設你給我們的數據不一定是正態(tài)分布的,也可能是t分布的,有均值及方差。
我們平時對數據最簡單的處理是剪裁或截斷,如把數據在-3到3個標準差之間就保留,其余就截掉,這樣做好處是肯定產生偏差。如果τ選擇的足夠大的話,這種偏差是可以忽略的:裁剪的數據的樣本平均跟原來的母體平均的差別就像數據是來自高斯分布一樣。
換句話說,如果τ足夠大,那么裁剪樣本平均與母體平均之間的區(qū)別跟正態(tài)的樣本平均與母體平均之間區(qū)別是一樣的,最后的分布是具有高斯的尾部性質。
說寬泛一點的話,裁剪樣本平均表現像高斯分布,而沒有裁剪樣本平均表現像柯西分布。為什么我們以前不太強調裁剪?因為我們在低維傳統(tǒng)統(tǒng)計中做樣本平均不多,在高維統(tǒng)計中會做很多樣本平均。所以高斯?jié)饪s(Gaussian concentration) 是高維統(tǒng)計的核心。
舉一個例子。如果你給我1000只股票,我要做投資,我要估計這1000乘1000個協方差矩陣,應該有50萬個參數左右。所以要算樣本均值50萬個。
如果數據是厚尾的,最后的協方差矩陣就不魯棒。如果用了裁剪,當數據僅具有4階距,就能實現與高斯數據的樣本協方差矩陣相同的估計精度。
做回歸時,如果我們用裁剪數據不是很方便,這時候我們會用Huber 損失函數。為什么說是自適應Huber 損失,是因為是跟你的樣本量有關系。基本在里面是一個二次型,外面是一個線性的。
我們這里畫了這么多圖,是因為我們用了很多不同的。這顯然對回歸更方便,就像前面說的高斯?jié)饪s性質任然成立,這是兩個魯棒方法的主要思想。
簡單做個小結:
我們用因子模型來解決觀測到股票相關的問題。我們是用裁剪數據來解決魯棒問題,對回歸問題我們用裁剪損失函數,即Huber損失函數,來得到魯棒性質的。我們說過預測的好特征必須是魯棒。
債券風險溢價預測
關于溢價預測,我們現在有兩種因子學習方法:
一是傳統(tǒng)因子學習方法。從131個未匯總的宏觀變量中提取因子,加上8個匯總的宏觀變量,一共是13個變量,來預測債券風險溢價。
二是投影主成分(PPCA)。直接糅入
里面一起學習。不是簡單地從131個變量變成139個變量來學習,而是用投影主成分分析來學習,因為這兩種變量不一樣,
是未匯總的,而
是匯總的。然后用新的
和
作為預測變量。
我們來看一下預測的效果。如果我預測兩年期的債券風險溢價,用傳統(tǒng)方法學習到5個因子,再加上8個匯總宏觀變量,一共13個做線性回歸,得到的Out-of-sample R2,有24%的債券風險溢價能夠被這131+8個變量所預測。
如果因子學習得好一點,把揉入學習因子,就是投影主成分分析,這一下預測率就可漲到32.6%。如果說把統(tǒng)計的穩(wěn)健思想都加進去的話,就可以預測到38.1%。對三年期也是一樣,從21-28-32%。這些預測都是用線性模型做的。
如果我們用非線性模型來預測,效果比剛才的預測都要好,最后Out-of-sample R2可以達到45%左右。這就可以看出來穩(wěn)健方法和PPCA因子學習一起學習比較好,這是其改進的程度。
接下來簡單介紹高頻交易的預測。高頻交易在過去10年里是高速增長的,帶來了金融大數據。到2015年,高頻交易在美國股票市場占比超過50%,約55%左右,在歐洲大概占40%左右,日本大概是30%左右。其他的亞洲國家是5%左右,高頻交易是在其他亞洲國家出現得比較少。
從2012年10月到2014年十月,在外匯交易中,80%的交易量是算法交易,其中多半是高頻交易。所以高頻交易顯然是把大數據帶到金融世界里。
我們自然而然會問機器學習的方法是不是能夠幫助我們做預測或者做高頻交易?這個環(huán)境顯然是大數據環(huán)境。我們總的目的是要用過去預測未來。
那么,自然而然需要問,什么是可以預測,Momentums可以預測還是Durations可以預測?那么,什么是有用的預測因素呢?我們要往后看多久?現在機器學習的方法有沒有任何優(yōu)勢?
關于TAQ數據這個我們就不多講了。
我們說的Momentum是這樣定義的。如圖紅點(出價)和綠點(要價),它們未來或往上走或往下走。
第一次,這兩個點同時往上或往下走1-tick,對這個例子來說正好是負的,我們就定義。如果我們繼續(xù)等待這兩個點同時往上或往下走2-tick時,這兩個點同時往上走,是正的,也就是
。
簡單來說,我們的Momentum是站在現在的時刻(也即是t),+1表示往上, -1表示往下。在中間的交易量,t到t'之間稱為duration。1-tick的Duration表示的是當前時刻t到下一個同時往上或者往下走1-tick的時刻t'之間的交易量,用表示,Duration
同理。
我們問的是站在現在這個時間,我們能不能預測?我們能預測的變量顯然來自于交易數據,包括交易價格、交易量多少、還有交易方向(是買入還是賣出)。對于報價數據,有最佳買入價和最佳賣出價
,和它們相應的買入量
和賣出量
,一共7個變量。如果往后看L步,那就是7乘L。
為了簡單起見,我用表示
(最佳買入價格)和
(最佳賣出價格),
表示
(最佳買入量)和
(最佳賣出量),上述這些都是原始數據。
另一方面,是專家構造的預測因子,由于定義比較復雜,公式我沒有寫出來,例如Order Book Imbalance和Order Flow Imbalance。上述全部就是我們構造的變量。
首先嘗試微軟的Momentum能否預測?我們最后的結論是可預測的。我們對微軟的數據用過去50個最佳報價,每一個包含bid和ask,所以一共100個變量。我們用過去10天的數據訓練,5天的數據做測試。
如果你只是做最佳隨機預測(BRG),基本正確率是50%左右。如果你做邏輯回歸(LR),大概是在55%左右。如果做EN,大概也是55%左右。如果用隨機森林(RF),你可以達到59%左右。GBT和FNN都差不多是59%左右。換句話說,機器學習的確有優(yōu)勢。
怎樣的變量是重要的?用綠線表示所有7個變量的結果,紅線表示選擇的一個子集(quote size和trade direction)的結果,紅線比隨機預測多預測8%。用該子集預測的效果跟用所有的變量預測幾乎差不多。如果往后看,這是,大概有900個變量。這時候過度擬合就可以看出來。但是如果用GBT或者FNN,過度擬合就不存在。
如果用專家設計的變量,例如OBL,不管你用哪個機器學習的方法來做,沒有超過8%左右。如果你用OFI來做,效果更差。
第一幅柱狀圖是我們用原始數據來做的,第二幅是原始數據+專家構造的變量來預測,最后的效果幾乎差不多,說明機器完全學習了專家的變量。
第三幅是用瞬時的原始數據做的,第四幅是瞬時的原始數據+專家構造的變量。加專家構造的變量幾乎沒多少改進,說明專家建立的變量已經被機器學習的變量所涵蓋。
如果是0.5個tick,預測結果就會高很多。如果是2個tick,效果幾乎是差不多的。
對duration,我們也可做類似的研究。這時duration是有多少交易量,它是一個連續(xù)的變量,所以我們做的是線性回歸,用Out-of-sample R2來衡量。
由于時間關系,我不再贅述。這個圖是說加專家構造的變量可能對預測duration有一點點幫助,但幫助可能不那么大。
對我們剛才高頻數據一個簡單的總結如下圖:
文本數據與資產定價
由于時間不多,我簡單介紹文本數據以及資產定價。這是我以前的學生,他用我們的篩選方法來做,我把他們的結果快速介紹一下。目的是學習文件和新聞的褒貶度,用它預測選擇股票。傳統(tǒng)一般用基于Dictionary的方法。
這是一個IBM的短文為例。詞典中總共有38,862個單詞,其中只有160個出現在短文中。
我們有一個n × m個文檔-詞匯矩陣d。假設100萬條新聞有4萬個詞匯。我們把這4萬個詞匯變成S(帶情感詞匯) 和 N(情感中性詞匯)。我們主要關心帶情感詞匯。
假設選出來的200個詞,在第i個短文里出現5次第j個單詞,這樣,得到一個100萬x200的矩陣。如果這個文章的褒貶程度是百分百正,這個單詞出現的概率是多少?如果是百分百負的話,這個單詞出現概率多少?如果這第i個文章的褒貶程度是
的話,這個單詞出現概率則是它們兩個概率的加權平均。
這樣第i個文章中S詞匯出現的次數服從多項分布,其中
表示S詞匯在百分之百正的文章中出現的概率,
表示S詞匯在百分之百負的文章中出現的概率。最后給定一個短文或者新聞,假設這個股票漲或者降與這篇文章對股票的褒貶程度
的關系呈單調性。這是我們的模型。
我們如何學習?第一步學習哪些單詞帶有情緒,我們對每一個單詞可以計算:包含該單詞的新聞出現的那天回報是正的,除以該單詞出現的次數。即在回報是正時,它出現的頻率有多少?越靠近百分百,說明它是正面的詞;越靠近0,它應該是負面的詞,因為回報要么是正的,要么是負的。
如果我們用最簡單的相關篩選方法來做,看每個單詞跟正回報之間的相關性是多少,做一個簡單的掃描我們的文件集,我們大概掃描出100-200個詞左右。這100-200個詞里頻率出現最高的有比如rally、undervalue等都是正面詞匯。相似的,blame、shortfall、fall等都是負面的詞匯。
我們用很簡單的方法,比如你選top 100個詞匯,然后再選bottom 100個詞匯,就是褒義和貶抑的單詞200個詞左右。
下面就是讓計算機學習詞義,比如我們有100萬條新聞和200個單詞,就是100w × 200大小的矩陣,這是單詞出現的次數或者出現的頻率。
按我們剛才的模型,出現的概率等于出現在百分百是正的文章概率是多少,以及出現在百分百是負的文章概率是多少的加權平均,這是常用的主題建模(topic modeling)。寫成矩陣P大小為100萬乘2,以及θ為2乘200。如果你給我每篇文章的情緒或者褒貶程度P,我就能夠把θ求出來,即把詞義學習出來。
這個P如何學習?這個學習直接跟股票回報連在一塊。因為我們有100萬篇文章,每一篇文章都有那天的回報,所以你很容易看第i個文章回報的排名是多少。
這篇文章回報的排名就變成這篇文章情緒的排名。有了,我們就可以學習情緒θ,學習了情緒后,對未來新的文章就很容易給出一個分數。已經知道未來文章的200個詞的詞義,唯一不知道的是這篇文章能打幾分。因為我們有Multinomial Model,所以就很容易把
用極大似然法求出來。把它求出來,這篇文章就有新的分數。
總結一下,先用相關性篩選法把與情感相關的詞匯選出來;然后對過去100萬個文章,按他們回報的高低來給他們情緒打分;有了情緒打分P之后,就可以把詞義學習出來;對未來新的文章就可以用Multinomial統(tǒng)計學習得到它相應的分數。
以下是具體的應用,數據來自Dow Jones Newswires 1989-2017年,有650萬條新聞。我們用前15年的數據作為學習,其中10年數據作為訓練集,5年數據作為驗證集,選擇最優(yōu)參數。2004-2017年數據做為測試,使用第t天的情緒來預測第t + 1天的收益。
交易策略是什么?對每天每個新聞打分。我們買最高、最好的新聞的股票50只,做空分數最低的50只股票。我們投資策略是Equal-Weighted或是Value-Weighted。最后是Zero net investment construction。
投資的效果是什么?黑線是我們剛剛畫的long-short equal-weighted表現。黃線是SP500,要低很多。仔細看L-S的return,Sharpe ratios (SR)是4.29,average return大概是33%,用Fama-French 5個因子加上momentum factor(FF5+MOM)的風險調整后的alphas大概是32,而且匯報與這些風險因子幾乎無關。
比較Dictionary方法與RavenPack,我們的方法更有效。
下圖是Speed of News Assimilation,如果你投得太晚,新聞的價值很快就沒有了。
總結如下:
IEEE Fellow王強:在深度學習里使用監(jiān)督或者半監(jiān)督的模型,我也可以看到lowest數據或是非lowest數據,您覺得PCA方式跟深度學習的方式,哪個更好用?
范劍青:這個提問很好。PCA本身是線性的因子學習。做PCA的目的是想將相關的變量的共性跟特性分開。對于很相關的變量,例如剛才把131個變量直接放在機器學習里,可能會包含太大的相關。
我們主要想講的是PCA將共性和個性分開,可以把136個變量放到深度學習里。深度學習可以作為很好的預測方式,但是如果變量很大相關的話,可能預測效果并不好。PCA要學習的東西跟深度學習要學習的不完全一樣,可以互補。
雷鋒網雷鋒網雷鋒網
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。