Paper 006 |與其刪字,不如長字:用 word2vec 把 1,667 個金融情緒詞擴充成 13,534 個

Paper 006 |與其刪字,不如長字:用 word2vec 把 1,667 個金融情緒詞擴充成 13,534 個

閱讀 EMNLP 2014 論文 Financial Keyword Expansion via Continuous Word Vector Representations。上一篇 ai-091 證明只留 1,546 個金融情緒詞就足夠,這篇則反過來問:既有詞典本身就不完整,能不能用 word2vec 自動補齊?研究以 CBOW 從 10-K 的 MD&A 學詞向量,把原始情緒詞典擴充成 9,282(EXP-SIM)與 13,534 個詞(EXP-SYN),並首次把 POS 詞性標記加進 CBOW 訓練。結果顯示擴充後的詞典在波動率回歸與風險排序上都穩定優於原始詞典與隨機擴充。


上一篇 ai-091 的結論很反直覺:把 Form 10-K 的 MD&A 從數萬個詞刪到只剩 1,546 個金融情緒詞,模型預測未來風險的表現不減反增。

但那個結論其實藏了一個前提:

我們預先給定的那份情緒詞典,本身就是完整的嗎?

Loughran–McDonald 詞典是人工整理的。人工整理的東西,一定會漏。當市場出現新的風險用語,詞典不更新,模型就永遠看不到。2013 年的做法是「相信詞典、丟掉雜訊」;那 2014 年能不能反過來,用資料自己把詞典長大

同一批作者(Ming-Feng Tsai、Chuan-Ju Wang)在隔年的 EMNLP 2014 給出了答案:用 word2vec 的 CBOW 模型,從財報文字中學出每個詞的向量,再以原始情緒詞為種子,把語意相近的詞自動找回來。

  • 原始種子:1,667 個 Stemmed 金融情緒詞。
  • 簡單擴充(EXP-SIM):擴充成 9,282 個詞。
  • 加入詞性的擴充(EXP-SYN):擴充成 13,534 個詞。

而且這篇論文還做了一件當年少見的事:把 POS 詞性標記直接加進詞向量訓練。作者自稱這是第一個在 CBOW 訓練前替詞彙加上 Part-Of-Speech 標記的工作。


參考資料與研究團隊

這篇與 ai-091(IJCNLP 2013)是同一條研究線的前後兩步。2013 年先證明「固定詞典就夠用」,2014 年再問「詞典能不能自己長大」。


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

金融文本分析最依賴的資源,就是一份好的情緒詞典(Sentiment Lexicon)。

但詞典有兩個先天限制:

  1. 它是人工整理的,不可能窮盡所有金融語彙。
  2. 它是靜態的,跟不上市場出現的新用語。

作者的核心主張是:與其停在固定詞典,不如把詞典當成「種子」,用資料把語意相近的詞自動長出來。問題因此變成一個關鍵字擴充(Keyword Expansion)任務:

給定原始金融情緒詞,能否從財報語料中,自動找出與它們語意相近、對風險預測同樣有用的新詞?

而驗證方式,直接沿用 ai-091 的兩個任務:波動率回歸(Regression)與公司風險排序(Ranking)。如果擴充後的詞典能讓這兩個任務變好,就證明擴充有效。


二、方法核心:用 CBOW 學詞向量

論文使用 word2vec 的 CBOW(Continuous Bag-of-Words)模型(Mikolov et al., 2013)。

CBOW 的概念是:用一個詞的上下文(前後文字)去預測這個詞。訓練完成後,每個詞都會得到一個連續的實數向量。語意或用法相近的詞,向量方向會比較接近。

擴充流程可以拆成三步:

  1. 用一批財報當訓練語料,學出每個詞的詞向量。
  2. 把原始情緒詞典中的每個詞當成種子,計算它與其他詞的 Cosine 距離,取最相近的 Top-N 個詞。
  3. 把所有種子的 Top-N 詞收集起來,構成擴充後的關鍵字清單。

作者把每個種子取 Top-20 相近詞來擴充。

2.1 種子詞典:Loughran–McDonald 六類

