Paper 005 |整份財報不一定比較好:用 1,546 個金融情緒詞預測企業風險

Paper 005 |整份財報不一定比較好:用 1,546 個金融情緒詞預測企業風險

閱讀 IJCNLP 2013 論文 Financial Sentiment Analysis for Risk Prediction。研究將 Form 10-K 的 MD&A 從數萬個原始詞彙縮減為 1,546 個金融情緒詞,再以 SVR 與 Ranking SVM 預測未來 12 個月波動率及公司風險排序。結果顯示,金融情緒詞模型的平均表現與完整原文相當,並產生更一致且容易理解的風險詞彙。


分析財報時,我們很容易產生一種直覺:

模型讀得越多,應該就判斷得越準。

一份 Form 10-K 的 MD&A 可能包含數萬個不同詞彙,從產品、市場、客戶一路談到流動性與法律爭議。如果把其中大部分文字刪除,只留下約 1,500 個金融情緒詞,模型還能預測企業未來風險嗎?

2013 年,University of Taipei 與 National Chengchi University 的研究團隊發表 Financial Sentiment Analysis for Risk Prediction,實際比較兩種輸入:

  • ORG:使用 MD&A 的全部原始詞彙。
  • SEN:只使用金融情緒詞典中的詞彙。

結果顯示,SEN 將特徵空間從數萬個詞縮減為 1,546 個金融情緒詞後,無論是預測未來波動率的 Regression,或公司相對風險的 Ranking,平均表現都沒有變差,甚至略高於使用完整原文的模型。

這篇論文沒有使用 Transformer、Embedding 或 LLM,只使用 Bag-of-Words 與線性 SVM。它提出的問題放到今天仍然成立:

金融 AI 真正需要的,究竟是更多文字,還是更有金融意義的文字?


參考資料與研究團隊

  • 論文名稱:Financial Sentiment Analysis for Risk Prediction(註1)
  • 發表會議:IJCNLP 2013
  • 主要研究人員:
    • Chuan-Ju Wang(王釧茹)
    • Ming-Feng Tsai
    • Tse Liu
    • Chin-Ting Chang
  • 研究機構:
    • University of Taipei
    • National Chengchi University

一、這篇論文想回答什麼問題?

Sentiment Analysis(情緒分析)通常被理解為判斷一段文字是正面或負面。

但這篇論文不是替每份 10-K 貼上「正面」或「負面」標籤,而是進一步測試:

財報中的金融情緒詞,能否預測公司未來的股價風險?

研究將問題拆成兩個任務:

任務模型要回答的問題使用方法評估指標
Regression未來 12 個月波動率是多少?Support Vector RegressionMean Squared Error
Ranking哪家公司的相對風險較高?Ranking SVMKendall's Tau、Spearman's Rho

兩個任務使用相同的 10-K 文字,差別在於輸出形式。

Regression 必須給出接近真實波動率的數值;Ranking 不預測精確值,只要求把較危險的公司排在前面。

這個問題設定也成為上一篇 ai-090 中 XRR 的研究基礎。2013 年先證明金融詞典與 Ranking 值得使用,2021 年再用階層式神經網路與 Attention 擴充文字結構及可解釋性。


二、為什麼不能直接使用一般情緒詞典?

日常語言中的負面詞,放進財務文件後不一定具有相同意義。

論文引用 Loughran 與 McDonald 的研究指出:使用 Harvard Psychosociological Dictionary 分析 1994 至 2008 年的 10-K 時,被一般詞典判定為負面的詞彙中,接近四分之三在金融語境下通常不應被視為負面。

例如:

詞彙日常情緒直覺金融文件中的可能語境
liability負面、責任會計名詞(負債項目)
tax負面負擔例行揭露(稅務資訊)
capital中性或正面財務結構(不直接代表情緒)
amendment中性修改契約變更(可能反映融資壓力)

如果詞典不了解領域,模型可能把會計術語誤判為負面訊號。

因此,本文採用 Loughran–McDonald Finance-specific Sentiment Lexicon,也就是專門從金融文件建立的情緒詞典。(註2)


三、六類金融情緒詞

論文使用六組金融詞彙:

詞彙類別定義原文例子
Fin-Neg負面商業用語deficit、default
Fin-Pos正面商業用語achieve、profit
Fin-Unc不確定性appear、doubt
Fin-Lit法律爭議傾向amend、forbear
MW-Strong強語氣 Modal Wordsalways、must
MW-Weak弱語氣 Modal Wordscould、might

各詞典經 Porter Stemmer 處理後的規模如下:

詞彙類別原始詞數Stemmed 詞數
Fin-Neg2,349918
Fin-Pos354151
Fin-Unc291127
Fin-Lit871443
MW-Strong1910
MW-Weak2715
合計3,9111,664

