Paper 002 |不是看誰同產業,而是找出「誰承受相同風險」:Financial Risk Relation Identification through Dual-view Adaptation

Paper 002 |不是看誰同產業,而是找出「誰承受相同風險」:Financial Risk Relation Identification through Dual-view Adaptation

閱讀論文 Financial Risk Relation Identification through Dual-view Adaptation。這篇研究不再只用產業分類定義公司關係,而是從不同公司的 Form 10-K 風險段落中,透過時間與詞彙雙視角訓練金融檢索模型,找出共同風險段落,並以風險關係分數 RRS 量化企業之間的共同風險暴露。


投資組合中持有一家太陽能公司與一家社群平台公司,看起來應該已經完成產業分散。

但如果這兩家公司都依賴全球零組件、第三方製造商與跨國物流,那麼當疫情、港口塞車或晶片短缺發生時,它們仍可能同時受到影響。

也就是說:

產業不同,不代表風險不同。

傳統金融分析通常使用產業別、供應鏈、競爭關係或人工判斷,定義兩家公司之間是否具有關聯。但真正影響股價的關係,未必會明確寫在產業分類裡。

這篇論文 Financial Risk Relation Identification through Dual-view Adaptation(EMNLP 2025),提出了一種不同的方法:直接閱讀公司 Form 10-K 中的風險揭露,找出哪些公司正在描述相似的風險。

研究不只判斷兩家公司是否有關係,也進一步回答:

兩家公司共同暴露於多少風險?模型又是根據哪些財報段落做出判斷?

作者利用 Form 10-K 中的時間與詞彙規律,建立一個金融領域檢索模型,再透過共同風險段落與 Risk Relation Score(RRS),將原本抽象的企業風險關係轉換成可以計算、比較與檢查的數值。


參考資料與研究團隊


一、這篇論文想解決什麼問題?

1.1 公司關係不只存在於產業分類

金融市場是一個高度互相連動的系統。

企業可能共同受到以下事件影響:

  • 法規調整
  • 地緣政治衝突
  • 訴訟事件
  • 利率變化
  • 經濟衰退
  • 供應鏈中斷
  • 疫情與公共衛生危機

如果兩家公司同時暴露於相同風險因素,論文便將它們視為具有 Risk Relation(風險關係)。

例如,一家半導體公司與一家鐵路設備公司,雖然分屬不同產業,但如果都受到晶片短缺影響,兩者仍可能具有共同風險。

這種關係通常不會直接寫成:

公司 A 與公司 B 具有供應鏈風險關係。

它們只會各自在自己的 10-K 中揭露:

零組件短缺可能影響公司的生產能力。

這不是傳統的 Entity Relation Extraction。

傳統關係抽取通常處理的是明確關係,例如:

公司 A 收購公司 B。

但這篇論文想找的是跨公司、跨文件,而且沒有被直接說明的隱含關係:

公司 A 與公司 B 都正在承受相似的供應鏈風險。

1.2 傳統人工分類粒度較粗

企業關係通常由分析師、產業專家或 GICS 產業分類定義。

GICS 將公司分配到固定的 Sector 與 Industry,優點是簡單且容易理解,但也有三個限制:

  1. 關係是靜態的。
  2. 關係通常只有 0 或 1。
  3. 無法反映跨產業的動態風險。

例如,兩家公司若同屬科技業,就被視為有關係;分屬科技與能源業,便被視為沒有關係。

但疫情、升息與戰爭不會按照 GICS 產業邊界發生。

因此,這篇研究重新定義了企業關係:

企業關係不應只由公司屬於哪個產業決定,也應由它們正在共同面臨什麼風險決定。


二、研究方法全景:訓練金融檢索模型,再計算企業風險關係

論文的方法可以分成兩個主要階段:

階段任務核心目的使用技術
第一階段金融編碼器訓練讓模型理解哪些金融段落具有相似語意雙視角正樣本、對比學習、InfoNCE
第二階段企業風險關係計算找出跨公司共同風險段落,計算風險關係強度Cosine Similarity、MRP、RRS

整體流程如下:

Loading Diagram...

這套方法不是把兩份完整 10-K 丟進大型語言模型,再要求模型回答兩家公司是否有關係。

