Skip to content

Latest commit

 

History

History
executable file
·
295 lines (212 loc) · 8.12 KB

File metadata and controls

executable file
·
295 lines (212 loc) · 8.12 KB

ESG-SASB Matching 系統瓶頸分析報告

目前版本:v64 (Selective Merge)

效能表現:

  • Train F1 Score: 0.1618
  • Test F1 Score: 0.1200

關鍵參數:

  • SCORE_THRESHOLD: 0.52 (bi-encoder 過濾閾值)
  • HORIZONTAL_SPREAD_THRESHOLD: 200px (觸發合併的水平分散閾值)
  • MERGE_LLM_THRESHOLD: 6 (合併時的 LLM 分數閾值)
  • MAX_MERGED_RATIO: 0.85 (最大合併後頁面佔比)

一、基本統計

指標 數值
Train GT 總數 151 筆
GT = NONE 75 筆 (49.7%)
GT 有標註 76 筆 (50.3%)
Pred = NONE 76 筆 (50.3%)
Pred 有預測 75 筆 (49.7%)

TP/FP/FN 分布

指標 數值 說明
TP 9 IoU ≥ 0.5 且 Code 正確
FP 47 預測錯誤
FN 67 漏報

二、IoU Bottleneck 分析

2.1 Code 正確但 IoU < 0.5 的案例

19 個案例,這是最大的潛在改進空間。

分類 數量 說明
太小 (面積比 < 0.7) 6 預測的 bbox 小於真實區域
太大 (面積比 > 1.5) 12 預測的 bbox 超出真實區域
位置偏移 1 面積相近但位置不同

2.2 詳細案例列表

高潛力案例 (IoU 0.3-0.5,最接近成功)

ID IoU 面積比 Code 問題類型
145 0.482 0.48 FN-CB-240a.1 太小
131 0.463 1.79 TC-HW-440a.1 太大
146 0.449 2.05 EM-RM-120a.1 太大
206 0.402 2.10 EM-RM-530a.1 太大
093 0.368 2.66 FN-CB-230a.2 太大
036 0.348 0.35 TC-SC-440a.1 太小

低 IoU 案例 (IoU < 0.3)

ID IoU 面積比 Code 問題類型
151 0.340 1.80 TC-SC-110a.2 太大
167 0.335 2.65 TC-SC-110a.2 太大
184 0.307 0.32 FN-CB-410a.2 太小
102 0.257 0.26 TC-SC-320a.1 太小
129 0.207 4.83 TC-SC-110a.2 太大
188 0.149 6.48 TC-SC-410a.2 太大
103 0.141 1.34 TC-HW-440a.1 位置偏
154 0.097 0.10 FN-CB-510a.2 太小
140 0.042 5.51 TC-SC-320a.1 太大
028 0.000 0.22 TC-HW-330a.1 太小 (無交集)
114 0.000 2.71 TC-SC-320a.1 太大 (無交集)
119 0.000 3.21 TC-SC-130a.1 太大 (無交集)
182 0.000 5.36 TC-SC-140a.1 太大 (無交集)

2.3 IoU 問題根本原因

  1. 「太大」問題 (12 案例)

    • 選擇性合併策略導致過度擴展
    • 頁面上存在多個相關但非目標的段落被合併
    • 特別常見於 TC-SC 和 EM-RM 相關指標
  2. 「太小」問題 (6 案例)

    • segment 切分過細,未能捕捉完整內容
    • 未觸發合併機制(水平分散 < 200px)
  3. 「位置偏移」問題 (1 案例)

    • 選到相同頁面上的不同區域

三、F1 Score Bottleneck 分析

3.1 FP (False Positive) 分析

47 個 FP,來源分解:

FP 類型 數量 佔比
GT = NONE 但有預測 29 61.7%
Code mismatch 18 38.3%

3.2 FN (False Negative) 分析

67 個 FN,來源分解:

FN 類型 數量 佔比
預測 NONE (漏報) 30 44.8%
Code 正確但 IoU 低 19 28.3%
Code mismatch 18 26.9%

四、Precision 與 Recall 分析

4.1 當前數值

指標 計算 數值
Precision TP/(TP+FP) = 9/(9+47) 0.161
Recall TP/(TP+FN) = 9/(9+67) 0.118

4.2 瓶頸分析

Precision 低的主因:

  • 29 個案例預測有值但 GT 為 NONE(誤報)
  • 18 個案例 Code 選錯(語義相近的指標混淆)

Recall 低的主因:

  • 30 個案例應該有值但預測為 NONE(漏報)
  • 19 個案例 Code 正確但 bbox 定位不準

五、各 SASB Report 表現分析