種子來自 ai-091 用過的同一份金融專用詞典,共六類:

詞彙類別定義
Fin-Neg負面商業用語
Fin-Pos正面商業用語
Fin-Unc不確定性
Fin-Lit法律爭議傾向
MW-Strong強語氣 Modal Words
MW-Weak弱語氣 Modal Words

原始共 3,911 個情緒詞,經 Porter Stemmer 處理後,本文以 1,667 個 Stemmed 詞作為擴充種子。

補充:ai-091 去除跨類別重複後回報的是 1,546 個 unique 詞;本文回報的是 1,667 個 Stemmed 種子。兩者差異來自去重與前處理細節,原始總數 3,911 則一致。


三、關鍵貢獻:把詞性 POS 加進訓練

這篇論文最有意思的設計,是它注意到一件事:

同一個詞,在不同詞性下,語意相近的詞完全不一樣。

作者以 default 為例。當 default 被視為名詞(NN)與被視為形容詞(JJ)時,各自的 Top-5 相近詞如下:

default 當名詞 (NN) 的相近詞default 當形容詞 (JJ) 的相近詞
unwaiv、uncur、trigger、unmaturnonconform、subprim、chattel、foreclos、unguarante

兩份清單完全沒有重疊。

這代表:如果訓練時不區分詞性,模型會把 default 的所有用法混成同一個向量,稀釋掉語意訊號。於是作者提出一個直接的做法——訓練前就替每個詞黏上 POS 標記(例如 default_VB),再丟進 CBOW。

為了避免詞性標記過度細碎,作者把 Penn Treebank 的細標記合併成幾個大類:

合併後標記合併前包含的標記
JJJJ、JJR、JJS
NNNN、NNS、NNP、NNPS
PRPPRP、PRP$
RBRB、RBR、RBS
VBVB、VBD、VBG、VBN、VBP、VBZ
WPWP、WP$

最後只取四大詞性(JJ、NN、VB、RB)的種子詞去擴充。這就是 EXP-SYN 與 EXP-SIM 的差別:

擴充方式是否加入詞性種子擴充後詞數
EXP-SIM1,667 個 Stemmed 情緒詞9,282
EXP-SYN四大詞性的情緒詞13,534

四、擴充出來的詞長什麼樣子?

以 default 為種子,模型找回的 Top 相近詞(Stemmed)包含:

相近詞(部分)Cosine 距離
uncur(uncured,未補正)0.5695
indentur(契約)0.5655
waiv(豁免)0.5599
trigger(觸發)0.5400
cure(補正)0.5253
nonpay(未付款)0.5104

其他排進清單的還有 forbear、breach、insolv、noncompli、prepay 等詞,全都指向違約、債務寬限、契約違反、無力償債等金融概念。

作者進一步回到原文驗證。排名第一的擴充詞 uncur(uncured)來自 Investment Technology Group 1997 年的 10-K,原文出現在「an uncured breach」「an uncured default」這類語境中。這說明模型找回的 uncur,確實和種子詞 default 在金融語境下高度相關——不是靠人工加進去,而是資料自己長出來的。

這正是擴充的價值:它能補上詞典漏掉、但語意相近的詞。


五、實驗設定

5.1 語料與風險定義

  • 語料:Kogan 等人(2009)的 10-K Corpus,只取 Section 7(MD&A)。
  • 詞向量訓練:以 MD&A 文字餵給 word2vec 學詞向量。
  • 風險代理:財報公布後 12 個月的股價報酬波動率 v^+(12),股價取自 CRSP US Stocks Database。
  • 排序任務:依 ai-091 的做法,把每年公司切成 5 個風險等級。
  • 文字特徵:Bag-of-Words,計算 TF、TFIDF、LOG1P。

波動率沿用報酬標準差的定義:

v[tn,t]=i=tnt(RiRˉ)2nv_{[t-n,\,t]} = \sqrt{\sum_{i=t-n}^{t} \frac{(R_i - \bar{R})^2}{n}}

其中單期報酬 R_t = S_t / S_{t-1} - 1。這部分與 ai-091 一致,不再展開。