作者先把每個段落獨立轉換成向量,再進行大規模檢索,因此較適合處理數百家公司與數千份財報。


三、雙視角訓練:在沒有人工標籤的情況下建立正樣本

這篇論文的關鍵技術設計,是 Dual-view Adaptation。

作者沒有請金融專家人工標註:

  • 哪兩個段落描述相同風險。
  • 哪兩家公司具有風險關係。
  • 哪些段落應該被視為正樣本。

而是利用 Form 10-K 本身的特性,自動建立訓練資料。

3.1 詞彙視角:同一段落的重疊文字應具有相似語意

Form 10-K 是受到監管的正式文件,企業經常使用相似或固定的文字描述風險。

作者從同一段落中隨機抽取兩個彼此重疊的片段。

假設原始段落為:

[w_1,w_2,\ldots,w_n]

隨機選擇:

i < j

建立兩個文字片段:

[w_1,\ldots,w_j]

以及:

[w_i,\ldots,w_n]

由於兩個片段來自同一段落,而且中間具有重疊內容,因此被視為 Positive Pair。

簡化來看:

同一段話的前半段與後半段,應該被模型放在相近的向量位置。

這個方法讓模型學會金融文件常見的詞彙、句型與上下文結構。

3.2 時間視角:相同日期可能指向相同事件

作者觀察到,企業在 10-K 中描述重大事件時,通常會附帶日期。

例如:

On July 8, 2024...

若同一家公司的兩個段落都出現相同日期,作者便推測它們可能描述同一項事件,並將兩個段落視為正樣本。

但如果直接保留日期,模型可能只要看到:

July 8, 2024

就能判斷兩段文字相似。

因此,日期只用於建立正樣本,實際送入 Encoder 前會被刪除。

也就是:

日期負責告訴模型「這兩段可能有關」,但模型必須從剩餘內容中學會它們為什麼有關。

3.3 批次內負樣本

有了正樣本後,模型還需要負樣本。

作者使用 In-batch Negatives。

假設一個 Batch 中有 64 組正樣本,對其中一個 Anchor 而言:

  • 對應段落是正樣本。
  • 其他 63 組中的段落則被視為負樣本。

模型的學習目標是:

拉近正樣本\text{拉近正樣本} 推遠負樣本\text{推遠負樣本}

這種做法不需要另外抽取負樣本,計算效率較高,也常被用於 Dense Retrieval 模型。


四、從段落相似度到風險關係分數 RRS

訓練完成後,每一個段落都會被轉換成一個稠密向量。

給定兩個段落 (p_i) 與 (p_j),模型使用 Cosine Similarity 計算相似度:

s(p_i,p_j) = \cos(f_\theta(p_i),f_\theta(p_j))

如果相似度高於門檻:

s(p_i,p_j)\geq 0.75

就認為兩個段落可能描述相似風險。

4.1 Mutual Risk Paragraphs

公司 A 中,只要有一個段落能與公司 B 的某個段落達到門檻,就會被列入:

MRPs_A

公司 B 中符合相同條件的段落,則列入:

MRPs_B

兩者合併後形成:

MRPsABMRPs_{A\leftrightarrow B}

也就是 Mutual Risk Paragraphs,共同風險段落。

這些段落不只是中間計算結果,也會成為模型的解釋證據。

使用者可以直接看到:

  • 公司 A 哪一段提到供應鏈中斷。
  • 公司 B 哪一段描述相似風險。
  • 兩家公司為什麼會被模型連接起來。

4.2 Risk Relation Score

風險關係分數定義為:

RRS(A,B)=MRPsABNA+NBRRS(A,B) = \frac{|MRPs_{A\leftrightarrow B}|}{N_A+N_B}

其中:

  • (N_A):公司 A 的全部段落數。
  • (N_B):公司 B 的全部段落數。
  • (MRPsAB)(|MRPs_{A\leftrightarrow B}|):共同風險段落數。

例如:

  • 公司 A 有 100 個風險段落。
  • 公司 B 有 80 個風險段落。
  • 雙方共有 22 個段落被列為 MRP。

則:

RRS(A,B)=22180=0.1222RRS(A,B) = \frac{22}{180} = 0.1222

代表約 12.22% 的段落,與兩家公司共同風險有關。

RRS 有三個特點:

  1. 對稱性: RRS(A,B)=RRS(B,A)

  2. 最低相似度保證: 不是直接選 Top-k,而是只有達到 0.75 門檻的段落才會納入。

  3. 可解釋性: 每一個分數都可以回到原始 10-K 段落檢查。

需要注意的是,RRS 衡量的是:

共同風險內容在文字中的覆蓋程度。

它並不直接代表風險發生機率、財務損失金額、股價下跌幅度或企業實際脆弱程度。


五、模型實際怎麼訓練?

這篇論文將訓練流程與超參數進行了完整的交代。

設定項目論文設定
訓練資料期間2018–2020 年 Form 10-K
訓練章節訓練時使用所有公司、所有 10-K 章節
每段長度截斷或補齊至 256 tokens
詞彙視角正樣本8,500 組
詞彙視角驗證樣本1,000 組
時間視角正樣本8,500 組
時間視角驗證樣本1,000 組
基礎模型BERT-base-uncased
Batch size64
Learning rate2x10^-5
OptimizerAdam
SchedulerLinear warmup
RegularizationL2
最大 Epoch50
防止過度擬合Early stopping
訓練硬體單張 NVIDIA V100
訓練時間約 8 小時

為了調整 RRS 的相似度門檻,作者從 0.5 測試至 0.9,每次增加 0.05,最後選擇 0.75 作為精確率與涵蓋率之間的平衡。

在正式計算 RRS 時,並不使用整份 10-K,而是集中在最可能出現風險揭露的兩個章節:

  • Item 1A:Risk Factors
  • Item 7A:Quantitative and Qualitative Disclosures about Market Risk

六、實驗一:RRS 是否符合真實股價共同波動?

作者的第一個研究問題是:

如果兩家公司被模型判定具有共同風險,它們的股票是否也會出現較高的共同波動?

6.1 評估資料

研究以 2024 年 S&P 500 成分股名單為基準,保留 2018 至 2024 年間持續存在,且具有完整資料的公司。

資料來源包括:

  • Yahoo Finance 股價資料
  • SEC API 的 Form 10-K

排除:

  • 涉及併購的公司
  • 缺少風險揭露的公司
  • 財報資料不完整的公司

前處理則移除 HTML、XBRL tags 與 Tables。

最終資料集包含 337 家公司,2,136 份 Form 10-K,評估期間為 2018–2024 年。

6.2 評估指標

作者定義:

\rho = corr(RRS,CAVDSR)

其中 CAVDSR 是兩家公司每日股票報酬率「絕對值」的相關係數。

使用絕對值的原因在於,同一個事件可能對兩家公司產生相反方向的效果。例如疫情可能讓醫療公司股價上升,旅遊公司股價下跌。方向雖然相反,但兩者都對同一事件高度敏感。

因此,這個指標主要衡量兩家公司是否同時出現較大的價格波動,而不是同方向上漲或下跌。


七、模型比較:金融模型不一定比檢索模型好

作者將比較方法分成兩類。

7.1 人工定義關係

  • GICS Sector
  • GICS Industry

若兩家公司屬於相同分類,關係值設為 1,否則為 0。

7.2 模型定義關係

  • BERT-base-uncased
  • Llama-3.2-3B
  • Contriever
  • DPR
  • FinBERT
  • SEC-BERT
  • Ours

為了比較,所有模型都使用相同的 RRS 計算方式,只替換負責產生段落向量的 Encoder。

7.3 RRS 與股票共同波動的相關性

方法20202021202220232024Avg.
GICS Sector0.16570.28810.29640.29710.23890.2572
GICS Industry0.18060.33360.29610.33160.31150.2907
BERT-base-uncased0.08040.26090.29390.19450.24710.2796*
Llama-3.2-3B0.20310.39650.32330.41540.43360.3544
Contriever0.21360.39640.31310.41120.44060.3556
DPR0.21380.40080.32220.41580.44390.3583
FinBERT0.13520.30130.27060.27320.30700.3058
SEC-BERT0.17080.35450.33070.34600.36330.3569
Ours0.21410.40790.34120.42330.45310.3711

