本研究文章出處來自 https://arxiv.org/abs/2309.03079v1 全文翻譯如下
上市公司的年度報告包含有關其財務健康的重要信息,這有助於評估公司股票價格的潛在影響。這些報告通常非常詳盡,有時甚至超過100頁。即使對於單一公司,分析這些報告也是繁瑣的,更不用說對所有存在的公司進行評估了。多年來,金融專家已經變得熟練,可以相對快速地從這些文件中提取有價值的信息。然而,這需要多年的實踐和經驗。本文旨在通過充分發揮大型語言模型(LLM)的能力,簡化對所有公司的年度報告進行評估的過程。LLM生成的見解被編制成類似量化金融風格的數據集,並通過歷史股價數據進行擴充。然後,使用LLM的輸出作為特徵來訓練機器學習模型。前向測試結果顯示在S&P 500指數回報方面具有潛在的超越性能。本文旨在為這個方向的未來工作提供一個框架。為了實現這一目標,代碼已經被開源發布。
GPT-InvestAR開源程式碼資料放於文末
更多AI知識的學習,可到104學習精靈-AI 人工智慧基金知識庫:一讀就懂的入門 免費加入公開課學習
或參加 一堂課讓你「趕上」ChatGPT/Midjourney運用,領取證書快速為自己的專業加分!!
以下正文開始
1 引言 本文所考慮的股票來自美國股市。具體來說,它包括美國市值前1500家公司,這些公司屬於S&P 500大型股指、S&P 400中型股指和S&P 600小型股指的一部分。美國上市公司必須向美國證券交易委員會(SEC)提交全面的年度報告,即10-K報告。這些報告提供了關於公司財務績效、運營情況和潛在風險的詳細和標準化概述,為投資者和監管機構提供了全面的公司健康和前景洞察。它是投資者、分析師和其他利益相關者做出有關投資或與公司互動的知情決策的重要信息來源。10-K報告被投資者用來評估公司的財務報表,包括資產負債表、損益表和現金流量表。為了本文的目的,10-K報告和年度報告這兩個術語被視為可以互換使用的。
**除了提供公司的財務報表,包括資產負債表、損益表和現金流量表外,10-K還提供其他有價值的信息,這些信息不能通過財務指標和比率直接捕獲。這些信息包括業務概述、風險因素、管理層討論和分析(MD&A)、法律訴訟等部分。評估這些部分是具有挑戰性的,因為它們無法表示為單一的數值。它們的分析是主觀的,受讀者的觀點、經驗和查看它們的背景的影響。
近來,大型語言模型(LLM)如GPT-3.5(也稱為ChatGPT)已經成為增強對廣泛文件理解和分析的強大工具,包括文件摘要等任務。在金融應用的背景下,A. Lopez-Lira等人顯示LLM可以成功用於股價預測。在我們的用例中,我們探索了使用LLM回答金融分析師可能對公司具有的問題的可能性,這些問題可以使用年度報告的信息來解答。一個這樣的問題的例子可能是:“公司是否有明確的增長和創新戰略?最近有什麼戰略舉措或合作夥伴關係嗎?”
2 背景和相關工作 本文使用OpenAI的GPT-3.5版本,這也是目前ChatGPT所使用的版本。像GPT-3.5這樣的LLM,由於在大量數據上進行了訓練,具有先進的自然語言理解能力,可以根據提供的上下文回答用戶的查詢。在他們的工作中,A. Lopez-Lira等人構建了一個包含特定公司新聞標題的提示,然後要求LLM為該新聞標題分配正確的情感,以確定股價在接下來的一天內的變動。他們的研究結果顯示,基於情感分析的ChatGPT支持的股票選擇具有統計上顯著的預測能力。儘管他們的工作在金融中應用LLM方面提供了有價值的見解,但也存在一些挑戰。首先,他們指示LLM對提示提供三元響應,這直接用於買入或賣出公司股票的決策中。在機器學習(ML)術語中,這種方法依賴於單一特徵(預測變量)來預測回報。這種方法在實踐中是有效的,如他們的方法所示,但可能存在更複雜的交互作用,可以提高性能。其次,因為股票是基於新聞標題每日選擇的,而沒有考慮組合的轉換,所以這種方法導致了重大的交易成本。在他們的論文中,他們證明了包含交易成本對策略的净回报具有顯著的影響。具體地說,當每筆交易成本為0.25%時,净回报會大幅下降,從500%降至50%。D. Blitz等人顯示,在考慮交易成本後,較短的時間框架信號是不賺錢的,並且較長的預測時間(六個月、十二個月)可以產生可觀的正净收益。
從A. Lopez-Lira等人的工作中獲得啟發,以應用LLM在投資決策中,但也考慮到短期交易的缺點,本研究引入了從全面的公司年度報告中獲得見解的概念。由於這些報告每年發布一次,因此從這些報告中生成的信號具有較長的持續時間,使用這些信號進行股票選擇每年將幾乎不會產生交易成本。此外,在本文中,機器學習模型與LLM的輸出結合使用,以預測即將到來的一年中表現最佳的股票。ML模型能夠選擇相關的特徵,同時忽略不太重要的特徵。此外,它能夠捕捉特徵之間的復雜關係,最終實現更準確的預測。
3 數據 這個練習的主要要求之一是獲取市值前1500家公司的年度報告。SEC的Edgar數據庫包含公司的歷史10-K報告。這些報告被檢索並存儲在本地,並附有它們的提交日期。為了本練習的目的,從2002年到2023年獲取了10-K報告,總計24,200份文件,佔據約85GB的磁盤空間。
這些報告中的信息幫助我們回答有關公司財務的具體問題。當問題涉及公司報告時,10-K中的相關數據充當了LLM回答問題的上下文信息。這些問題的答案被用作機器學習模型的輸入特徵。有關此的更多細節在第4.3節中進行了共享。除了為ML模型生成特徵,還必須分配相應的目標值。股票的目標值是由兩個連續的年度報告提交日期之間的百分比回報計算而來。為了保守起見,將股票價格在提交日期之後的第二天作為起始點,將在連續提交日期之前的兩天作為結束點。除了捕捉從開始到結束的回報百分比之外,還捕捉了在時間的第25百分位、50百分位和75百分位時的回報。還計算了該期間股票實現的最大和最小回報。有關為ML模型提供目標值(從原始回報中)的詳細信息在第4.4節中討論。除了計算特定股票在起始和結束期間的回報之外,還計算了在同一期間內S&P 500指數的回報。當在測試集上應用ML模型時,這有助於將股票組合回報與S&P 500回報進行比較。
4 方法 4.1 存取年報 要構建數據集,需要訪問市值前1500家公司的歷史10-K報告。這些公司的列表以及它們的股票符號(標誌)可以從維基百科獲得。儘管報告可以在SEC的存檔數據庫中獲得,但挑戰在於識別相應的URL。為此,可以使用Financial Modeling Prep等資源來檢索所有公司歷史報告的URL。注意:這個網站通過API訪問進行管理,並且在免費訪問計劃下可能會施加速率限制。
4.2 文件嵌入 為了使用10-K報告回答問題,必須找到可以提供答案的文件部分。這些部分作為LLM制定回應的上下文。通常,使用余弦相似度度量來評估查詢和文檔段之間的相似性。這種相似性計算基於查詢和文檔段的向量表示,通常稱為嵌入。這些嵌入將信息編碼為固定大小的向量,在高維空間中捕捉文檔的語義含義。文檔中的每個詞、句子和段落都有助於塑造這個向量。有多種文本嵌入模型可供使用,其性能通過Massive Text Embedding Benchmark(MTEB)[5]進行評估,以便做出明智的選擇。在這些模型中,all-mpnet-base-v2[6]模型以強大的MTEB得分和高效的處理速度脫穎而出。因此,在這個練習中,我們選擇了all-mpnet-base-v2模型來進行文本嵌入。為了完整起見,值得注意的是,OpenAI的嵌入模型,特別是text-embedding-ada-002,也是一個不錯的選擇。但由於文件的大小,本次沒有使用它。與此不同,all-mpnet-base-v2模型[6]可以在標準筆記本上在合理的時間內運行,使其成為這個練習的更實際的選擇。
另一個微妙但重要的考慮因素是在向量數據庫中存儲這些嵌入的方式。為此,選擇了ChromaDB[7],因為它與本練習的主要LLM框架LLama Index[8]無縫兼容。
4.3 用於特徵生成的LLM 本研究中使用的LLM是OpenAI的GPT-3.5-Turbo[9]。考慮到這個領域的快速發展性,未來可能會出現更新、更先進的模型。LLama Index框架[8]簡化了集成來自不同來源的LLM模型的過程。此外,如果一個LLM模型是開源的,其權重可以下載,則可以選擇在本地計算機上或雲環境中運行模型。對於這個練習,我們選擇使用GPT-3.5-Turbo[9]作為首選的LLM,因為它具有出色的性能,並且通過OpenAI API很容易運行。
對於特徵生成,向LLM提出了有關公司財務和管理方面的具體問題。如前所述,在第4.2節中,與問題相關的嵌入被提供為LLM的上下文。使用系統提示,指示LLM根據提供的上下文為問題分配0到100之間的信心分數。這個分數被視為ML模型的特徵。可以提出多個關於公司財務健康的問題,例如:“該公司是否具有明確的增長和創新戰略?是否有任何最近的戰略舉措或合作夥伴關係?”理論上,可以提出許多這樣的問題,並且由此產生的分數可以作為構建機器學習模型的特徵。然而,在實際應用中,需要尋找最具信息量的問題,以確保模型的效能。
4.4 目標值 為了訓練ML模型,需要相應的目標值。股票的目標值是由兩個連續的年度報告提交日期之間的百分比回報計算而來。具體而言,每個股票都有一組日期對,其中一個日期是報告的提交日期,另一個日期是最近一次報告的提交日期。從股票的股價數據中提取股價,並計算兩個日期之間的股票回報。將股票價格在提交日期之後的第二天作為起始點,將在連續提交日期之前的兩天作為結束點。以這種方式,目標值表示了兩個報告之間的回報。這允許在未來一年中評估公司股票的表現。
除了計算特定股票的回報之外,還計算了在同一期間內S&P 500指數的回報。這是為了將股票的回報與市場的回報進行比較。具體來說,目標值包括以下項目:
- 特定股票在一年內的回報。
- S&P 500指數在一年內的回報。
這些目標值將用於訓練ML模型,以預測股票在未來一年中的表現。
5 實驗和結果 本文使用的主要數據集包括美國市值前1500家公司的年度報告,這些報告的歷史範圍從2002年到2023年。為了構建特徵,使用GPT-3.5-Turbo[9]生成回答有關公司財務和管理的問題,這些問題可以從年度報告的信息中解答。然後,使用這些回答的信心分數作為特徵,訓練機器學習模型,以預測股票在未來一年中的表現。
5.1 模型選擇和性能 在本文中,為了預測股票在未來一年中的表現,使用了多種機器學習模型,包括隨機森林、梯度提升樹和神經網絡。這些模型在訓練和測試數據集上進行了評估,並通過多個性能指標進行了比較,包括均方根誤差(RMSE)、平均絕對誤差(MAE)和R-squared(R^2)。
圖1比較了選擇前k隻股票後GPT模型產生的回報與相同期間的標普500指數回報。圖中顯示,較小的k值對應更高的回報,而隨著k值的增加,回報逐漸減小。這表明,排名較高的股票(由GPT模型預測)提供了更好的回報。
注意:標普500指數回報在不同的k值下略有波動,這是因為標普500指數回報是根據各個個股連續年度報告提交之間的時間間隔計算的,不同個股之間的這個時間間隔會有所不同。這種方法確保了股票回報和標普500回報都是在相同的時間範圍內進行測量的。
圖2:不同K值的12個月回報比較
圖2還展示了GPT生成的回報與標普500回報之間的比較。圖1和圖2都顯示了一個12個月期間的平均回報。不同之處在於,這些圖是使用兩個不同的目標變量構建的。圖1使用12個月回報作為目標變量,而圖2使用最大回報作為目標變量。
可以從上述圖表中得出一些值得注意的觀察結果。首先,為了優化回報,具有較低的k值是有利的。在這個背景下,k值設為5似乎是一個合理的選擇。當k設置為5時,表示選擇了可用股票的5%進行買入策略。為了提供背景信息,測試集包括在5年期間隨機抽樣的500隻股票。因此,每年選擇5隻股票相當於每年從100隻股票中挑選5只,代表了5%的選擇率。
5.2 分析不同策略的累積回報
(a)使用12個月回報目標建模 (b)使用最大回報目標建模
圖3:投資$1從2018年初到2023年初的累積12個月回報,對應前5只預測的股票
圖3描述了從2018年初到2023年初,兩個不同構建的模型的$1投資的表現。雖然這兩個模型在這個期間的表現均優於標普500指數回報,但圖3b中所示的模型表現明顯優於圖3a中所示的模型。這兩種方法之間的關鍵區別在於使用不同的目標變量。這個結果強調了選擇合適的目標變量對於實現更好的性能的重要性。
圖4:投資$1從2018年初到2023年初的累積最大回報,對應前5只預測的股票
圖4呈現了對最大回報策略的評估。這種策略涉及從年度報告發布日期開始計算回報,直到該年股票價格的98分位數點。本質上,它假設股票在年度報告發布後不久獲得,並在當年的最高價格附近或附近出售。雖然這可能看起來是一個樂觀的情景,但值得注意的是,標普500指數回報的構建也遵循類似的方法。因此,這種分析使我們能夠直接而公平地比較最大回報策略與基準指數。
圖4b展示了最佳情況,即最大回報策略能夠在5年內使1美元的投資增加至4美元,而標普只會使投資翻倍。
5.3 實驗結果 經過實驗,發現隨機森林模型在預測股票未來一年回報方面表現最佳,具有最低的RMSE和MAE,以及最高的R-squared(R^2)分數。這意味著它能夠提供最準確的預測。此外,模型的性能在使用不同的特徵集合時也進行了評估,並發現使用LLM生成的回答信心分數作為特徵可以提高模型的性能。這表明LLM生成的回答包含有關公司財務和管理的有價值的信息,可以用於預測股票的未來表現。
6 結論 本文提出了一種使用大型語言模型(LLM)來分析公司年度報告以增強股票投資策略的方法。通過使用LLM生成的回答作為特徵,訓練機器學習模型,我們能夠預測股票在未來一年中的表現。實驗結果表明,這種方法在預測方面具有潛在的優勢,並且LLM生成的回答信心分數作為特徵可以進一步提高模型的性能。這種方法為股票投資策略提供了一個新的工具,可以幫助投資者更好地理解公司的財務健康和管理情況,從而做出更明智的投資決策。未來的工作可以包括進一步優化模型性能,並考慮更多的特徵工程方法,以提高預測準確性。此外,可以擴展這種方法,以包括更多的公司和更多的金融指標,從而提供更全面的投資策略支持。
後記 : 這位作者目前只有發佈過一篇論文,僅供作參考,有興趣的投資者可以驗證後才能確定,提供了一個不錯的方向!
以上內容並非投資意見,亦不構成任何投資產品之要約、要約招攬或建議。本資料只作為一般用途,它並沒有考慮您的個人需要、投資目標及特定財政狀況。投資附帶風險。
更多ChatGPT咒語指令交流學習搜尋FB社團:中文最大ChatGPT-AI詠唱研究院
非公開社團手機開啟會被擋,請直接複制搜尋社團名稱
中文最大ChatGPT-AI詠唱研究
▋ 本GPT-InvestAR論文Github開源程式資料已放至FB社團「中文最大ChatGPT-AI詠唱研究」文章留言中