chatgpt算法解析 2023年Transformer架構下的量價選股策略 ChatGPT核心算法介紹
一、 核心算法介紹
是美國人工智能研究公司研發和訓練的一款基于GPT算法的 大型對話式語言模型,通過RLHF( from ) 基于人類的反饋對模型進行強化學習的優化。與傳統對話式語言模型相比, 不僅可以實現與用戶真實流暢的交流,同時還具備許多其他功能,如文案 撰寫、代碼編寫等,只需輸入簡單的關鍵詞就能快速輸出相關內容。
GPT( Pre- ,生成型預訓練轉換模型)是一種 基于海量數據預訓練的深度學習文本生成模型,自2018年問世以來,經歷了多輪迭 代和優化,目前使用的GPT-3.5模型中神經網絡的參數超過1750億個,是 有史以來參數最多的神經網絡模型之一。同時,伴隨著逐步出現在公眾視 野,也在不斷使用對抗性測試程序和的經驗教訓對GPT進行迭代調 整。2023年2月8日,微軟宣布將的GPT-4模型集成到其搜索引擎Bing以及 Edge瀏覽器中,這意味著GPT-4將能夠更加直接地服務于用戶,提供更加便捷、智 能的搜索和交互體驗;同時,也于2023年3月15日正式推出了大型多模態模 型GPT-4,該模型能夠同時處理語音、圖像、文本等多種輸入,并生成高質量的自 然語言輸出。
GPT模型的誕生,離不開其背后的核心算法:。模型 最早在機器翻譯團隊發表的論文 is All You Need中被提出,與RNN 和LSTM不同,它采用了完全不同的結構來處理輸入序列。為了解決傳統循環神經網 絡在長序列上記憶能力不足、訓練時間較長等問題,模型沒有使用循環 的模型框架,而是通過引入注意力機制來有效地捕捉輸入序列中各位置之間的相關性,建立輸入和輸出之間的全局依賴關系。因此,相比于傳統循環神經網絡, 模型不僅具有更好的解釋性,并且可以進行更多的并行計算以縮短訓練 時間。由于其出色的性能,模型和注意力機制成為了人工智能領域的研 究熱點,并開始廣泛應用于其他各個領域中。
(一)自注意力機制
自注意力機制的輸入為詞嵌入生成的詞向量矩陣X或上一個編碼層/解碼層的輸 出。對輸入進行線性變換得到三個矩陣Q(查詢)、K(鍵值)、V(值),矩陣X、 Q、K、V中每一列代表一個詞向量(輸入樣本)。
(二) 模型
模型的整體結構,主要由位置編碼( )、 編碼層()和解碼層()組成。位置編碼的作用是在詞向量中加入 了單詞在句子中的位置信息;編碼器的作用是將序列中各位置之間關系的信息進行 編碼并輸出;解碼器的作用是使用編碼器輸出的序列信息逐個詞進行預測。
1. 位置編碼
由于模型中沒有使用循環的模型框架,直接利用全局信息,沒有利 用單詞的順序信息,因此必須在詞嵌入生成的詞向量矩陣中加入單詞的相對或絕對 位置信息。
2. 編碼器
編碼器由多個編碼層堆疊組成,每個編碼層又有兩個子層,第一層是一個多頭 自注意機制,第二層是一個使用ReLU激活函數的前饋全連接層。同時在每個子層后 都會使用殘差連接,讓網絡更關注層與層之間差異的部分,然后還會進行層歸一化,加快模型的收斂。 編碼器的輸入為經過詞嵌入和位置編碼后的序列矩陣chatgpt算法解析,輸出為與輸入矩陣大小 相同的包含序列中各位置之間關系的矩陣。
3. 解碼器
解碼器也由多個解碼層堆疊組成,每個解碼層中除了和編碼層相同的兩個子層 外,中間還有一層特殊的多頭注意力機制,該子層使用解碼層上一個多頭注意力機 制子層輸出線性變換得到的查詢矩陣Q、編碼器輸出線性變換得到的鍵值矩陣K和值 矩陣V,執行多頭注意力機制。與編碼器類似,在每個子層后都會使用殘差連接,然 后進行層歸一化。 由于模型是逐個單詞進行預測,因此解碼器是串行進行的,每一步 會利用上一步的輸出進行預測。在預測第一個單詞時,解碼器的輸入為序列開始標 簽,輸出為第一個單詞的預測;而在預測第二個單詞時,解碼器的輸入為+第一個單詞組成的序列,輸出為第二個單詞的預測;以此類推直至輸出的 預測結果為序列結束標簽。 而在訓練時為了加速訓練過程,標簽值一般為整句輸入,并行進行的,因此為 了保證訓練和預測過程的統一,解碼器中的第一個多頭注意力機制會加入掩碼操作, 確保對位置i的預測只能依賴于位置i以前的已知輸出。
二、基于量價數據的股票漲跌預測模型
(一) 模型在股票漲跌預測中的應用
模型在NLP領域的巨大成功展示了它對序列數據的強大建模能力, 我們嘗試將其思想引入到股票漲跌預測中。但模型最初是專為機器翻譯 任務量身打造的,因此本報告對模型進行了以下三點修改使其適用于股 票預測模型:
1. 替換詞嵌入層為線性層
在NLP領域,需要通過詞嵌入將文本中的詞轉換為詞向量作為輸入,而在股票 數據中既有行業這樣的分類數據,也有漲跌幅、換手率、財務指標等數值型數據。 如果輸入只有分類數據則可以將時序看作是一個句子,繼續使用詞嵌入層;但在大 多數情況下,輸入基本都會有數值型數據,不能通過詞嵌入的方式進行轉換。為了 能同時處理分類數據和數值型數據,我們將詞嵌入層替換為常規的線性層,通過線 性變換代替詞嵌入的過程。
2. 拓展數據輸入到面板數據
在股票預測模型中,一般會輸入多個特征的時序數據,即面板數據。雖然 模型最初是設計為接收一維序列(即一個句子)作為輸入的,但通過將 詞嵌入層替換為線性層的修改后,模型可以直接處理多維序列(即面板數據)。
3. 取消解碼器的逐個預測機制和掩碼操作
在NLP領域中,大部分任務可以轉化為序列到序列()問題,即輸入和 輸出都是序列,如機器翻譯、對話系統、語言識別等。為了利用已有輸出,在NLP 問題中解碼器會逐個樣本進行輸出,并在訓練時使用掩碼操作處理輸入序列。而在 股票預測中,我們通常希望能準確預測未來一段時間的收益情況,因此模型輸出一 般為一個值(回歸問題)或漲跌概率(分類問題),因此我們對解碼器進行簡化, 取消了逐個預測機制和掩碼操作。
(二)模型的數據處理和訓練樣本篩選
1. 缺失值處理
當股票某一時刻的特征值缺失時(上市不滿20個月的情況除外),使用上一時 刻的特征值進行填充。
2. 極值、異常值處理
當股票的特征顯著偏離同時刻股票特征數據時,設置邊界閾值進行極值處理。 上邊界為同時刻特征數據的均值加三倍標準差;下邊界為同時刻特征數據的均值減 三倍標準差。當特征值超過上邊界時用上邊界替代;低于下邊界時用下邊界替代。 使得所有特征值位于相應的上邊界和下邊界之間。
3. 截面標準化
在處理完特征數據后,我們需要對股票的漲跌添加“標簽”,作為模型的輸出。 股票漲跌預測模型是希望預測出相對強勢的股票,獲得超額收益,因此我們對于每 一時刻的所有股票,根據未來一個月的漲跌幅來給不同的股票添加“上漲”、“平 盤”、“下跌”的“標簽”。同時為了使不同標簽樣本之間的區別更明顯且樣本數 盡可能接近,我們還進行了樣本篩選: 對每月對樣本內的所有股票按下個月相對基準的超額漲跌幅進行排序,取漲幅 前20%的股票,標記為“上漲”;取漲幅居中20%的股票(漲幅位于40%分位數到 60%分位數之間),標記為“平盤”;取漲幅末20%的股票chatgpt算法解析,標記為“下跌”。 通過樣本篩選,使得不同標簽樣本之間的區別更明顯。如果不進行樣本篩選,直接將所有股票按下個月的漲跌幅三等分,則位于不同標簽分隔處的兩只股票會被 劃分至不同標簽,但實際上兩者之間的差異并沒有那么大,這樣的劃分不利于機器 學習模型的訓練。
(三)模型的參數選擇和整體結構
序列向量維度(經過替代詞嵌入層的線性層處理后的維度)、多頭注意力機制頭 數、編碼器和解碼器層數需要我們提前設定,通過網格搜索方法,參數組合確定為:
1. 序列向量維度d=64
2. 多頭注意力機制頭數h=8
3. 編碼器和解碼器層數N=6
最終模型結構如下: [20,2](輸入層)→[20,64](線性層)→8×[20,8](編碼層1)→8×[20,8](編 碼層2)→8×[20,8](編碼層3)→8×[20,8](編碼層4)→8×[20,8](編碼層5)→ 8×[20,8](編碼層6)→8×[20,8](解碼層1)→8×[20,8](解碼層2)→8×[20,8] (解碼層3)→8×[20,8](解碼層4)→8×[20,8](解碼層5)→8×[20,8](解碼層6) →[3](輸出層) 模型共有個參數需要進行訓練。
三、策略實證分析
(一)中證 500 選股實證分析
本報告首先以中證500指數成份股作為股票池進行模型的訓練和選股策略的回 測。從2000年至2019年獲取樣本進行訓練,在2020年到2023年(樣本外),用訓 練好的預測模型進行策略回測。
1. 中證500選股-因子IC和分檔收益率實證分析
因子IC是指個股截面因子值與個股下期收益率之間的相關系數,因子秩IC則是 指個股截面因子值排序與個股下期收益率排序之間的相關系數,兩者都能夠反映因 子提供超額收益的能力。在回測期內因子的IC表現和秩IC表現,IC平均值為0.034,標準差為0.081;秩IC平均值為0.027,標準差為0.092。
2. 中證500選股-多空對沖策略實證分析
假設可以賣空最低檔(第五檔)的股票,買入最高檔(第一檔)的股票,多空 對沖策略自2020年以來,策略的年化收益率為18.51%,最大回撤為-9.46%,日度 勝率為55.05%。
3. 中證500選股-指數對沖策略實證分析
以中證500指數為對沖標的,指數對沖策略自2020年以來,策略的年化收益率 為9.58%,最大回撤為-3.62%,日度勝率為54.40%。
指數對沖策略分年度的收益回撤情況如下表所示,策略每年都獲得了正收益, 除了2023年的前3個月之外,指數對沖策略每年的收益率都超過了8%,且最大回撤 控制在-4%以內(注:2020年數據從2020年1月31日開始;2023年數據截止到2023 年3月31日)。
由于采用量價數據,策略的換手率較高,每次調倉的平均換手率為63.67%,年 化換手率為7.64倍。
前文中是按照0.3%的雙邊交易成本進行測算,如果將交易成本依次提高到0.4%, 0.5%和0.6%,指數對沖策略表現如下圖和表所示。當交易成本提高時,策略表現有 所下滑,但總體表現穩定。
4. 中證500選股-模型訓練參數討論
在前文中證500選股實證分析中,由于需要處理一定規模的訓練數據(約6萬個 樣本),為了提高計算效率并增強模型的泛化能力,避免過擬合,我們將 size 設置為128;同時,我們還在模型的收斂速度和穩定性上取一個折中,將學習率設置 為0.001。 在確定參數時,我們選擇了一個相對穩定的區域,如下圖所示。迭代次數 較小時,多頭組合的收益率較低且存在較大波動;迭代次數過大時chatgpt算法解析,模型已經接近 收斂,且存在一定的過擬合,多頭組合的收益率同樣較低且不穩定;而在38 至52范圍內,多頭組合收益率整體上趨于平穩,并且有著較高的收益率。
(二)滬深 300 選股實證分析
其次,本報告將股票池轉變為滬深300指數成份股,進行模型的訓練和選股策略 的回測。從2000年至2019年獲取樣本進行訓練,在2020年到2023年(樣本外), 用訓練好的預測模型進行策略回測。
1. 滬深300選股-因子分檔收益率實證分析
以1個月為調倉周期,在每一次調倉時,按照因子值的大小將股票分為5檔,測試因子選股表現的單調性。
2. 滬深300選股-指數對沖策略實證分析
以滬深300指數為對沖標的,指數對沖策略自2020年以來,策略的年化收益率 為8.52%,最大回撤為-7.26%,日度勝率為52.85%。
(三)全市場選股實證分析
最后,本報告將股票池拓展至全市場A股,進行模型的訓練和選股策略的回測。 從2000年至2019年獲取樣本進行訓練,在2020年到2023年(樣本外),用訓練好 的預測模型進行策略回測。
1. 全市場選股-因子分檔收益率實證分析
以1個月為調倉周期,在每一次調倉時,按照因子值的大小將股票分為5檔,測 試因子選股表現的單調性。
2. 全市場選股-多空對沖策略實證分析
假設可以賣空最低檔(第五檔)的股票,買入最高檔(第一檔)的股票,多空 對沖策略自2020年以來,策略的年化收益率為15.58%,最大回撤為-12.09%,日度 勝率為56.61%。
多空對沖策略分年度的收益回撤情況如下表所示,策略每年都獲得了正收益, 除了2023年的前三個月之外,多空對沖策略的收益率都超過了14%。(注:2020年 數據從2020年1月31日開始;2023年數據截止到2023年3月31日)
四、 模型與傳統機器學習方法的對比
作為一種基于自注意力機制的神經網絡模型,與傳統機器學習方法進行比較時, 模型在股票漲跌預測任務中具有以下優點:
1. 處理長期記憶
在股票漲跌預測任務中,由于上漲或下跌趨勢中伴隨震蕩區間,而在震蕩區間 后漲跌往往并不取決于短期的震蕩走勢,而是更與長期記憶中的上漲或下跌趨勢相 關。在循環神經網絡(RNN)中,由于模型結構問題,難以有效地捕捉到時間序列 中的長期依賴關系;而在卷積神經網絡(CNN)中,卷積核的大小通常是固定的, 因此只能考慮到局部信息,難以處理長期依賴。而模型通過引入自注意 力機制和位置編碼突破了傳統模型結構的限制,直接建模序列之間的全局依賴關系, 具備同時建模長期和短期時序特征的能力。
2. 變長輸入序列
在股票漲跌預測任務中,歷史數據的長度可能是不固定且存在缺失值的,傳統 機器學習方法需要進行數據填充或截斷處理不同的輸入序列,在一定程度上影響了 模型的性能。而模型可以通過自注意力機制和位置編碼直接處理變長的 輸入序列,無需進行數據填充或截斷,避免了信息浪費和預測偏差。
3. 并行計算效率
股票歷史數據的長度通常很長,因此訓練過程需要耗費大量時間和計算資源。 與傳統機器學習方法相比,模型的多頭注意力機制可以使得不同位置的 信息可以同時參與計算,從而實現了并行計算加速訓練過程,進一步提高了訓練的 效率,更適合處理大規模的時間序列數據。
4. 預訓練模型提高泛化能力
模型的預訓練模型(如BERT、GPT等)已經在自然語言處理等領 域取得了很好的效果,這些預訓練模型可以用來初始化或微調模型,提 高模型的泛化能力。
五、總結與討論
本報告將模型引入投資領域,運用其對于序列強大的全局建模能力 預測股票漲跌,通過對在中證500成分股、滬深300成份股以及全部A股中選股的實 證分析,證明了因子具有良好的組合管理能力。在回測期內,因子分檔 結果具有較好的單調性,對沖獲取的超額收益較為穩定。
(本文僅供參考,不代表我們的任何投資建議。如需使用相關信息,請參閱報告原文。)
免責聲明:本文系轉載,版權歸原作者所有;旨在傳遞信息,不代表本站的觀點和立場和對其真實性負責。如需轉載,請聯系原作者。如果來源標注有誤或侵犯了您的合法權益或者其他問題不想在本站發布,來信即刪。
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。