部分詞彙會同時出現在不同清單,所以去除重複後,實際使用的是 1,546 個 Stemmed Sentiment Words。

這裡的 Stem 是將不同詞形縮減成共同詞幹。例如:

  • amend
  • amended
  • amending
  • amendment

經過處理後,這些詞可以被視為同一組特徵,降低詞形變化造成的維度膨脹。


四、資料來源:1996 至 2006 年的 10-K

研究使用 Kogan 等人建立的 10-K Corpus,並且只取 Item 7:

Management's Discussion and Analysis of Financial Condition and Results of Operations(MD&A)。

MD&A 包含管理階層對營運結果、資金狀況與未來展望的說明,也是公司 Forward-looking Statements 比較集中的章節。

4.1 每年度文件數

年度文件數Unique Terms
19961,40619,613
19972,26026,039
19982,46129,020
19992,52430,359
20002,42430,312
20012,59632,292
20022,84538,692
20033,61148,513
20043,55850,674
20053,47453,388
20063,30651,147
合計30,465-

原始文件每年有約 2 萬至 5 萬個不同詞彙;SEN 模型只保留其中 1,546 個金融情緒詞。

所有文件與詞典都會經過 Porter Stemming,並移除部分 Stop Words。


五、模型如何定義未來風險?

論文使用股票報酬率的標準差作為 Volatility,也就是企業風險代理。

若股票在時間點 t 的價格為 S_t,單期報酬率為:

Rt=StSt11R_t = \frac{S_t}{S_{t-1}}-1

一段時間的波動率,則由期間內報酬率相對平均值的離散程度計算。

研究從 CRSP US Stocks Database 取得股價資料,並分別計算:

變數定義用途
v^-(12)財報公布前 12 個月波動率輸入特徵
v^+(12)財報公布後 12 個月波動率預測目標

這個設定代表模型不是只看財報文字,也會知道公司過去一年的波動狀態。

這一點很重要。論文所稱的 SEN 是「文字特徵只保留金融情緒詞」,但實際使用的 LOG1P+TFIDF+ 還加入了:

財報公布前 12 個月波動率的對數。

因此,研究結果不能被解讀為「只看 1,546 個字就能預測未來風險」。更準確的說法是:

在已知公司過去波動率的條件下,1,546 個金融情緒詞提供了與完整 MD&A 詞彙相當的額外預測資訊。


六、兩種文字表示:TFIDF 與 LOG1P

這篇研究採用 Bag-of-Words。模型不理解完整句法,而是把每個詞轉成數值特徵。

6.1 TFIDF

TFIDF 同時考慮:

  • 詞彙在單一文件中出現的頻率。
  • 詞彙在同年度全部文件中是否罕見。

如果某個詞在公司 A 的 MD&A 頻繁出現,但在其他公司很少出現,它會獲得較高 TFIDF。

論文每年個別計算 IDF,因為同一個詞的普遍程度可能隨年度改變。

6.2 LOG1P

LOG1P 將詞頻轉換為:

log(1+Term Count)\log(1+\text{Term Count})

取對數可以降低極高詞頻對模型的支配程度。一個詞從出現 1 次增加到 5 次,可能比從 101 次增加到 105 次更有資訊價值。

最終任務分工如下:

任務文字特徵額外特徵
RegressionLOG1P前 12 個月波動率
RankingTFIDF前 12 個月波動率

七、Regression:預測未來 12 個月波動率

Regression Task 使用 Support Vector Regression(SVR),預測財報公布後 12 個月的 Log Volatility。

模型比較:

模型文字輸入
ORGMD&A 全部原始詞彙
SEN只保留 1,546 個金融情緒詞

以 Mean Squared Error(MSE)評估,數值越低越好:

測試年度ORGSEN較佳模型
20010.180820.18506ORG
20020.171750.16367SEN
20030.171570.15795SEN
20040.128790.12822SEN
20050.130380.13029SEN
20060.142870.13998SEN
Micro-average0.152710.14894SEN

SEN 只在 2001 年輸給 ORG,其餘五個測試年度都較低。Micro-average MSE 從 0.15271 降到 0.14894,約改善 2.5%。

結果不代表被刪除的所有原文都沒有價值,而是表示在 Bag-of-Words 與線性 SVR 的設定下,大量非情緒詞可能增加雜訊,未能轉換成更好的平均預測表現。


八、Ranking:比較哪家公司更危險

Ranking Task 先依同年度公司的未來 12 個月波動率,將公司分成五個 Risk Levels,再使用 Ranking SVM 學習公司之間的相對順序。

若模型判斷公司 A 比公司 B 更危險,就應給 A 較高的 Ranking Score。

作者使用 Kendall's Tau 與 Spearman's Rho 評估預測排序和實際風險排序的一致程度,數值越高越好。