5.2 比較的四種詞表

詞表意義
SEN只用原始金融情緒詞典(等同 ai-091 的 SEN,作為對照)
EXP-RAN隨機擴充:詞數與 EXP-SYN 相同,取 20 次隨機清單平均
EXP-SIMword2vec 簡單擴充(9,282 詞)
EXP-SYNword2vec 加入詞性的擴充(13,534 詞)

EXP-RAN 是關鍵的對照組。它把詞數灌到和 EXP-SYN 一樣多,但多出來的詞是隨機挑的。這是為了回答一個尖銳的質疑:

擴充後變好,會不會只是因為「詞變多」,而不是因為「詞挑得好」?

5.3 時間切分

沿用 Rolling Window:前五年訓練,測下一年。

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

六、回歸結果:預測未來波動率

回歸任務用 SVR,以 LOG1P 特徵預測公布後 12 個月的波動率,指標為 Mean Squared Error(MSE),越低越好。

測試年度SENEXP-RANEXP-SIMEXP-SYN
20010.25260.23600.21950.2148
20020.28580.26490.24330.2381
20030.26670.25120.23200.2350
20040.23450.21400.19020.1872
20050.22410.20140.17540.1682
20060.22560.20720.18890.1825

每一年的排序都很一致:SEN 最差 → EXP-RAN 次之 → EXP-SIM 與 EXP-SYN 最好

  • 擴充(EXP-SIM/EXP-SYN)在六個年度全部優於原始詞典 SEN。
  • 兩種擴充也全部優於隨機擴充 EXP-RAN——證明變好不是因為詞變多,而是因為詞挑得準。
  • 加入詞性的 EXP-SYN 在六年中有五年最佳,只有 2003 年輸給 EXP-SIM。

七、排序結果:比較哪家公司更危險

排序任務用 Ranking SVM,以 TFIDF 特徵學公司間的相對風險順序。若模型認為公司 A 比公司 B 更危險,就給 A 較高分數。指標為 Kendall's Tau 與 Spearman's Rho,越高越好。

7.1 Kendall's Tau

測試年度SENEXP-RANEXP-SIMEXP-SYN
20010.43840.45740.49520.5049
20020.44210.47060.48810.4944
20030.44140.47060.51050.5006
20040.40510.45510.47500.4961
20050.38560.44820.51260.5294
20060.37840.43850.45880.4867

7.2 Spearman's Rho

測試年度SENEXP-RANEXP-SIMEXP-SYN
20010.47010.48890.52660.5375
20020.47190.50070.51870.5256
20030.47160.50150.54180.5318
20040.43350.48420.50430.5255
20050.41170.47570.54180.5579
20060.40290.46410.48470.5129

兩個指標的結論一致,也和回歸完全對稱:

  • 擴充全面優於原始詞典 SEN,幅度比回歸更明顯(SEN 在後段年度掉到 0.38 附近,擴充後穩定在 0.48 以上)。
  • 擴充全面優於隨機擴充 EXP-RAN。
  • EXP-SYN 六年中五年最佳,唯一例外同樣是 2003 年輸給 EXP-SIM。

作者並註明:EXP-SYN 相對於隨機擴充的差距,統計上全部顯著(p 小於 0.05)。


八、把整條流程畫成一張圖

Loading Diagram...

九、這篇與 ai-091 的關係

放在一起看,2013 與 2014 兩篇是一組互補的實驗:

比較面向2013:ai-091 情緒分析2014:ai-092 關鍵字擴充
核心操作縮小——只留 1,546 個情緒詞放大——擴充成 9,282/13,534 詞
主張拿掉雜訊,固定詞典就夠用詞典不完整,用資料補齊更好
技術Bag-of-Words + 線性 SVMword2vec CBOW + POS + 線性 SVM
對照組ORG(完整原文)EXP-RAN(隨機擴充)
結論SEN 與完整原文表現相當擴充穩定優於原始詞典與隨機擴充