SASB Report F1 Score 狀態
SASB-HC-BP.pdf 0.500 最佳
SASB-FN-CB.pdf 0.240 良好
SASB-TC-SC.pdf 0.057 較差
SASB-EM-RM.pdf 0.074 較差
SASB-TC-HW.pdf 0.000 最差

問題報告分析

  1. SASB-TC-HW.pdf (F1=0.000)

    • 完全沒有 TP
    • 可能原因:硬體指標描述較技術性,與 ESG 報告用語差異大
  2. SASB-TC-SC.pdf (F1=0.057)

    • 半導體指標辨識困難
    • 多個相似指標容易混淆 (TC-SC-110a.1 vs TC-SC-110a.2)

六、改進建議

6.1 短期改進 (可快速實施)

A. IoU 改進 - 針對「太大」問題

策略:動態調整合併範圍
- 根據 GT 分佈統計,限制合併後的最大面積
- 設定每個指標類型的典型 bbox 大小範圍
- 當合併結果超過閾值時,選擇單一最高分 segment

預期效果: 改善 12 個「太大」案例中的部分

B. IoU 改進 - 針對「太小」問題

策略:放寬合併觸發條件
- 降低 HORIZONTAL_SPREAD_THRESHOLD
- 但需要配合面積上限避免過度合併

風險: v65 實驗顯示過度合併會導致 F1 下降

C. Code Mismatch 改進

策略:加強 LLM reranker 的區分能力
- 對相似指標 (如 110a.1 vs 110a.2) 提供更詳細的區分規則
- 在 prompt 中強調指標的細微差異

6.2 中期改進 (需要較多工作)

D. Recall 改進 - 減少 NONE 預測

策略:多階段檢索
1. 降低初始 bi-encoder 閾值,增加候選數量
2. 使用更嚴格的 LLM reranker 進行過濾
3. 對 NONE 預測進行二次確認

預期效果: 改善 30 個漏報案例

E. Precision 改進 - 減少誤報

策略:強化 NONE 判斷邏輯
1. 當所有候選分數都很低時,傾向預測 NONE
2. 建立各指標的典型分數分佈,用於異常檢測

6.3 長期改進 (需要根本性改變)

F. 更好的 Segment 定義

問題:V2 segment 切分過細或過粗
方案:
1. 結合 V4 segment 的表格識別優勢
2. 開發自適應 segment 切分策略
3. 考慮使用 LayoutLM 等版面理解模型

G. 端到端訓練

方案:使用 RAG 系統的端到端訓練
1. Fine-tune bi-encoder 在 ESG-SASB 數據上
2. 訓練專用的 reranker
3. 學習最佳的 bbox 合併策略

七、潛在改進上限估算

假設所有 Code 正確但 IoU 低的案例都能修正:

情境 TP FP FN Precision Recall F1
當前 v64 9 47 67 0.161 0.118 0.1618
修正所有 IoU 低案例 28 28 48 0.500 0.368 0.4553
額外修正 Code mismatch 46 10 30 0.821 0.605 0.6971

結論:

  • IoU 問題是最大瓶頸,解決後 F1 可達 0.45+
  • 加上 Code mismatch 修正,理論上限約 0.70

八、版本演進記錄

版本 Train F1 Test F1 策略 結果
v59 0.1503 0.1176 基準版本 -
v60 失敗 - bbox 水平擴展 破壞邏輯
v61 失敗 - bbox 擴展 破壞邏輯
v62 0.0952 - 無條件合併 過度合併
v63 0.1503 - 智能合併 (>20% page) 未觸發
v64 0.1618 0.1200 選擇性合併 (水平>200px) 最佳
v65 0.1156 - 頁面級搜索 + 低閾值 過度合併
v66 0.1618 - 僅降低 LLM 閾值 無變化
v67 0.0699 - 水平擴展 破壞邏輯

九、結論與下一步

核心發現

  1. IoU 是主要瓶頸 - 19 個案例 Code 正確但 IoU 低
  2. bbox 傾向太大 - 12/19 案例預測區域過大
  3. 合併策略存在 trade-off - 激進合併會損害其他案例
  4. SASB 報告間差異大 - 某些類型表現極差 (TC-HW)

建議優先順序

  1. 🔴 高優先 - 針對特定指標類型的 bbox 大小限制
  2. 🟡 中優先 - Code mismatch 改進 (特別是 .1 vs .2 混淆)
  3. 🟢 低優先 - Segment 切分策略重新設計

預期可達成的 F1

  • 保守估計:0.20-0.25 (修正部分 IoU 問題)
  • 樂觀估計:0.35-0.45 (修正大部分 IoU + 部分 Code 問題)
  • 理論上限:0.65-0.70 (解決所有已識別問題)

報告生成時間:2025-01 基於 v64 版本分析