8.1 Kendall's Tau

測試年度ORGSEN較佳模型
20010.621730.63349SEN
20020.636260.62280ORG
20030.585280.60527SEN
20040.593500.59017ORG
20050.596510.60273SEN
20060.576410.58287SEN
Micro-average0.599650.60458SEN

8.2 Spearman's Rho

測試年度ORGSEN較佳模型
20010.652710.66397SEN
20020.666920.65303ORG
20030.616620.63646SEN
20040.623170.61953ORG
20050.625310.63133SEN
20060.603710.60999SEN
Micro-average0.629390.63403SEN

SEN 在 2002 與 2004 年輸給 ORG,其餘年度表現較高。平均改善幅度不大:

  • Kendall's Tau:約 0.8%。
  • Spearman's Rho:約 0.7%。

因此,論文最穩健的結論是「只使用金融情緒詞可達到相當表現」,而不是「金融情緒詞大幅擊敗完整原文」。


九、時間切分:用過去五年預測下一年

每個實驗都使用前五年的財報訓練,再測試下一年。

訓練年度測試年度
1996–20002001
1997–20012002
1998–20022003
1999–20032004
2000–20042005
2001–20052006

這種 Rolling Window 比隨機拆分更符合真實情境:模型只能用已經發生的歷史資料預測下一年度,不能從未來文件學習詞彙與風險的關係。

同時,六個測試年度也形成六組獨立模型,讓作者可以檢查不同年度學到的高權重詞是否一致。


十、Ranking 學到的詞比 Regression 更穩定

作者比較六個年度模型中,權重最高的 10 個金融情緒詞。

結果顯示:

穩定性指標RankingRegression
六年都進入 Top 10 的詞amend、deficit、forbear無相同規模結果
至少出現 4 次的詞7 個3 個
只出現 1 次的詞11 個20 個

Ranking 模型選出的重要詞跨年度更一致;Regression 的 Top Terms 變動較大。

這個結果提供了一個可能解釋:

文字比較適合協助判斷相對風險順序,不一定適合轉換成精確波動率。

Regression 需要學習「某個詞對波動率數值增加多少」;Ranking 只需要學習「出現這類詞的公司,相對上是否更危險」。後者對文字訊號的要求較符合 Bag-of-Words 能提供的資訊粒度。


十一、金融情緒詞模型學到了什麼?

六個 Ranking 模型的平均權重中,SEN 與 ORG 的 Top 5 如下:

排名SEN:金融情緒詞ORG:完整原文
1amendceg
2deficitnasdaq
3forbeargnb
4delistcoven
5defaultforbear

兩組只有 forbear 重疊。

ORG 的高權重詞包含:

  • CEG:Co-Energy Group 公司名稱。
  • GNB:GNB Technologies 公司名稱。
  • NASDAQ:交易所名稱。

這些詞可能和訓練資料中的特定高風險公司共同出現,卻不一定代表可泛化的風險原因。

相較之下,SEN 的 amend、deficit、forbear、delist 與 default,至少都能對應到契約變更、營運虧損、債務寬限、下市及違約等金融概念。

限制詞典不只降低維度,也形成一種人工 Inductive Bias:

模型只能從金融研究認為有意義的詞彙中尋找訊號。

代價是詞典以外的新風險用語,也會在輸入階段直接消失。


十二、兩個原文案例:amend 與 deficit

12.1 amend 不一定代表壞消息

論文引用 AGO 2006 年 Form 10-K 的內容。公司修改貸款協議,將借款利率從 LIBOR 加 2.00% 降至 LIBOR 加 1.75%。

amend 屬於 Fin-Lit 類別,模型也把它列為最高權重詞。作者認為,企業頻繁修改政策或契約可能和較高風險有關。

但這個例子同時暴露 Bag-of-Words 的限制:

這次 Amendment 的具體結果,是借款利率下降。

只看 amend,模型看不到修改後的條件對公司有利或不利,也無法區分主動優化融資與被迫重整債務。

12.2 deficit 的金融意義較直接

另一段來自 AXS-One 2006 年 Form 10-K。公司揭露 360 萬美元 Working Capital Deficit,且相較前一年 330 萬美元進一步增加。

deficit 代表負債超過資產、損失超過利潤,或支出超過收入。在這段語境中,它與流動性壓力及未來風險的關係比 amend 更直接。

這兩個案例說明:

  • 詞典能幫模型聚焦金融概念。
  • 相同詞彙仍需要放回完整句子判讀。
  • 詞頻權重可以作為線索,不能取代語境分析。

十三、這篇論文與 XRR 的研究演進

ai-091 與上一篇 ai-090 其實是同一條研究路線的前後階段。