兩篇看似方向相反,其實談的是同一件事:重點不是詞的數量,而是詞的品質。 2013 年靠人工詞典濾掉雜訊;2014 年靠詞向量找回被漏掉的好詞。隨機擴充(EXP-RAN)當對照組,就是為了把「數量」與「品質」這兩個變因分開。


十、研究限制

以下為筆者閱讀後的整理,部分為原文明述、部分為個人判讀。

10.1 仍是 Bag-of-Words

擴充改善的是「詞表」,模型本身還是 Bag-of-Words,一樣不理解語序、否定與條件句。uncured default 與 default 被視為相近,但「default is unlikely」與「default is likely」在特徵上仍難以區分。

10.2 擴充可能引入雜訊

Top-20 相近詞不保證每個都與風險相關。擴充清單從 1,667 膨脹到 13,534,代表也可能混入語意接近但風險無關的詞;論文以整體績效證明淨效果為正,但未逐詞檢驗雜訊比例。

10.3 只報告部分特徵組合

受限於篇幅,論文只呈現回歸的 LOG1P 與排序的 TFIDF 結果,並聲稱其餘特徵(TF、TFIDF、LOG1P)表現一致,但完整數據未公開。

10.4 詞向量與詞典時代較早

使用的是 2013 年的原始 word2vec 與 Loughran–McDonald 詞典,語料為 1996–2006 年的 10-K。以今天的 Contextual Embedding(如 BERT)來看,靜態詞向量無法區分一詞多義的細緻語境。

10.5 波動率不分漲跌

沿用 ai-091 的 Risk Proxy,標準差把大漲與大跌都當高風險,對只關心下行風險的投資人並不完整。


十一、讀後啟發:詞典是活的

ai-091 教我們做減法——把雜訊拿掉。這篇 ai-092 補上另一半:該留的詞,也可能一開始就不在詞典裡。

放到現在做 Financial RAG 或關鍵字系統,這個思路依然成立:

  1. 別把人工詞典當成天花板,它只是種子。
  2. 用領域語料學出的向量,把語意相近的詞自動補進來。
  3. 一定要放隨機擴充這種對照組,才知道改善是來自「挑得準」還是「單純變多」。
  4. 若能區分詞性或語境(今天可用 Embedding/LLM),擴充品質還能再往上。

word2vec 在 2014 年做到的事,本質是一個「自動長大的詞典」。這個概念到了 Embedding 與向量檢索的時代,只是換了更強的工具,問題並沒有改變。


十二、總結

  • 論文用 word2vec 的 CBOW 模型,從 10-K 的 MD&A 學詞向量,把金融情緒詞典自動擴充。
  • 原始 1,667 個 Stemmed 種子,擴充成 EXP-SIM 的 9,282 詞與 EXP-SYN 的 13,534 詞。
  • 首次把 POS 詞性標記加進 CBOW 訓練;default 當名詞與形容詞的相近詞完全不重疊,證明詞性確實有差。
  • 回歸(MSE)與排序(Kendall's Tau、Spearman's Rho)三個指標、六個年度,擴充後的詞表都穩定優於原始詞典 SEN。
  • 兩種擴充也都優於詞數相同的隨機擴充 EXP-RAN,代表改善來自品質而非數量。
  • 加入詞性的 EXP-SYN 多數年度最佳,且相對隨機基準統計顯著(p 小於 0.05)。

一句話收束這篇與上一篇:

金融 AI 的關鍵,從來不是「更多字」或「更少字」,而是「更對的字」。


參考資料

  1. Ming-Feng Tsai and Chuan-Ju Wang. Financial Keyword Expansion via Continuous Word Vector Representations. EMNLP 2014, pages 1453–1458.
  2. Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. 2013.
  3. Tim Loughran and Bill McDonald. When Is a Liability Not a Liability? Textual Analysis, Dictionaries, and 10-Ks. The Journal of Finance, 2011.
  4. Shimon Kogan et al. Predicting Risk from Financial Reports with Regression. NAACL 2009.
  5. Ming-Feng Tsai and Chuan-Ju Wang. Risk Ranking from Financial Reports. ECIR 2013(見本系列 ai-091).

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