
Paper 003 |模型說兩家公司風險相連,證據在哪裡?SURF:可解釋的企業風險關係系統
閱讀 NAACL 2025 系統展示論文 SURF: A System to Unveil Explainable Risk Relations between Firms。SURF 從企業 Form 10-K 找出共同風險段落,以 RRS 量化公司之間的風險關係,再透過互動式網路圖、原文證據與 LLM 摘要,讓使用者理解兩家公司為什麼被連接。
WRITTEN BY

- Name
- Harry Chang
上一篇
如果一套金融 AI 告訴你:
NVIDIA 與鐵路設備公司 Wabtec 之間,存在很強的風險關係。
第一個反應大概不是下單,而是追問:
一家做 GPU,一家做鐵路設備,為什麼會有關?
這也是金融模型從研究走向實際使用時,最難跨過的一道門檻。模型算出一個分數並不困難,困難的是讓使用者看懂這個分數從哪裡來、依據哪些文件,又能不能回到原文檢查。
NAACL 2025 的系統展示論文 SURF: A System to Unveil Explainable Risk Relations between Firms,將企業風險關係辨識做成一套可操作的互動平台。它不只在公司之間畫一條線,而是同時呈現:
- 關係有多強。
- 在所有公司配對中排第幾名。
- 兩家公司共同面臨哪些風險。
- 模型根據哪些 10-K 段落做出判斷。
上一篇 ai-088 討論的是如何利用時間與詞彙雙視角,訓練出能辨識共同風險的金融檢索模型。這一篇要繼續往使用者端走:當模型已經找到關係,SURF 如何把分數、網路圖、LLM 與原始證據組裝成一個可以被分析師檢查的系統。
- 參考資料與研究團隊
- 一、SURF 想解決的,不只是模型準不準
- 二、SURF 讀了 10-K 的哪些內容?
- 三、系統底層:先找出共同風險段落
- 四、RRS:把共同風險文字轉換成關係強度
- 五、SURF 的三個操作模組
- 六、LLM 在 SURF 中扮演什麼角色?
- 七、使用者回饋如何改寫 Prompt?
- 八、實驗如何驗證風險關係?
- 九、案例研究:NVIDIA 與 Wabtec 為什麼相連?
- 十、SURF 與上一篇 ai-088 有什麼不同?
- 十一、研究限制與實務風險
- 十二、讀後啟發:好的金融 RAG,重點是證據鏈
- 十三、總結
- 參考資料
參考資料與研究團隊
- 論文連結:ACL Anthology:SURF: A System to Unveil Explainable Risk Relations between Firms(註1)
- 發表會議:NAACL 2025 System Demonstrations
- 主要研究人員:
- Yu-Hsiang Wang
- Wei-Ning Chiu
- Yi-Tai Hsiao
- Yu-Shiang Huang
- Yi-Shyuan Chiang
- Shuo-En Wu
- Chuan-Ju Wang(王釧茹)
- 研究機構:
- Academia Sinica
- National Taiwan University
- University of Illinois Urbana-Champaign
一、SURF 想解決的,不只是模型準不準
企業之間的風險關係,經常隱藏在各自的財務文件中。
以旅館業為例,Marriott 與 Hilton 可能同時面對旅遊需求下降、天然災害與同業競爭。這類關係相對容易理解,因為兩家公司屬於相近產業。
但供應鏈中斷、晶片短缺、疫情或監管政策,可能同時影響不同產業的公司。此時,GICS Sector 或 Industry 只能告訴我們公司被分在哪一類,無法完整說明它們實際共同暴露於哪些風險。
傳統做法通常有三種:
| 方法 | 如何定義公司關係 | 主要限制 |
|---|---|---|
| 公司直接提及 | 計算公司 A 在公司 B 財報中出現幾次 | 關係過窄(沒被點名不代表沒有共同風險) |
| 產業分類 | 同產業設為 1,不同產業設為 0 | 粒度過粗(忽略跨產業風險) |
| 黑箱模型 | 預測兩家公司是否相連 | 缺少證據(使用者難以檢查原因) |
SURF 的主張是:
企業風險關係不能只有一個分數,還必須保留形成分數的原始文字證據。
因此,它要處理的是一條完整的解釋鏈:
二、SURF 讀了 10-K 的哪些內容?
SURF 的資料來源是美國上市公司每年提交給 Securities and Exchange Commission(SEC)的 Form 10-K。
系統集中處理三個與企業營運及風險有關的章節:
| 10-K 章節 | 內容 | 在 SURF 中的用途 |
|---|---|---|
| Item 1. Business | 業務、產品、市場與營運模式 | 理解企業背景(辨識營運上的共同暴露) |
| Item 1A. Risk Factors | 公司認為可能影響營運的重大風險 | 主要風險來源(找出跨公司的相似風險) |
| Item 7A. Market Risk | 利率、匯率與商品價格等市場風險 | 補充市場暴露(捕捉金融條件的共同影響) |
論文使用 2018 至 2023 年的 S&P 500 公司資料。排除期間內經歷合併、缺少風險揭露或資料不完整的公司後,留下:
| 資料項目 | 規模 |
|---|---|
| 公司數量 | 356 家 |
| Form 10-K 數量 | 2,136 份 |
| 分析年度 | 6 年 |
| 公司配對 | 63,190 組 |
原始文件會先移除 HTML、XBRL 標籤與表格,再切分成段落送進 Encoder。這個設計讓系統處理的是文字揭露,不是資產負債表中的數值。
因此,SURF 找到的關係應該被理解為:
兩家公司在 10-K 中揭露了多少相似的風險內容。
它不是風險發生機率,也不是預估損失金額,更不等於兩檔股票未來一定同漲同跌。
三、系統底層:先找出共同風險段落
SURF 將每個 10-K 段落轉換為向量,再利用 Cosine Similarity 比較不同公司的段落。
為了讓 Encoder 適應金融文件,作者使用兩種方式自動建立正樣本:
| 訓練視角 | 正樣本如何產生 | 模型學到什麼 |
|---|---|---|
| Chronological View | 同一家公司、包含相同日期的兩個段落 | 事件關聯(不同段落可能描述同一事件) |
| Lexical View | 同一段落中彼此重疊的兩個文字片段 | 詞彙關聯(金融文件的固定語言模式) |
每個視角使用 8,500 組訓練正樣本與 1,000 組驗證正樣本,並以 InfoNCE Loss 與 In-batch Negatives 進行對比學習。
時間視角有一個重要細節:日期只負責建立正樣本,訓練與驗證時會從文字中移除。否則模型只要比對日期相同,就可能取得很好的表面成績,卻沒有真正學會事件內容。
訓練完成後,如果公司 A 的段落與公司 B 至少一個段落的 Cosine Similarity 高於門檻,便會被列為 Mutual Risk Paragraph(MRP,共同風險段落)。
論文測試 0.60 至 0.95 的門檻,最後選擇 0.75。
與 Top-k Retrieval 相比,門檻法的差別在於:
- Top-k 無論結果好壞,都必須找出固定數量的段落。
- Threshold Retrieval 只保留達到最低相似度要求的段落。
如果兩家公司其實沒有相似風險,SURF 不需要為了填滿名額而硬找出 k 個結果。
四、RRS:把共同風險文字轉換成關係強度
找到 MRPs 後,SURF 會計算 Risk Relation Score(RRS,風險關係分數):
RRS 的範圍介於 0 與 1:
| RRS 狀態 | 代表意義 |
|---|---|
| 接近 0 | 共同內容少(很少段落達到相似度門檻) |
| 數值提高 | 共同內容增加(較多段落描述相似風險) |
| 接近 1 | 文字高度重疊(大部分段落皆被列為 MRP) |
這個分數的優點,是不同公司組合可以使用相同規則比較,而且每個分數都能回到 MRP 查看來源。
不過,RRS 也有一個需要保留的疑問:揭露篇幅並不一定等於實際曝險程度。
一家企業可能用十段文字描述低機率風險,另一家企業只用一段文字描述足以中斷營運的關鍵風險。RRS 衡量的是文字覆蓋程度,沒有直接估算衝擊金額、發生機率與企業的承受能力。
因此,它比較適合用來回答:
哪些公司值得被放在一起進一步檢查?
而不是直接回答:
哪一家公司最危險?
五、SURF 的三個操作模組
SURF 將模型結果拆成三個互相連動的介面模組。
5.1 User Setting Module:先縮小分析範圍
使用者可以從側邊欄設定:
- 分析年度。
- 最多三家目標公司。
- 每家公司要顯示多少個最相關的企業。
按下 Submit 後,系統會依條件重新繪製關係圖;Reset 則回到市值前 50 大公司的預設畫面。
這個模組處理了一個很實際的問題:356 家公司若全部畫在同一張圖上,資訊量很快就會超過人眼可以判讀的範圍。使用者需要先用年份與目標公司縮小範圍,再進一步檢查關係。
5.2 Graph Visualization Module:把關係變成可探索的網路圖
在關係圖中:
| 視覺元素 | 代表意義 |
|---|---|
| 節點 | 公司 |
| 節點大小 | 公司市值 |
| 節點顏色 | GICS Sector |
| 邊 | 兩家公司存在風險關係 |
| 邊的粗細 | RRS 關係強度 |
| 紅色邊 | 使用者目前選取的關係 |
使用者可以旋轉與縮放 3D 圖,也可以將游標移到節點上查看公司名稱。
網路圖的價值不是把資料畫得比較漂亮,而是讓使用者看見單一公司周圍的風險鄰居。若一家企業與許多不同產業的公司形成粗邊,就可能反映某種跨產業的系統性風險。
但 3D 圖也不一定永遠優於表格。當節點太多、邊彼此遮擋時,精確比較仍可能需要排序表、篩選器或 2D 檢視。論文展示了互動能力,但沒有提供使用者研究來證明 3D 呈現能提升決策品質。
5.3 Relation Rationale Explainer:點一條邊,查看證據
當使用者點選任一條邊,右側面板會顯示:
- 兩家公司的名稱。
- 兩者的 RRS。
- 該關係在全部公司配對中的排名。
- LLM 產生的共同風險關鍵字與摘要。
- 兩家公司各自的 MRP 原文。
使用者還可以點選其中一段 MRP,查看另一家公司與它相似的風險段落。
這一步把解釋拆成兩層:
| 解釋層 | 內容 | 用途 |
|---|---|---|
| 摘要層 | LLM 整理的關鍵字與共同風險說明 | 快速理解(先知道關係主題) |
| 證據層 | 兩家公司 10-K 的原始 MRP | 回溯驗證(確認摘要沒有偏離文件) |
如果系統只顯示 LLM 摘要,使用者仍然必須相信模型;如果只列出十幾段 10-K 原文,閱讀成本又會回到原點。
SURF 的設計是在兩者之間建立一條路徑:先用摘要降低閱讀門檻,再讓使用者回到原文確認。
六、LLM 在 SURF 中扮演什麼角色?
SURF 使用 GPT-4o-mini 產生關係說明,但 LLM 並不負責決定兩家公司是否相連。
兩者的分工如下:
| 工作 | 執行元件 |
|---|---|
| 將段落轉成向量 | 金融 Dense Encoder |
| 判斷段落是否達到相似度門檻 | Cosine Similarity 與 Threshold |
| 計算公司關係強度 | RRS |
| 整理共同風險的關鍵字與摘要 | GPT-4o-mini |
| 提供可核對的事實來源 | 10-K 原始 MRP |
LLM 接收的不是兩份完整 10-K,而是前一階段已經找出的 MRPs。這是一種 Retrieval-Augmented Generation(RAG,檢索增強生成)的做法。
論文附錄公開了摘要提示詞的主要要求:
- 合併兩家公司的相似風險。
- 產生簡潔且連貫的摘要。
- 選出最多三個關鍵字。
- 使用 HTML 的
strong標籤標示重要內容。
這個架構的重點不是讓 LLM 取代檢索模型,而是把不同任務交給適合的元件:
Encoder 負責找證據,公式負責算分數,LLM 負責把證據說清楚。
七、使用者回饋如何改寫 Prompt?
SURF 還加入一個動態 Prompt Refinement 流程。
當使用者對某則關係摘要提供正面或負面回饋後,系統會將錯誤案例交給 LLM,分成兩個步驟處理:
- 推測目前提示詞為什麼在該案例出錯。
- 根據錯誤原因產生一版改良後的提示詞。
流程可以簡化為:
這種設計比固定 Prompt 多了一層適應能力,但論文沒有提供長期線上實驗,因此仍有幾個問題尚待驗證:
- 少數使用者的偏好是否會讓 Prompt 過度擬合?
- 正面與負面回饋如何加權?
- 新 Prompt 是否會改善舊案例,卻讓其他案例退步?
- Prompt 更新前後,是否有固定測試集避免品質漂移?
如果要把這套方法用在實際金融系統中,Prompt 不宜只因單一錯誤案例立即上線。比較穩健的做法,是將回饋案例加入評估資料集,先比較新舊 Prompt 的整體表現,再決定是否更新正式版本。
八、實驗如何驗證風險關係?
企業共同風險沒有現成的標準答案,因此作者使用股價共同波動作為代理指標。
論文的假設是:
如果兩家公司暴露於相似風險,當共同事件發生時,兩者較可能在同一時期出現明顯價格波動。
作者先計算兩家公司每日股票報酬率絕對值的相關係數,稱為 CAVDSR,再衡量它與 RRS 的相關性:
使用報酬率絕對值,是因為同一事件可能讓不同公司朝相反方向移動。例如疫情可能有利於部分醫療公司,卻不利於旅遊公司。方向不同,仍可能代表兩者同時受到同一風險事件影響。
8.1 實驗結果
| 方法 | 2020 | 2021 | 2022 | 2023 |
|---|---|---|---|---|
| Direct Mentions | 0.0124 | 0.0303 | 0.0340 | 0.0312 |
| GICS Sector | 0.1637 | 0.2845 | 0.2917 | 0.2985 |
| GICS Industry | 0.1774 | 0.3297 | 0.2929 | 0.3305 |
| Contriever | 0.2042 | 0.3914 | 0.3253 | 0.4027 |
| DPR | 0.2069 | 0.3896 | 0.3138 | 0.4068 |
| FinBERT | 0.1656 | 0.3311 | 0.3228 | 0.3079 |
| Ours | 0.2091 | 0.4054 | 0.3373 | 0.4191 |
SURF 使用的 Encoder 在四個年度都取得最高相關性。
Direct Mentions 的結果最低,表示只計算公司是否在另一家公司的財報中被點名,難以捕捉隱含的共同風險。GICS Sector 與 Industry 有一定效果,但仍受固定分類限制。
另一個值得注意的結果是 FinBERT。它雖然使用金融文本訓練,表現卻低於 DPR 與 Contriever 等檢索模型。
這再次說明:
讀過金融語料,不代表模型已經學會如何檢索金融段落。
領域預訓練處理的是語言知識,檢索訓練處理的是哪些內容應該被放在相近的向量位置,兩者不是同一個問題。
九、案例研究:NVIDIA 與 Wabtec 為什麼相連?
論文選擇 NVIDIA(NVDA)與 Westinghouse Air Brake Technologies(Wabtec,WAB)作為案例。
| 公司 | 主要業務 | 傳統分類直覺 |
|---|---|---|
| NVIDIA | GPU 與 AI 運算 | 半導體、資訊科技 |
| Wabtec | 鐵路設備與運輸技術 | 工業、運輸設備 |
兩家公司在 2022 年的風險關係,位於 63,190 組公司配對的第 95 百分位。
SURF 找到的共同風險是疫情造成的營運中斷與供應鏈限制,尤其涉及晶片、零組件、原物料與勞動力短缺。
這個案例的重要性不在於證明 NVIDIA 與 Wabtec 屬於同一產業,而是顯示:
不同產品會共用同一套脆弱的外部條件。
GPU 與鐵路設備的終端市場不同,但兩家公司都依賴晶片、零組件與全球供應鏈。當供應限制發生時,它們可能在財報中揭露相似風險,也可能在市場上同時出現較大的價格反應。
對投資組合而言,持有不同 GICS 產業的股票,未必已經完成真正的風險分散。若底層都依賴相同原料、地區、運輸節點或監管環境,產業名稱不同,風險來源仍可能相同。
十、SURF 與上一篇 ai-088 有什麼不同?
兩篇研究來自高度重疊的研究團隊,也使用相同的 MRP、RRS 與雙視角訓練概念,但回答的問題不同。
| 比較面向 | ai-088:Dual-view Adaptation | ai-089:SURF |
|---|---|---|
| 論文定位 | 完整方法與模型評估 | 系統展示與互動設計 |
| 核心問題 | 如何訓練更好的金融檢索 Encoder | 如何讓使用者探索並理解企業關係 |
| 主要輸出 | RRS、檢索結果、下游預測表現 | 網路圖、關係排名、摘要與 MRP 原文 |
| LLM 角色 | 不是主要研究焦點 | 將 MRP 整理為關鍵字與關係摘要 |
| 使用者回饋 | 非核心內容 | 用來分析錯誤並改寫 Prompt |
| 案例 | ENPH 與 META | NVIDIA 與 Wabtec |
| 資料版本 | 延伸至 2024 年的較完整實驗 | 2018 至 2023 年的系統展示 |
簡單來說:
ai-088解決模型如何找到關係,ai-089解決人如何看懂關係。
這也是許多 AI 專案容易忽略的一段。離線評估分數提高,不代表使用者就知道怎麼採用;如果沒有查詢、排序、證據回溯與錯誤回饋,模型結果很難進入實際分析流程。
十一、研究限制與實務風險
11.1 股價共同波動不是風險關係的標準答案
CAVDSR 是合理的代理指標,但兩家公司同時大幅波動,也可能只是受到整體市場、利率或總體消息影響。相關性提高支持模型具有訊號,卻不能證明每一條公司關係都正確。
11.2 10-K 的更新速度較慢
10-K 每年更新一次,適合分析結構性風險,不適合捕捉剛發生的戰爭、罷工、資安事件或季度供應鏈變化。論文也將新聞與分析師報告列為後續可能加入的資料來源。
11.3 相似揭露不等於相同脆弱程度
監管文件常使用標準化語言。兩家公司可能寫出相似段落,但其中一家已有替代供應商,另一家卻依賴單一來源。光靠文字相似度,無法完整反映風險緩解能力。
11.4 LLM 摘要仍可能偏離證據
SURF 保留 MRP,降低了摘要無法查證的問題,但不能保證 LLM 不會過度概括、錯置因果或忽略關鍵差異。原文不是裝飾,而是最後的查核依據。
11.5 缺少使用者研究
論文展示了互動介面與回饋機制,但沒有報告分析師完成任務的時間、判斷準確率或信任程度。系統具有可解釋元件,不代表這些元件已被證明能改善投資決策。
十二、讀後啟發:好的金融 RAG,重點是證據鏈
現在談 Financial RAG,常見做法是把財報放進向量資料庫,讓 LLM 回答問題。
SURF 提供了更完整的系統拆分:
| 層次 | SURF 的做法 | 實務價值 |
|---|---|---|
| 資料層 | 使用 SEC 10-K 的特定章節 | 限制來源(降低無關內容) |
| 檢索層 | 使用金融資料適應過的 Encoder | 找對證據(不是只靠通用向量) |
| 判定層 | 使用固定門檻與 RRS | 標準一致(可跨公司與年度比較) |
| 生成層 | LLM 摘要 MRP 與產生關鍵字 | 降低閱讀成本(不負責創造關係) |
| 驗證層 | 顯示雙方原始段落 | 可回溯(讓使用者檢查) |
| 改善層 | 蒐集回饋並調整 Prompt | 形成迴圈(持續累積錯誤案例) |
真正值得借鏡的,不只是使用 GPT-4o-mini,而是整條證據鏈沒有被 LLM 取代。
如果要將這個概念放進投資研究工作流,我會把 SURF 定位為風險篩選器:
- 先用 RRS 找出投資組合中不直觀的高風險關係。
- 再從 MRP 確認共同主題與原始揭露。
- 接著補上 10-Q、新聞與供應鏈資料確認時效性。
- 最後評估風險發生機率、財務衝擊與公司因應能力。
SURF 適合幫分析師決定「下一步該查誰」,不適合單獨決定「下一筆該買誰」。
十三、總結
- SURF 將企業 10-K 中的共同風險,轉換為可比較的 MRP 與 RRS。
- 系統以網路圖呈現公司關係,並保留關係強度、排名與原始文字證據。
- GPT-4o-mini 的任務是整理已檢索的證據,而不是直接判斷公司是否相連。
- NVIDIA 與 Wabtec 的案例顯示,跨產業公司仍可能暴露於相同的供應鏈風險。
- RRS 衡量文字中的共同風險覆蓋程度,不能直接解讀為風險機率、損失金額或交易訊號。
模型分數只能告訴我們「這裡可能有關係」,可解釋系統則必須繼續回答「證據在哪裡」。
對金融 AI 而言,真正能建立信任的往往不是更流暢的摘要,而是每一項結論都能沿著證據鏈,走回最初的文件。
參考資料
- Yu-Hsiang Wang, Wei-Ning Chiu, Yi-Tai Hsiao, Yu-Shiang Huang, Yi-Shyuan Chiang, Shuo-En Wu, and Chuan-Ju Wang. SURF: A System to Unveil Explainable Risk Relations between Firms. NAACL 2025 System Demonstrations.
- U.S. Securities and Exchange Commission. EDGAR Application Programming Interfaces.(註2)
免責聲明: 本文為論文閱讀與技術研究筆記,內容不構成任何投資建議。SURF 與 RRS 的輸出應作為進一步研究的線索,不能取代財務分析、風險評估與專業判斷。