比較面向2013:Financial Sentiment Analysis2021:XRR
文件表示Bag-of-Words階層式 BiGRU
領域知識金融情緒詞典Fin-Word2Vec
風險模型SVR、Ranking SVMSiamese Network、RankNet
風險代理未來 12 個月一般波動率Fama–French 殘差波動
可解釋方式線性模型詞彙權重Word 與 Sentence Attention
主要問題哪些金融詞與風險有關?哪家公司較危險,依據哪些字句?

2013 年的研究已經發現:

  1. Ranking 比 Regression 學到更穩定的金融詞。
  2. 領域詞彙比大量通用詞彙更容易產生合理結果。
  3. 模型除了預測,也應該讓人看見高權重文字。

XRR 後續做的,是將這三個發現從線性 Bag-of-Words 模型,擴充成能表示字詞、句子與完整文件的神經網路。


十四、研究限制

14.1 Bag-of-Words 不理解語序

模型只知道詞出現幾次,不知道「default is unlikely」與「default is likely」的差別,也難以處理否定、條件句與因果關係。

14.2 詞典限制了新訊號

SEN 只保留預先定義的 1,546 個詞。若新的風險概念尚未進入詞典,例如後來常見的 ransomware 或 pandemic,模型會直接忽略。

14.3 加入了歷史波動率

所有帶有加號的模型都使用財報前 12 個月波動率。實驗證明的是金融情緒詞能在歷史風險之外提供有效訊息,不是證明文字單獨足以完成預測。

14.4 波動不區分漲跌

標準差把股價大漲與大跌都視為高風險。對只關心下行損失的投資人而言,這個 Risk Proxy 並不完整。

14.5 沒有排除共同市場因素

一般股票波動率會受到金融危機、利率與市場情緒影響,而這些因素不一定能從單一公司的 MD&A 推論。2021 年的 XRR 後來改用 Fama–French 模型殘差,正是對這個問題的進一步修正。

14.6 高權重詞不等於因果關係

公司出現 deficit 可能和未來波動相關,但不能據此斷定這個詞造成股價風險。它也可能只是企業既有財務困境在文字中的表現。

14.7 資料年代較早

資料涵蓋 1996 至 2006 年,無法直接代表近年的公司揭露方式、監管環境與市場結構。若用於現代風險分析,需要更新語料、詞典與驗證期間。


十五、讀後啟發:刪除資訊也可能是一種建模

現在做 Financial RAG 或 LLM 分析,常見方向是擴大 Context Window,盡可能把整份財報送進模型。

但這篇 2013 年論文提醒我們:

可用資訊越多,不代表有效訊號的比例越高。

SEN 的做法其實是一個簡單的 Feature Gate:

Loading Diagram...

這個概念放到現代系統,可以轉換成:

  1. 先用規則或小模型縮小文件範圍。
  2. 再讓大型模型處理高價值段落。
  3. 保留被選取與被排除的理由。
  4. 用時間外測試確認過濾沒有刪掉重要訊號。

關鍵不在於回到手工詞典,而是重新思考 Context Selection:哪些資訊值得占用模型的注意力與推論成本?


十六、總結

  • 研究使用 1996 至 2006 年共 30,465 份 10-K MD&A。
  • 金融詞典包含六類情緒詞,經 Stemming 與去重後共有 1,546 個特徵。
  • 模型同時使用財報文字與公布前 12 個月波動率,預測公布後 12 個月風險。
  • SEN Regression 的平均 MSE 為 0.14894,低於 ORG 的 0.15271。
  • SEN Ranking 的平均 Kendall's Tau 與 Spearman's Rho 分別為 0.60458 與 0.63403,略高於 ORG。
  • Ranking 跨年度學到的高權重詞,比 Regression 更一致。
  • 完整原文模型容易提高公司名稱與交易所名稱的權重,金融詞典則產生較容易理解的風險詞。
  • Bag-of-Words 無法理解語境,高權重詞只能作為研究線索。

這篇論文沒有證明「文字越少越好」,而是證明了另一件更實用的事:

當模型能力有限時,先把領域雜訊拿掉,可能比盲目保留所有資訊更重要。

資料的價值從來不只取決於數量,也取決於我們是否知道什麼值得留下。


參考資料

  1. Chuan-Ju Wang, Ming-Feng Tsai, Tse Liu, and Chin-Ting Chang. Financial Sentiment Analysis for Risk Prediction. IJCNLP 2013.
  2. Tim Loughran and Bill McDonald. Textual Analysis Resources.
  3. Shimon Kogan, Dimitry Levin, Bryan R. Routledge, Jacob S. Sagi, and Noah A. Smith. Predicting Risk from Financial Reports with Regression. NAACL 2009.

免責聲明: 本文為論文閱讀與技術研究筆記,不構成任何投資建議。金融情緒詞、波動率預測與風險排序只能作為進一步研究線索,不能取代財務分析、風險管理與專業判斷。