
Paper 004 |不是預測風險值,而是先回答「誰更危險」:XRR 可解釋財務風險排序
閱讀 ECML-PKDD 2021 論文 XRR: Explainable Risk Ranking for Financial Reports。XRR 不直接預測公司的精確波動率,而是從 Form 10-K 的 MD&A 比較企業的相對風險,透過階層式 BiGRU、字詞與句子 Attention、Siamese Network 及 Pairwise Ranking,找出高風險公司與影響判斷的財報文字。
WRITTEN BY

- Name
- Harry Chang
假設分析師讀完兩家公司的 10-K,現在要回答一個問題:
明年哪一家公司的股價風險比較高?
如果要求模型直接預測「波動率會是 27.4%」,它不只要理解數萬字財報,還要把文字轉換成一個精確的金融數值。財報裡有大量例行性敘述,股價又同時受到利率、市場情緒與總體環境影響,這個數字看起來很精確,誤差卻未必有相同程度的可信度。
2021 年,政治大學、台灣大學與中央研究院的研究團隊提出 XRR(eXplainable Risk Ranking),換了一種方式定義問題:
與其猜每家公司的精確風險值,不如先比較兩家公司,判斷誰的相對風險更高。
XRR 讀取 Form 10-K 的 Management's Discussion and Analysis(MD&A,管理階層討論與分析),將公司依未來風險排序;同時透過 Word-level Attention 與 Sentence-level Attention,標示模型在意的字詞與句子。
這篇論文的價值不只在於模型表現,而是把三件原本分開的事放在一起:
- 用財報文字預測未來風險。
- 用 Learning to Rank 排出高風險公司。
- 用兩層 Attention 顯示判斷依據。
- 參考資料與研究團隊
- 一、這篇論文想解決什麼問題?
- 二、XRR 是什麼?
- 三、風險標準從哪裡來?
- 四、資料來源:18 年、39,083 份 10-K
- 五、第一層:從字詞建立句子
- $$ \alpha_{t\ell}
- $$ P_{AB}
參考資料與研究團隊
- 論文名稱:XRR: Explainable Risk Ranking for Financial Reports(註1)
- 論文全文:ECML-PKDD 2021 Preprint
- 發表會議:ECML-PKDD 2021
- 主要研究人員:
- Ting-Wei Lin
- Ruei-Yao Sun
- Hsuan-Ling Chang
- Chuan-Ju Wang(王釧茹)
- Ming-Feng Tsai
- 研究機構:
- National Chengchi University
- National Taiwan University
- Academia Sinica
- 開源程式碼:cnclabs/codes.fin.attention(註2)
一、這篇論文想解決什麼問題?
1.1 財報文字與風險數值之間有一道落差
傳統財務風險研究多半使用公司規模、帳面市值比或歷史價格等量化資料。隨著文字分析技術發展,研究者也開始從新聞、評論與財務報告尋找額外訊號。
問題在於,10-K 寫的是營運情況、管理階層判斷與風險敘述,模型最後卻要輸出報酬率或波動率。文字與精確數值之間存在資訊落差,市場價格又包含許多財報文字以外的因素。
因此,XRR 不直接執行 Regression,而是進行 Ranking:
| 任務形式 | 模型要回答的問題 | 難點 |
|---|---|---|
| Regression | 公司 A 的未來波動率是多少? | 要求精確數值(誤差容易受市場雜訊影響) |
| Classification | 公司 A 屬於哪個風險類別? | 類別彼此獨立(沒有直接最佳化公司順序) |
| Pairwise Ranking | 公司 A 與 B,誰的風險更高? | 只比較相對順序(不提供絕對風險值) |
對資產管理或監控工作而言,分析師經常不是要知道每家公司精確到小數點的風險值,而是想先找到:
在數千份報告中,哪些公司應該被優先檢查?
1.2 傳統文字特徵無法完整保留文件結構
早期金融文字排序方法常使用 Bag-of-Words、TF-IDF、名詞片語或 Named Entity 作為文件特徵。
這些方法能統計某個詞出現幾次,卻較難理解:
- 一個詞放在不同句子中的上下文。
- 同一句話中前後文字的關係。
- 一份長文件裡,哪些句子比其他句子重要。
XRR 因此採用階層式結構,先把字詞組成句子,再把句子組成文件,保留 10-K 天然具有的兩層語言結構。
二、XRR 是什麼?
XRR 全名為 eXplainable Risk Ranking,可譯為「可解釋風險排序模型」。
它不是一套像 SURF 一樣可互動操作的網頁系統,而是一個深度學習模型。輸入為公司 10-K 的 MD&A 文字,輸出包含:
- 每家公司的風險分數與相對排名。
- 模型認為重要的財務字詞。
- 模型認為重要的財務句子。
整體流程如下:
簡單來說:
XRR 一邊學習如何排序公司風險,一邊記錄哪些字與句子對這個排序比較重要。
三、風險標準從哪裡來?
模型要學習排序,仍然需要一個可以代表公司風險的標準答案。
XRR 使用 Post-event Return Volatility(事件後報酬波動)作為 Risk Proxy。這裡的 Event,指的是公司提交 10-K 的日期。
3.1 為什麼不用一般股價波動率?
一般波動率直接計算某段時間內每日股票報酬率的標準差,但它同時包含:
- 整體市場上漲或下跌。
- 公司規模與價值因子的影響。
- 總體經濟與市場情緒。
- 公司特有事件造成的波動。
研究者真正想建立的,是財報文字與公司後續風險之間的關係。若標準答案被市場共同因素主導,模型很難只靠一份 10-K 解釋全部變化。
因此,論文先使用 Fama–French Three-Factor Model 解釋市場、規模與價值因子的影響,再將模型無法解釋的殘差,以 Root Mean Square Error(RMSE)彙整成 Post-event Return Volatility。
| 設定 | 論文定義 |
|---|---|
| 事件日 | 10-K 提交日 |
| 觀察期間 | 提交後第 6 至第 252 個交易日 |
| 最低資料量 | 至少 60 筆日資料 |
| 風險數值 | Fama–French 三因子模型殘差的 RMSE |
這個設計不是完全移除所有總體風險,而是先控制三因子模型涵蓋的共同因素,讓標籤更接近公司特有的事件後波動。
3.2 從連續波動率切成五個風險層級
作者在每個年度內,依 Post-event Return Volatility 的第 30、60、80 與 90 百分位切成五層。
| 風險層級 | 年度內約略位置 | 平均公司數 |
|---|---|---|
| Level 1 | 最低 30% | 702 |
| Level 2 | 30% 至 60% | 702 |
| Level 3 | 60% 至 80% | 467 |
| Level 4 | 80% 至 90% | 234 |
| Level 5 | 最高 10% | 234 |
模型不需要預測實際 RMSE,而是學習給 Level 5 公司高於 Level 4、Level 4 高於 Level 3 的風險分數。
四、資料來源:18 年、39,083 份 10-K
研究使用 1996 至 2013 年的 Form 10-K,共 39,083 份報告。
不過,模型並沒有讀取整份 10-K,而是只使用 Item 7:
Management's Discussion and Analysis of Financial Condition and Results of Operations(MD&A)。
MD&A 包含管理階層對營運結果、財務狀況、流動性與未來不確定性的討論,因此比單純的財務數字更適合觀察公司如何描述風險與展望。
4.1 滾動式年度驗證
每個測試年度都使用前五年的報告訓練。
例如:
| 訓練資料 | 測試資料 |
|---|---|
| 1996–2000 | 2001 |
| 1997–2001 | 2002 |
| 1998–2002 | 2003 |
| 依序向後滾動 | 直到 2013 |
這種時間切分比隨機拆分更接近實際使用方式:模型只能用過去資料預測未來年度,不能提前看到測試年度的財報。
由於所有公司兩兩配對後數量很大,每個 Epoch 會抽取 3,000 組報告配對,且越接近測試年度的資料,抽樣機率越高。
4.2 主要模型設定
| 項目 | 設定 |
|---|---|
| 每句最大字數 | 150 |
| 每份文件最大句數 | 70 |
| GRU Hidden Size | 100 |
| Attention Size | 100 |
| 每 Epoch 訓練配對 | 3,000 組 |
這些上限也代表模型看到的是截斷後的 MD&A,而不是毫無限制地閱讀完整長文。
五、第一層:從字詞建立句子
XRR 的第一層是 Word-level Encoder。
一個句子中的每個字先被轉換為 Word Embedding,再送入 Bidirectional GRU(BiGRU)。雙向結構會同時利用前文與後文,使同一個詞能結合句子上下文形成表示。
接著,Word Attention 為每個詞分配權重:
句子向量則是各字詞表示的加權總和:
權重較高的詞,對句子表示的影響較大,也會被 XRR 視為解釋風險判斷的重要線索。
例如,模型可能提高以下詞彙的權重:
- deficit
- loss
- prevent
- uncertainty
- litigation
不過,Attention Weight 代表模型計算時的相對權重,不等同於該詞與未來風險之間已經被證明具有因果關係。
六、第二層:從句子建立整份財報
每個句子完成編碼後,Sentence-level BiGRU 會依文件順序處理這些句子。
Sentence Attention 再為每個句子分配權重,形成整份報告的向量:
兩層結構的分工如下:
| 層級 | 處理單位 | 產生結果 | 解釋內容 |
|---|---|---|---|
| Word Level | 一句話中的字詞 | 句子向量 | 哪些詞重要 |
| Sentence Level | 一份 MD&A 中的句子 | 財報向量 | 哪些句子重要 |
如果只有 Word Attention,系統能找到「loss」或「uncertainty」,卻不知道哪一整句值得分析師閱讀;如果只有 Sentence Attention,系統能選出一段重要敘述,卻無法指出句子裡是哪幾個詞影響判斷。
XRR 同時保留兩層權重,目的就是讓分析師先找到重要句子,再進一步查看關鍵詞。
七、Pairwise Ranking:不猜分數,只比較順序
完成文件編碼後,XRR 使用兩個結構相同且共享權重的分支,比較兩份財報。這種架構稱為 Siamese Network。
假設公司 A 的實際風險層級高於公司 B,訓練目標便要求:
模型依兩家公司分數差,計算 A 比 B 更危險的機率:
最後使用 RankNet 的 Binary Cross-Entropy Loss,使預測順序接近真實風險層級。
這種設計有兩個效果:
- 所有公司都使用同一套評分函數,分數可以互相比較。
- 訓練目標直接處理排序,不必繞道用分類機率拼出名次。
但需要注意,XRR 的輸出分數主要用來決定順序。分數相差 0.2,不代表實際波動率一定相差 20%,也不能直接解讀成違約機率。
八、三種 Word Embedding:金融 Word2Vec 反而勝過 BERT
作者比較三種預訓練 Word Embedding:
| Embedding | 訓練來源 | 維度/設定 |
|---|---|---|
| GloVe | Common Crawl 840B tokens | 300 維 |
| BERT-Large Uncased | 一般語料 | 1,024 維 Word Embedding |
| Fin-Word2Vec | 39,083 份 10-K | 300 維 |
這裡的 XRR(B)並不是把完整 BERT Transformer 當成文件 Encoder。論文只取 BERT 的 Word Embedding,再交給後面的 BiGRU 與 Attention 處理。
因此,實驗結果不能簡化成「Word2Vec 全面勝過 BERT」,比較精確的說法是:
在 XRR 這套架構與 2021 年的實驗設定下,使用金融 10-K 訓練的 Fin-Word2Vec,比只取 BERT-Large Word Embedding 的版本更適合風險排序。
這個結果再次反映 Domain Adaptation 的重要性。向量維度較大、模型名稱較新,不保證更理解金融文件中的專門用語。
九、排名實驗結果
作者使用 Kendall's Tau 與 Spearman's Rho 衡量預測排名和實際風險排名的相關程度。
| 方法 | 任務類型 | 平均 Kendall's Tau | 平均 Spearman's Rho |
|---|---|---|---|
| FastText | Classification | 0.426 | 0.540 |
| HAN | Classification | 0.535 | 0.661 |
| RankSVM | Ranking | 0.547 | 0.686 |
| XRR(GloVe) | Ranking | 0.547 | 0.684 |
| XRR(BERT Embedding) | Ranking | 0.559 | 0.697 |
| XRR(Fin-Word2Vec) | Ranking | 0.573 | 0.711 |
XRR(Fin-Word2Vec)在兩項平均指標中都是最佳模型,且相對於最佳 Baseline 達統計顯著,論文使用 Permutation Test,顯著水準為 0.05。
平均數據也留下兩個值得注意的現象。
9.1 Ranking 方法普遍優於 Classification
RankSVM 與最佳 XRR 的表現高於 FastText 與 HAN,支持論文一開始的假設:若最終任務是排出公司風險順序,直接最佳化 Pairwise Ranking 較符合目標。
9.2 不是所有 XRR 都贏過傳統方法
XRR(GloVe)的平均 Kendall's Tau 與 RankSVM 同為 0.547,Spearman's Rho 甚至略低於 RankSVM 的 0.686。
因此,階層式神經網路本身不是勝出的充分條件。最佳結果來自模型結構、Ranking Objective 與金融領域 Embedding 的組合。
論文摘要提到,XRR 在部分排名相關指標最多改善 7.4%;若只比較表中的跨年度平均值,XRR(Fin-Word2Vec)相對最佳 Baseline 的改善約為:
- Kendall's Tau:4.8%。
- Spearman's Rho:3.6%。
兩種說法的比較範圍不同,不應把 7.4% 誤寫成所有年度或所有平均指標都提升相同比例。
十、模型真的能找到高風險公司嗎?
除了整體排名相關性,作者也用 Precision 與 Recall 檢查模型是否能找出排名最前面的高風險公司。
實驗以實際 Post-event Return Volatility 排出的高風險公司作為標準答案。結果顯示,XRR 在辨識高風險公司時優於 TFIDF-Rank 與 HAN。
更細緻的分組分析也發現:
XRR 在較高風險公司的群組中,預測排名與實際排名的相關性較好。
這一點符合系統的實務定位。風險監控通常不要求每一家低風險公司都被排到完全正確的位置,而是希望先把真正需要檢查的高風險公司拉到前面。
10.1 與公司規模的關係
金融研究通常認為,較小公司往往承擔較高風險。作者將公司依 XRR 預測分數分成五組,再比較各組平均 Firm Size。
| 預測風險組別 | Rank 1 | Rank 2 | Rank 3 | Rank 4 | Rank 5 |
|---|---|---|---|---|---|
| 平均 Firm Size | 8.5052 | 7.8410 | 6.9821 | 6.1892 | 5.7281 |
Rank 5 是模型判定風險最高的群組,平均公司規模也最小。這項結果與既有金融文獻方向一致,但它是合理性檢查,不代表小公司必然高風險,也不能單獨證明模型的每個判斷都正確。
10.2 為什麼 2008 年特別值得看?
作者另外將 Post-event Return Volatility 與一般股價波動率進行比較。
2008 年金融危機期間,整體市場共同波動非常強。如果直接用一般波動率當標籤,財報文字與風險的相關性會被市場因素沖淡。論文顯示,XRR 預測分數與一般波動率的相關性在 2008 年降到樣本期間低點;使用三因子模型殘差建立的 Post-event Return Volatility,與文字模型的關係相對穩定。
這不是說系統性風險不重要,而是:
如果模型只讀公司財報,就不應要求它同時解釋所有市場共同衝擊。
十一、Word Attention 是否真的找到風險詞?
為了檢查 Word Attention,作者使用 Loughran–McDonald 金融情緒詞典作為外部參考。(註3)
詞典包含六類詞彙:
| 類別 | 意義 | 論文例子 |
|---|---|---|
| Fin-Neg | 負面商業用語 | deficit |
| Modal | 信心程度與可能性 | could、might |
| Fin-Pos | 正面商業用語 | profit |
| Fin-Unc | 不確定性 | appear、doubt |
| Fin-Con | 限制與約束 | prevent、limit |
| Fin-Lit | 法律爭議相關 | amend、forbear |
作者從每個句子挑選 Attention Weight 最高的 10 個詞,計算 Precision@10。
相較 HAN,XRR 在三類詞彙的改善最明顯:
| 詞彙類別 | Precision@10 改善 |
|---|---|
| Fin-Lit | 15.3% |
| Fin-Unc | 14.7% |
| Fin-Neg | 14.6% |
負面、不確定與訴訟詞彙通常和財務風險具有較強關係,XRR 對這些詞給出較高權重,表示模型學到的文字模式與金融領域知識具有一定一致性。
但這套評估也有侷限:詞典只能驗證模型是否關注已知詞彙,無法確認詞彙在特定句子中的語意。例如「no material loss」仍包含 loss,若忽略否定語境,單看詞表可能產生誤判。
十二、Sentence Attention 是否真的找到風險句?
除了字詞評估,研究團隊還建立一份句子層級的人工標註清單。
論文文字記載:
- 全部標註句:2,432 句。
- 高風險相關句:1,539 句。
- 低風險相關句:896 句。
這裡存在一個原文數字矛盾:1,539 加 896 等於 2,435,與論文宣稱的 2,432 句相差 3 句。本文保留論文列出的數字,不自行判斷哪一項才是正確版本。
評估時,作者把 1,539 句高風險相關句當作 Ground Truth,再從每份報告依 Sentence Attention 選出權重最高的 10 句,計算 Precision 與 Recall。
結果顯示,XRR 平均能找出比比較模型更多的高風險句子。
論文也展示一個未被人工標記、卻被模型賦予高權重的句子,其中包含 redeem 與 loss。作者認為,這些詞可能代表未來損失與不確定性,說明模型也可能找到標註清單尚未涵蓋的風險訊號。
不過,這裡仍應避免把 Attention 直接等同完整解釋:
- Attention 顯示模型計算時的權重分配。
- 它不保證移除該句後,風險排名一定按比例下降。
- 它也不證明該句描述的事件會造成未來波動。
更嚴格的驗證方式,還可以加入句子移除、反事實替換與人工分析師盲測,檢查高權重文字是否真正改變模型判斷。
十三、XRR 與前幾篇研究有什麼不同?
這四篇論文都處理金融文件,但問題設定並不相同。
| 文章 | 核心問題 | 分析單位 | 主要輸出 |
|---|---|---|---|
| ai-087 | 今年的 10-K 和去年相比改了什麼? | 同公司、跨年度 | 財務訊號文字 |
| ai-088 | 哪些公司揭露了相似風險? | 跨公司段落 | MRP 與 RRS |
| ai-089 | 使用者如何探索並查核企業風險關係? | 公司關係網路 | SURF 互動介面與證據 |
| ai-090 | 哪些公司的未來相對風險較高? | 公司與完整 MD&A | 風險排名、重要字詞與句子 |
XRR 發表於 2021 年,時間上比其他三篇更早。它已經呈現這條研究路線後續反覆出現的幾個核心觀念:
- 金融模型不能只輸出結果,也要保留文字依據。
- 問題定義比盲目擴大模型更重要。
- 通用語言表示不一定勝過金融領域適應。
- 財報很長,必須先辨識值得閱讀的局部內容。
十四、研究限制
14.1 資料停在 2013 年
研究資料涵蓋 1996 至 2013 年,無法直接證明模型能適應疫情、生成式 AI、現代供應鏈或近年的監管語言。金融文字與市場結構會隨時間改變,部署前仍需要使用較新資料重新訓練與驗證。
14.2 模型只讀 MD&A
Item 7 很重要,但公司的法律風險、資安風險與特定市場風險也可能出現在 Item 1A、Item 7A 或附註中。只使用 MD&A 會降低輸入雜訊,也可能漏掉其他關鍵揭露。
14.3 文件會被截斷
每份文件最多保留 70 句,每句最多 150 詞。如果重要資訊出現在截斷範圍之外,模型沒有機會使用它。論文沒有針對被省略內容做完整影響分析。
14.4 波動同時懲罰上漲與下跌
RMSE 與標準差都把向上與向下的大幅變動視為高波動。對投資人而言,暴漲與暴跌的經濟意義並不相同,XRR 的 Risk Proxy 無法區分 Downside Risk 與 Upside Surprise。
14.5 排名不是絕對風險
XRR 能回答哪家公司相對更危險,但不能直接提供預期損失、違約機率或合理部位大小。如果同一年所有公司風險都很低,模型仍然會排出第一名與最後一名。
14.6 Attention 是線索,不是因果證明
高 Attention 句子值得優先閱讀,但不能直接推論它造成了未來股價波動。分析師仍需要回到公司的營運資料、財務數字與事件脈絡判斷。
十五、讀後啟發:風險模型可以先做排序器
企業導入 AI 時,常希望模型一次回答完整問題:
這家公司未來會跌多少?風險機率是多少?我應該買還是賣?
但每多要求一層精確答案,就多引入一層難以驗證的假設。
XRR 採用較克制的工作流:
| 步驟 | 模型負責 | 分析師負責 |
|---|---|---|
| 初步篩選 | 從大量 10-K 排出高風險公司 | 決定追蹤範圍 |
| 文字定位 | 顯示高權重字詞與句子 | 判讀語境與真實影響 |
| 風險分析 | 提供相對排名 | 補充財務數據與市場資訊 |
| 投資決策 | 不直接執行 | 評估機率、損失與安全邊際 |
這樣的模型不是投資決策終點,而是閱讀順序的起點。
對分析師來說,每季要處理的資訊量遠超過人力可以逐字閱讀的範圍。若 AI 能可靠地回答「先看哪家公司、先讀哪十句」,即使它沒有預測出精確股價,也已經能降低資料篩選成本。
十六、總結
- XRR 將財務風險預測改寫為公司之間的 Pairwise Ranking 問題。
- 模型使用 1996 至 2013 年共 39,083 份 10-K 的 MD&A。
- Post-event Return Volatility 以 Fama–French 三因子模型殘差衡量,降低共同市場因素對標籤的干擾。
- Word-level 與 Sentence-level BiGRU Attention 同時產生風險排名與文字線索。
- XRR 搭配 Fin-Word2Vec 的平均 Kendall's Tau 為 0.573,Spearman's Rho 為 0.711。
- 金融領域 Word2Vec 優於只使用 BERT-Large Word Embedding 的版本,但這不等於完整 BERT 模型一定較差。
- Attention 能協助定位值得閱讀的文字,仍不能被當成因果解釋或投資建議。
預測一個漂亮的小數點很容易讓人產生掌握風險的錯覺。XRR 選擇先完成一個比較樸素、卻更容易驗證的任務:找出誰更危險,並指出模型看了哪些文字。
金融 AI 的價值不一定在於替人做出最後判斷,而是讓有限的注意力先放在真正需要判斷的地方。
參考資料
- Ting-Wei Lin, Ruei-Yao Sun, Hsuan-Ling Chang, Chuan-Ju Wang, and Ming-Feng Tsai. XRR: Explainable Risk Ranking for Financial Reports. ECML-PKDD 2021.
- CNCLabs. Financial Attention Model Source Code.
- Tim Loughran and Bill McDonald. Textual Analysis Resources.
免責聲明: 本文為論文閱讀與技術研究筆記,不構成任何投資建議。XRR 的風險排名與 Attention 結果應作為進一步研究的線索,不能取代財務分析、風險管理與專業判斷。