本文模型五年平均為 0.3711,高於 GICS Industry 的 0.2907 與其他比較模型。

結果顯示,產業分類確實能提供部分企業關係,但粒度可能較粗。

另一方面,FinBERT 與 SEC-BERT 雖然使用金融語料訓練,數值上仍低於專門處理檢索任務的 DPR 與 Contriever。

這呈現了一個技術現象:模型讀過金融文本,不一定代表擅長金融檢索。Domain Pretraining 解決的是「模型是否理解金融語言」,Retrieval Fine-tuning 解決的則是「模型是否能把相關段落放在一起」。

本文模型同時具備了金融資料、檢索目標與雙視角訓練,在評估中取得最佳結果。

註:原論文表格將 BERT-base-uncased 的 Avg. 列為 0.2796,但依表中五個年度數值直接平均約為 0.2154,本文保留原表數值,並另外註記。


八、消融實驗:詞彙重要,時間在系統性事件中更重要

為了確認兩種視角的效果差異,作者另外訓練三個版本:

  1. 只使用時間視角。
  2. 只使用詞彙視角。
  3. 同時使用兩種視角。
模型20202021202220232024
Chronological0.16590.36910.36370.36710.3908
Lexical0.21370.41040.33360.42310.4510
Both Views0.21610.41500.34210.42700.4553

多數年份中,詞彙視角比時間視角表現好,這表示 Form 10-K 中固定且一致的風險描述方式提供了有效的訓練訊號。

但在 2022 年,時間視角的 0.3637 高於詞彙視角的 0.3336。作者推測,由於 2022 年發生多項系統性事件(如聯準會升息、地緣政治衝突等),這些事件在相近時間內影響大量企業,使時間對齊的作用相對提升。


九、實驗二:把風險關係放進股價預測模型

作者進一步將 RRS 放入 Attribute-Driven Graph Attention Networks(ADGAT),測試其對股價漲跌預測的影響。

原始 ADGAT 使用人工定義的企業關係(如相同 Sector 或 Industry)。作者以本文產生的 RRS 取代預定義關係。

9.1 實驗設定

資料期間為 2023-01-01 至 2024-09-04。訓練資料 280 天,驗證與測試各 70 天。Optimizer 為 Adam,Learning rate 為 5x10^-5,Batch size 15,最大 Epoch 300。每組實驗執行 15 次,報告最佳 5 次平均。

9.2 實驗結果

方法Mean AUC ± Std.
ADGAT,不使用本文關係0.5807 ± 0.012
ADGAT,使用本文關係0.5939 ± 0.006

引入 RRS 後,結果改善了 2.27%,且具備統計顯著性 (p < 0.05)。這顯示 RRS 除了作為文字相似度指標,也能在圖模型中作為公司關係特徵。


十、實驗三:檢索能力評估

作者使用 MultiHiertt 評估 Encoder 的資訊檢索能力。MultiHiertt 是金融問答資料集,實驗中將其轉為檢索任務:給定一個問題,從 10,475 份文件中找出相關段落。

檢索分為兩階段:使用 Encoder 取出 Top 200,再使用 BAAI/bge-reranker-v2-m3 重新排序。

10.1 模型比較

ModelNDCG@1NDCG@10Precision@3Recall@1
BERT-base-uncased0.03770.01400.01600.0052
Llama-3.2-3B0.01710.00890.00910.0037
Contriever0.17120.09300.09020.0394
DPR0.15750.07850.06960.0407
FinBERT0.00340.00330.00230.0009
SEC-BERT0.02740.01490.01370.0071
Ours0.20210.11110.09930.0518

相較於各指標中較佳的基準模型,本文模型的 Recall@1 達 0.0518,比基準 DPR 的 0.0407 提升約 27.27%。

10.2 模型特性分析

FinBERT 的 NDCG@1 為 0.0034,相對較低。這是因為 FinBERT 的訓練目標主要針對金融情緒與領域語言,並未針對 Dense Retrieval 進行最佳化。而 Contriever 與 DPR 本身是檢索模型,表現相對較佳。本文模型結合了領域資料與檢索訓練目標,在此任務中表現較為突出。


