導讀:產業鏈是一種金融領域NLP知識圖譜和大資料多領域知識的一個綜合應用,是金融科技時代服務、證券稽核、融資以及區域經濟發展以及招商的一種重要工具。本文的主要內容包括:① 理論與知識;② 架構與流程;③ 關鍵方法;④ 應用及示例,會比較偏向宏觀和工程化。
01理論與知識
1. 產業鏈的背景與驅動力
本質上產業鏈系統構建的驅動力,就是金融證券領域的價值發現和風險識別。隨著網際網路+和政務資料開放的發展領域,金融證券領域的資料全面豐富,行業應用也從小資料人工線下慢慢發往數字化發展。
產業鏈代表性的場景有三類:
- 第一類是以交易所或者是證監會為代表的監管應用產品,包括IPO稽核、上市公司監管,債券監管;
- 第二類是以銀行、券商為代表的金融市場服務,包括標的篩選、借貸管理、風控管理;
- 第三類是以地方政府和招商局為代表的區域經濟發展的應用場景,包括產業升級、招商、企業扶持等等。
實際上,這些典型的應用場景與國家防範金融風險、發展實體經濟的政策都是一脈相承的,它的本質就是價值的發現和風險的識別。因此,如果說單個企業的價值和風險是個微觀視角的話,那麼行業或者產業的價值發現和風險的識別,應該是一個更為宏觀或者是說更重要的一個層面。因此,實現產業鏈數字化,實現可閱讀、可查詢、可計算,進而服務於應用場景,是目前比較迫切的一個需求。
2. 產業鏈的起源與發展
人類的起源就是源於群居者之間的分工,馬歇爾曾經提出統一將生產部門的小型工業集中在某個區域互相協作,從而形成了產業。接下來,波特所寫的《競爭優勢》中提出了產業結構和生命週期的理論。隨著全球化金融資本的發展以及國際政治形勢的變化,中國成為了全球為數不多的全產業鏈國家,保障產業鏈供應安全也是近期國家關注的問題之一,因此,產業鏈是近幾年熱議的話題。
3. 產業鏈的行業現狀和建設目標
在金融的監管領域,包括穿透式監管和分行業監管,都是需要對產業和行業進行深入的瞭解,而在二級市場,雖然分行業進行研究和投資已經有著非常成熟的模式,但是這一部分的工作大多還是依賴於人工,由研究員或者專家所完成。因此產業鏈系統的構建已經在證券領域有了一定的發展。
當前的產業鏈產品主要面向二級市場的投顧、投研和風控,面向全市場的比較少。而且主要面向行業分類,或者上下游熱點概念,從行業和公司的維度描述,因此,對於上述三個應用場景支援比較侷限。
基於這些問題,我們提出了對於產業鏈的新的建設目標,應用自然語言處理和軟體工程思想,基於國民經濟行業分類、投入產出表等等,構建一個從產業、行業和企業角度出發,多層次、多維度的產業鏈知識圖譜,為監管、投融資、招商等應用提供較為全面的服務。詳細來說,我們的建設目標可以從三個層次上來理解:
從產業層面上來說,主要需要了解產業鏈完整的檢視、產業鏈的發展、上中下游重點細分行業、核心監管機構等要素;從行業層面來說,需要了解上下游和替代行業的發展情況,以及本行業的規模競爭格局;從企業角度來說,透過可比公司的重點財務資料,結合產業鏈細分行業價格、銷售或者融資情況,瞭解企業的發展前景。
02
架構與流程
依照上一章所提到的建設目標,對產業鏈整體架構進行設計,包括建設路徑、系統架構和自動構建的流程。
1. 建設路徑
與大部分的知識圖譜的構建路徑基本都是一致的,主要分為四個步驟,包括蒐集資料資料、研究並建立框架、自動構建,最後,如果是工業化的話,肯定還需要對產業鏈的資料做人工稽核。
首先,產業鏈資料的主要來源包括上市公司的公告、第三方的研究報告、重點行業的網站的新聞,還有一些行業資料等等;框架主要參考券商研究的模式(實際上也是波特提出的研究模型),包括剛才說的產業、行業、企業三個層次,詳細的框架體系會在下一章進行說明;自動構建的程主要基於NLP的技術,從原始資料中進行抽取和實際的填充;最後透過人工稽核,實現資料和系統的可用性。
這四個步驟需要經過多輪迭代、多次迭代,是一個迴圈的過程,經過這些過程,最終就能夠建成一個比較完善的產業鏈知識圖譜。
2. 系統架構
① 本體設計
產業鏈本體的設計/框架的第一個層級其實就是一個產業,因為單條產業它本身並不是孤立的,它也是和其他的產業交融在一起的,所以我們把它與其它產業一起畫成了一個環形圖。然後產業中會根據國民經濟行業分類、上市公司的主營業務等,結合應用場景,構建一個五到六級的行業分類,也就是說,每個產業下面又有一些行業,再根據細化的行業分類力度,將這些行業以上中下游的形式組織起來。
產業是行業的叢集,每個產業裡面包含了上游中游和下游的行業,是由多個相近、相似或者是產生實際交易的行業所組成的。其中,中間的上中下游的示意圖是從產業出發所畫的,上游行業需要成本佔比較大或者技術含量較高,例如生產資料;中游行業一般是製造研發;下游是銷售服務。最右邊的上中下游示意圖是行業和商業角度,右下角則是單個行業一些要素的描述,這兩塊本體設計比較抽象,後面會有例項幫助理解。
② 計算層和知識層
在計算層,我們會從新聞報道、研報或公告中識別行業上下游公司、銷售資料,並將這些識別的資料進行實體融合,再將結果與相關聯的資料一起儲存到圖資料庫或者搜尋引擎中,那麼這些資料作為分類庫的例項化資料就會一起形成產業鏈制度,最後,針對不同的應用場景,我們提供不同服務。
3. 自動構建
自動構建的流程也分為多個步驟。
- 首先,因為公告研報和行業報告大多數都以PDF形式存在,所以我們需要對這些檔案進行格式轉換和平臺解析,把檔案中不同的元素進行區分;
- 接下來就需要對要素進行分類,把區分出來的元素分到不同的行業要素上去;
- 第三步需要對行業及上下游進行識別。因為每個行業都存在大量不同的說法,這些不同說法實際上就是一個同義詞。
- 因此,第四步就是同義詞識別,我們需要將識別出的行業實體對應到統一標準說法的行業上,同時構建一個詞庫,為了後面進行實際融合做準備;
- 第五步,對行業要素進行結構化;
- 第六步,識別出行業中的典型公司,這一步也是需要對實體進行對齊,包括公司和其它實體,最後將這些資料透過工作系統進行人工稽核,並對資料進行校正,至此就完成了一個迭代過程。
從上述環節我們可以看到涉及了絕大多數的NLP演算法,包括分類、相似度、NER、知識對齊、關係抽取等等。
03關鍵方法
這一章節中會介紹基礎設施,以及自動構建的環節中的關鍵技術。
1. 基礎設施
因為在實際工程中我們使用了很多自然言處理的演算法,因此需要通用的工具來支撐,而基礎設施的主要目的就是為模型任務提供平臺和工具。其中,基礎設施的演算法架構是一個成熟的架構,主要是分三層:
- 第一層是演算法框架層,主要是就是一些常見的深度學習的演算法框架;
- 再往上是工具棧,實際上就是基本NLP處理工具,就是語言模型和文字處理工具棧,具體包括詞法、句法、語義解析,或者OCR,PDF解析這些工具;
- 最上層是一些演算法應用的開發。
演算法的研發,它也需要一個統一的平臺進行管理和排程,這個平臺主要是服務於研發和管理,提供一些抽象的一些通用能力,包括這些語言標註、演算法的框架,剛才我在上一章所說的技術流程都在裡面,然後包括建模工具。最後模型開發完成之後,還需要進行快速的進行部署、測試和釋出,並且要分配環境和資源。
演算法的流程化的管理和自動化的輔助實際上是構建這麼一個快速應用的基礎,能夠讓研發人員專注於模型的開發。機器學習平臺是我們重要的一個基礎設施。
2. 關鍵技術
① 語言模型
在預訓練時代,語言模型基本上是必不可少的,因為金融領域的語言特徵和其他文字會有一些不一樣,比如短句比較多,另外零指代、指代歧義的情況比較多。因此,為了適應各種應用的需要,我們面向新聞、公眾號、研報這三個典型的文字使用word2vec和bert進行了語言模型預訓練,為下游應用建立提供一些支撐。
② 詞法、句法分析
詞法分析相對來說比較簡單,在面向領域的文字分析中,預訓練還是非常必要的,實際中就直接對文字進行標註,然後再進行序列訓練,基本就完成了,下圖中是我們做的一些比較早的評測;
如果你需要做句法分析,使用開源的句法不是特別好用,肯定是需要一個專用的句法模型的。因為句法分析的分詞粒度和詞法裡的分詞力度和標準都不一樣。其次,證券領域有很多複雜的句式,如果使用通用的社會文字的句法,效果不會特別好。要解決這些問題,所以我們需要構建了一個領域句法分析。
當我們有了領域詞法和句法分析,就能夠統一用起來,後面就不用去對映,簡單高效。
③ 自動構建技術-篇章分析
第一步就是對文字進行處理,大多數的資料都是以PDF的形式存在,PDF裡面主要是包括文字、表格和圖片,文字又包括目錄、章節和段落。解析的目標就是把這些檔案中不同的元素給識別出來,首先就需要進行格式的轉換。關於PDF的格式解析有很多開源和商業工具,這就不多說了。然後再對我們剛才說的這一些目標進行識別。針對文字,可以透過PDF的stream進行解析;難度更大的圖或者表結構,可以透過一些複雜的規則,或者是可以一些圖片處理的方法,比如目標檢測來實現;另外,針對文字中的目標章節和段落,可以透過規則或者是分類的方法進行處理。這樣的話就能夠形成從目錄章節和段落表格,到句子和欄位這麼一個粗粒度到細力度的處理的流程,最終實現整個文字的解析。
④ 自動構建技術-行業要素分類
接下來進行第二步產業要素的分類。將上一步識別出的文字以段落為單位,分別歸到不同的行業類別裡,本質上這是一個文字分類問題(左邊的圖只是示例,簡單的列了六類,實際上整個行業數可能有十多類)。
文字分類問題一般有兩種方法:一種基於特徵工程的分類,另外一種就是基於端到端的分類方法。針對這兩種方法,我們也都做了一些嘗試,目前來看,如果文字本身區分的邊界比較模糊模糊的話,直接使用端到端進行分類可能不太容易,當然可以加一些規則。我們實際上使用基於特徵工程的分類方法,首先運用上面提到的工具棧中的分詞 公里進行NER識別,再進行特徵的構建,最後再過分類器。對於行業要素的分類,構造的一般特徵可以包括行業名稱、指示詞、特徵詞,可能再加上句法的特徵,識別準確率就會比較高。
⑤ 自動構建技術-行業和上下游識別
下一步就是行業和上下游的識別,這一步和下面的要素結構化,都屬於關係識別,使用的同一種方法。模型借鑑了multi-head selection的思想,這是一種很早就提出的方法,最早的時候是使用RNN去做的,但是到現在我們可以做一些變化,可以用bert去做這個事情。除此之外,模型中的encode和decode層都是可以變化的,也可以用不同的網路去進行拼接,然後去做調優和對比。
這個模型實際上是應該是比較通用的一個模型,具體的過程:經過實體識別,模型decode的出來的特徵就作為分類代表的embedding輸入到下一層的關係分類器中,接著再透過一個softmax層,然後實現multi-head的selection。
下圖是行業和上下游識別的一個例項,對錶格中的第一行的句子進行識別的話,得到行業是“聚酯化纖”,它是紡織、服裝、汽車行業的上游。這一類的句子一般是從年報和公告中獲取的,當包含這類資訊的句子多了後,行業以及上下游關係基本上就可以零散地拼接出來,直至覆蓋所有的國民資訊行業分類體系。
行業識別中會有一些難點,例如針對紡織業的稱呼,可能是“紡織業”,也有可能是“紡織”、“服裝業”,直接抽取出別稱的話,我們就需要將它們對應回“紡織業”上,這一類的問題需要後續對實體抽取結果做實體對齊,會在後面進行詳細說明。
⑥ 自動構建技術-要素結構化
接下來,針對上一步識別的結果,我們需要做要素的結構化,下圖是要素結構化的例項。我們以市場規模作為例子,因為市場規模實際上是產業鏈支付裡面一個比較重要的要素,市場規模的大小可以看出行業或企業在市場中是否有發展前景。對於例句,我們可以從中識別並結構化體外診斷這個行業2013年、2015年和2018年的市場規模以及對應的金額,接著我們就可以利用這個結構化資訊,在後續發掘行業或者企業的時候,去判斷識別它的發展空間。
⑦ 自動構建技術-行業同義詞識別
上面有提到需要進行實體對齊,那麼在對齊之前,一般需要構成一個詞庫。當然也可以使用相似度,但是並不是唯一、也可能不是最好的解決方法。在工業場景下,詞庫的方法雖然會比較費勁,但是也通常會更有效,因此,針對這個問題,構建一個行業的同義詞庫還是非常有必要的。
目前我們所使用的是基於BPE,加上領域語言模型的模式。BPE主要是將平臺出現的字符合併成序列或詞,這種方法很好地解決了傳統字典或者分詞模型中未登入詞的問題,但是它也會引入一些新的問題,這個需要再做一些任務,比如規則或者人工去做一些校對來進行解決。除此之外,使用BPE模型的另一個優點就是能夠融入語境知識,這樣的話們就能夠獲取到同義詞。當然必要的時候需要最後加上人工篩選,透過這個方法是能夠得到一個比較好的同義詞庫的。
另外就是將產業詞向量化之後,基於領域語言模型,我們進行一個相似度計算選擇,計算完之後,我們可以透過一些閾值再去判斷結果,能找到相近的一些行業。
下圖是一些例項,比如說防腐塗料行業,它可能會有代表性產品,比如卷材或者隔熱塗料,聚氨酯塗料,這些代表性產品可以作為相近或者是相同的詞語入到同義詞庫。這裡說的相近和相同兩個含義是不一樣的,相同是指兩個詞語表示的意思相同,本身就是同義詞,例如手機遊戲和移動遊戲。但如果是相近的話,可能兩個詞語代表的意思不一樣,比如說防腐和卷材可能不同,但是它能夠同時作為中游或者是原材料級別不同的相似行業,一方面可以作為這個行業的同義詞,另外一方面還可以作為它的相近含義,去擴充我們的整個行業的詞庫。
⑧ 自動構建技術-典型公司識別
得到同義詞庫之後,我們就在下一步就去做典型的公司識別,因為行業裡面必須得有公司,最後應用的話,是需要落實到產業,行業和企業三個層次。
找到行業中的典型公司,實際上無論對於行業研究者或者是模型來說,都是一個比較大的挑戰,主要是因為相關資料都零散地分佈在各處。
比如說產品資訊可能在出現在行業網站、電商網站,或者公告研報中。例如一個線上銷售型的企業(例阿里巴巴或1688網站),它會按照某些產品或行業對公司進行分類展示,這個時候就可以去從網站上透過人工或透過其它方式去獲取資料,但是同時,在公告或者研報裡面也會有產品資訊,此時就可以透過實體識別去把它給找出來。
第二類是公司資訊,包括公司介紹和公司生產銷售的產品,剛才是從產品維度去找公司,現在又是從公司維度去找產品,這些可以透過公司簡介、公司官網,或者是新聞中的宣傳稿,來進行獲取。
然後第三類就是一些工商資訊,比如說軟著商標,可能是某些行業的軟著,也可能軟著本身就可以代表某個行業,或者說包括在它的主營業務中。
這樣的話,有了上述三類資訊,把它們湊在一起,然後透過實體和行業的識別,就可以找到所屬這個行業的典型企業。
⑨ 自動構建技術-實體融合
前面我們提取的資訊,最終需要經過實體融合,因為前面是識別這些東西,可能它並不是一個標準化的名稱,也就是說沒辦法和我們構造的實體庫進行對映。
實體融合主要是實體對齊,實體包括人,企業和行業,因為名稱都比較短,難度會比較大,有一些方法,比如說之前提及的構建行業詞庫,如果使用這種方法,就使用識別出的實體來去詞庫中搜索,直接對應到某個行業上。除此之外,可以用圖計算中的最小連通圖去做人名或企業名稱的識別,還可以透過搜尋引擎或相似度去做計算。實踐 上,我們可以把幾個方法拼在一起,就能夠大體上解決實體對齊的問題。當然作為上線的處理方案最後肯定還是會透過人工去做稽核。
⑩ 自動構建技術-文字批處理
所有自動構建的流程,從資料進入,到整體產業、行業、企業資料的輸出,需要使用批處理系統串起來。批處理系統透過分散式訊息佇列的模式,當資料進入系統,就會自動進入訊息佇列相應的主題,接著我們將訊息的消費與模型工具進行解耦,那麼模型就部署在機器學習平臺上,非模型的一些業務處理邏輯就是用容器進行部署,確保高可用,最後再加強人工,整個系統基本上就比較完善了,再加上實際中需要不停進行生產以及迭代,理論上是可以構建一個比較完善的產業鏈系統的。
上述就是我們最終形成的這麼一個系統,我們最後把市場資料和工程資料都以產業鏈為核心進行組織,就形成了一個規模較大的資料庫,最後如果再加上應用就可以面向場景進行服務了。
04示例和應用
1. 產業視覺化
下圖將產業鏈分成資源、製造、消費和知識四個大類別。
下圖給了行業層面的新能源汽車的產業鏈構造,也就是上下游分佈,最上面深藍色的部分是上游,然後中間黃色的是中游,下面淺藍色的是下游,都是行業集合的形式。
下面我們用鋰離子電池的正負極材料生產行業來進行展示,可以從下圖看出,它的上游是一些生產需要材料,下游是它的一些應用。
這個是一個剛才我們說的鋰離子電池正極材料的行業畫素,包括節點介紹,典型公司,行業要素(智慧行業透視),還有財務指標和產品指標。
2. IPO稽核
接下來會介紹IPO稽核的兩個應用場景。
第一個是大宗商品原材料的採購價格對比。我們可以拿自動抽取的發行人招股書出所披露的大宗商品採購價格,去和行業價格資料進行對比,對存在重大差異的情況進行提示。比如有差異,但是它價格比市場價格稍微低一點,這種情況是否合理,就需要稽核人員去進行判斷。
第二個應用場景是對上市公司分產品毛利率進行比對。我們可以將上市公司的收入專案對齊到行業分類體系中,然後拿這個產品資料,和其他的同行業的公司進行對比,或是跟行業的均值進行對比。毛利率是一個可比物件,因為毛利率是最具綜合性的一個財務指標,對比同行業可比公司,指標與行業均值是否一致,太高或者太低都需要發行人解釋合理性。
3. 投融資
股權投資中的應用也有兩個例子,一個是篩選企業,另一個是篩選行業,一般是先篩選行業、再篩選企業。
企業篩選以工業機器人為例,我們可以透過企業規模或經營狀況進行排序,優先看路演、融資或高新技術企業,因為這些企業可能本來就已經募資了,未來它就離IPO就比較近。這種企業可能是PE比較喜歡。或者如果是天使輪或者是A輪,可能是VC比較喜歡。另外我們可以根據企業所在的行業與行業的典型公司進行多維度對比,從而篩選投資標的。下圖我們可以看出,在後面的關鍵字裡面,它有很多子行業,這個行業按照一定的排序,可以給使用者提供一些參考。
行業篩選以POCT和工業機器人為例(其中POCT為實時檢測,包括唾液檢測、血脂檢測,或其它實時出結果的一個行業),篩選並對比行業規模。我們將行業規模提取並結構化成下面的表格,從表中可以看出,我們工業機器人2023年的行業規模非常大,有156億,但是如果對比同時期全球行業規模的335億和全國銷量26萬臺,就能知道這個行業是不是你想要的行業,以及這個行業未來的空間是怎麼樣的。然後我們可以看看POCT行業,到2026年,我國的生產規模才15億美金,但如果對比全球同時期的240億美金,就可以看出也許這個行業的發展空間可能非常大,也許這就是一個比較新興的行業,比較適合去投資。
05問答環節
Q:請問bert預訓練模型表現的已經很好了,為什麼仍然保留了word2vec?
A:BERT在一些任務上,例如相似度計算時,可能會超出一些字面意思,達到語義的級別,但這個時候你就會發現雖然它的召回率很高,但準確率會有一些問題。這樣的話實際上我們就需要從傳統的word2vec對文字從字面意思上做校正。但是也不是非此即彼,實際上可以利用word2vec從某些場景上做一些這種互相的補充。
因為我們主要是以實際效果為主,哪種方法的效果好,我們就用哪種方法,而不是說現在某個模型比較流行,比如端到端模式發展特別好,就用這個。
Q:請問行業是否經過了預定義?
A:實際上在我們在本體構建的時候,是做了一些行業預定義的,但是我們在預定義完成後,經過行業識別以及構建行業的同義詞,實際上又對行業資訊進行了一些補充。因此,預定義的分量是比較大的,但是你用一些技術方法對它進行補充,然後專家再去稽核這個方法,可能能夠節省一些人力,結果就是使用這種“兩頭湊”的方式去把行業資訊補充完善。
Q:請問行業的文字分類任務有什麼評價指標嗎?一般的有監督訓練是需要自己提前打標的單標籤分類訓練,但典型公司識別中某些大公司的經營範圍廣泛,是否採用了多標籤分類?
A:對於行業分類,評測主要是透過人工,因為沒有一個標準或者語料庫,只能是人工去做,這也是一種通用的業界的方法。這個過程會經過多輪迭代,先做一個小庫,可能一開始精度不是特別好,需要人工矯正一下,然後再把矯正後的語料放到總語料裡面去,就像滾雪球一樣,這樣的話就慢慢能得到一個比較高準確率的一個語料庫,最後就能夠穩定下來。
然後在公司行業的識別上,因為一個公司肯定是屬於多個行業的,之前有介紹系統通過了各種方法去做公司以及行業的對映(在自動構建技術章節的典型公司識別中),那些公司因為主營業務多,特別是主機板的上市公司,可能屬於特別多的行業,甚至一些非上市公司,它的一些資訊都存在不同的文本里面,是需要去做多標籤的分類的。好處就是因為我們有不同文字,資料量比較大,那麼它的分類結果實際上是可以互相印證的,這樣的話,即使你單純在某一個語料上面的分類結果不是特別好,你也可以透過其他的方法去進行校驗或者補充,最終將結果合併起來,效果也還是不錯的。
今天的分享就到這裡,謝謝大家。
分享嘉賓:
分享嘉賓:毛瑞彬 深圳證券 資料中心副總監
編輯整理:謝芝玲 米哈遊 平臺組
出品平臺:DataFunSummit