十一、案例研究:ENPH 與 META 的潛在關聯

作者選擇 Enphase Energy(ENPH)與 Meta Platforms(META)進行案例分析。從傳統產業分類來看,潔淨能源與社群平台似乎沒有明顯關係。

但在 2023 年,模型將 ENPH 與 META 的風險關係排在所有公司配對的前 5%。模型找出的共同主題是 COVID-19 所造成的供應鏈中斷。

ENPH 在 10-K 中提到:

COVID-19 與其他公共衛生危機,可能影響營運結果並干擾全球供應鏈。

META 則提到:

公司依賴第三方製造與運輸消費性硬體,疫情加劇了供應、勞動力、物流與供應鏈風險。

兩家公司依賴全球供應鏈、第三方製造與物流系統,因此呈現出共同的風險暴露。這個案例說明,傳統產業分類在衡量特定風險時,可能無法涵蓋所有的關聯性。


十二、這與直接使用 LLM 分析有什麼不同?

1. 運算成本與效率

如果讓 LLM 對 337 家公司進行兩兩配對,計算組合達 56,616 組。Dense Retrieval 能先獨立計算每個段落的向量再重複使用,推論效率較高。

2. 計算標準一致

RRS 有固定計算公式,相較於 LLM 的文字判斷,較容易進行跨公司、跨年度的數值比較。

3. 可回溯檢查

模型輸出 RRS 的同時會保留 MRP,分析師可以回頭檢視兩家公司各自的原始風險段落。

4. 檢索任務的適應性

實驗中 Llama-3.2-3B 在 MultiHiertt 的檢索任務 NDCG@1 表現為 0.0171。大型語言模型主要為生成設計,不一定天然適合產生可比較的檢索向量。


十三、讀後啟發:投資組合分析的延伸

這篇論文提供了一個觀察企業關係的不同視角。

傳統投資組合分析常檢查產業集中度或報酬相關性,但可能忽略文字中揭露的共同風險。例如,太陽能設備、社群平台與汽車公司可能分屬不同產業,但都受到特定供應鏈或總體經濟因素影響。

未來的投資組合風險評估,可考慮建立企業與風險事件的關聯:

公司 A共同風險公司 B\text{公司 A} \leftrightarrow \text{共同風險} \leftrightarrow \text{公司 B}

這類模型可作為 Financial Knowledge Graph 的建構基礎,RRS 可作為邊的權重,MRP 則提供文字證據。配合自動化工作流,這類方法有潛力協助分析師更系統化地處理大量的財報文字與更新風險預警。


十四、研究限制

這篇論文仍有幾項限制需要注意。

1. 僅辨識共同風險

模型尋找的是 Shared Risk Exposure,不適合用來判斷企業間的併購、競爭、客戶供應商或產品互補等商業關係。

2. 資料更新頻率

Form 10-K 一年僅公布一次,無法即時反映突發的短期市場事件或單季財報變化。未來若納入 10-Q 或新聞資訊,可提升即時性。

3. 相似文字的實際影響差異

企業可能使用相似的風險語言,但風險發生機率、影響程度及公司的財務因應能力仍可能不同。因此,RRS 更適合當作風險關係的文字線索,而非完整的定價模型。

4. 缺少人工專家驗證

研究主要透過股價共同波動、下游預測與檢索基準來驗證,未經過金融專家逐組判斷關係是否合理。未來若引入專家標註,將能進一步確認模型找出之關聯的實際投資意義。


十五、總結

這篇論文建立了一套處理財報風險的研究流程,從利用時間與詞彙建立正樣本,以對比學習訓練金融 Encoder,到檢索跨公司的相似風險段落,最終建立 MRP 與 RRS,並驗證了其與股票共同波動的相關性。

結果顯示,該模型在評估股票報酬共同波動及下游的股價預測、金融檢索任務上,皆有所改善。

這項研究指出,公司之間的關聯,不僅可透過其所屬產業劃分,亦可透過其揭露之風險來分析。在金融分析與 AI 應用的結合上,建立跨公司、跨年度與跨事件的風險關係網路,是值得持續發展的方向。