專訪 | 文因互聯:從「金融數據」到「金融知識」
08-12
專訪 | 文因互聯:從「金融數據」到「金融知識」
鄭錦光提到,文因的資料庫里,已經提取了超過一萬七千條上市公司信息、超過三十七萬多條高管信息以及超過四萬條業務與產品描述。還有成對、成組出現的信息變動分析問題:從海量的文本里,找出分析師可能關心的三百餘個財務指標是否出現變動、變動趨勢以及變動原因。
推薦閱讀:
來自專欄文因互聯11 人贊了文章
作者 Synced
機器之心原創作者:邱陸陸存儲了一份財務報表的計算機存下了一條「數據」,而持有這份財務報表的分析師擁有了一份「信息」。其間的區別是,分析師可以通過閱讀財務報表得到相關的「知識」並依此作出投資決策。
存儲了三萬份財務報表的計算機同樣存下了三萬條「數據」,而持有三萬份財務報表的分析師卻不再擁有三萬份「信息」。原因十分簡單:計算機的內存是線性的,人的處理分析能力卻不是——即使有三萬份報表擺在我的眼前,我也只能眼睜睜看著其中的大部分停留在「數據」的狀態無能為力。除非……計算機可以幫助我嗎?哪怕我們並不說同一種語言,計算機並不能「理解」人類所謂的語義是什麼。只要它把數據按照一定規則、以一種人類能理解的方式進行組織,我們是否也可以從三萬份「數據」里獲得等量的「信息」與「知識」?
這就是文因互聯希望完成的工作:對紛繁複雜的數據進行處理,歸納總結出金融知識和邏輯,輔助解決各種金融場景下的問題。承擔這樣的轉換工作的,是文因研發數百個能力模塊。有從非結構化數據提取結構化信息點的模塊,能夠通過自然語言理解技術把 pdf、word 格式的報告、研報、新聞,轉換結構化信息;也有利用知識圖譜技術對信息進行融合、歸納與演繹的模塊;也有利用自然語言生成與摘要技術轉換信息形式的模塊。如何把用戶的需求拆解成演算法可解決的問題?又用什麼樣的方法解決它們?其中會遇到哪些困難?文因互聯的首席科學家鄭錦光博士以及主任科學家馬建強,向機器之心詳細地介紹了這一過程。從「機器自然語言」與「人類自然語言」到機器和人都能夠理解的「知識圖譜」
文因的知識圖譜生成技術,完成的是從自然語言的報告到結構化數據,再從結構化數據生成知識圖譜的工作。其中既需要處理大段的人類自然語言描述,也需要對大量的描述視覺元素的「機器自然語言」進行提取。從文本到結構化數據的能力模塊進行的是多種常見的自然語言處理(NLP)任務。這些任務包括單獨的信息點抽取問題,關注報告中包含的公司基本信息,例如公司名稱、高管名字、行業描述等。財務報告的複雜性除了體現在多樣的人類自然語言表達上,也體現在展示形式的多樣上——財務報告從來不是純文本,其中還包含著大量用「機器自然語言」表示的圖表,而這一類問題可以與計算機視覺問題做類比。
當計算機「看著」一張貓的圖像時,它看不到貓這個概念,而只是看著一個龐大的、充滿數字的矩陣。因此計算機視覺任務就是彌補「貓這個概念」與「貓所對應的龐大矩陣」之間的語義鴻溝。這個任務的難點在於,一些對圖像非常微小的調整,就能給矩陣帶來巨大的改變:比如,如果我們把貓的圖像整體向左平移一個像素,這個對人類來說細小到肉眼無法識別的變化,對機器來說是天翻地覆的:矩陣里所有的數值都改變了,但是它仍然代表同一隻貓?類似地,pdf 文檔表示的只是字元的位置信息,並沒有字元相互之間的布局信息。例如當計算機「看著」一份 pdf 格式的報表時,它眼中的「表格」和人眼中的完全不同。在報告的閱讀者眼裡毫無區別的兩條表格里的橫線,可能是由完全不同的機器語言「翻譯」而成的。一條可能是「把這個含有橫線的小圖片平鋪 10 次」,另一條可能是「用黑色佔滿從坐標 1 到坐標 2 的空間」,這樣的表達還可能有幾百種。文因開發了一個專門的能力模塊來解決表格提取問題,這個模塊能夠識別文檔中幾百種用來表達表格的「機器自然語言」,從視覺角度還原文檔的篇章結構與上下文信息,最終生成統一的結構化數據。生成結構化數據後,通過對不同文本中描述的實體、關係與指標進行對齊,就可以構建相應的知識圖譜。而實體識別、關係發現與指標對齊等一直是自然語言處理領域中獲得較多關注的問題:比如如何判斷 A 公司的董事長「王石」和 B 公司的股東「王石」是否為同一個人?這需要對其簡歷與相關信息做深入分析與比對。又比如財務數據中「其他流動資產」和「流動資產其他項目」、「歸屬於母公司股東的凈利潤」和「歸屬於上市公司所有者的凈利潤」都是表達方式不同的同一個指標。人工智慧領域的黑貓和白貓
在機器學習的領域裡,解決不同問題的思路常常是相同的,然而解決同一個問題的路徑又是多樣的,究竟哪一種模型最合適,是一個因任務類型而異、因數據量而異、也因需求的精度與效率而異的問題。在文因的系統里,我們經常能看到同樣一個任務在不同的場景下採用不同的模型情況,「黑貓白貓,抓到老鼠就是好貓。」比如說同樣是關係抽取,採用的方法可能是基於統計學習的,也可能是基於規則的,甚至還可能是二者結合的。在冷啟動階段,基於規則的方法「發現」了眾多實體之間的關係類型,並且為每個關係類型積累了大量實例。然後機器學習的方法把不同實例之中暗含的抽象關係學習出來,再投入更多的數據之中。最後,在成熟階段,規則系統和機器學習系統相互配合,相輔相成地共同完成關係抽取任務。為什麼有了大量數據之後,仍然要結合基於規則的系統呢?馬建強是這樣解釋這個問題的,「基於規則的系統雖然因為缺少衡量標準而在學界較少被提起,但在工業界卻有廣泛的應用。它像是一個小而細密的篩子,雖然能擋住的面積很小而漏掉的很多,但能夠確通過的東西一般都是想要的(較高精確率,較低召回率)。相比之下,基於學習的系統更像一張面積大但網眼也更粗的漁網,篩選的範圍很大,但撈上來的難免有雜物(較低精確率,較高召回率)。所以業界喜歡將二者結合起來,以達到最佳的效果。」「每一個問題我們都嘗試了許多種模型。」鄭錦光表示,「有的方法可能適用於通用數據集,而另外一些方法可能更貼合領域專業數據集。我們有一整套數據收集和校驗的體系,積累了大量數據,然後在自己的數據集上嘗試了多種多樣的方法,以求找到效果最好的那一種。比如在命名實體識別問題上效果最好的是 LSTM + CRF 方法。而在實體消歧上,我們用到了我在博士階段的研究成果:基於信息熵和語義相似度的消歧。」
這裡提到的實體消歧,又是一個結合了多種方法以獲得更好效果的例子。信息熵是對於信息量的一種量化方式,例如想要確定一個人的身份,名字提供了一定的信息量,但是因為重名的存在,無法確定其唯一性。身份證號的信息量就非常高,因為它具有唯一性,但是不容易獲得。在財務報表的例子里,一位高級管理人員的名字只提供了有限的信息,但是財務報表裡不只有姓名信息,如果把比如「名字+出生日期」或者「名字+工作經歷」這樣不同的信息進行累積和疊加,逐漸地,身份的唯一性就能夠被精確地標識了。進行實體消歧時,就對不同文本中可能重合的實體周圍出現的信息進行基於信息熵的語義相似度的計算,完成消歧。從圖譜到產品:除了有分析師一樣的知識,還要有分析師一樣回答問題的能力,甚至有勝於分析師的回答速度如果只是單純地想擁有數據,能回答簡單的信息查詢問題,那麼建立一個資料庫以及一個基於檢索的問答系統就足夠了。之所以用比資料庫複雜更多的知識圖譜形式進行數據結構化以及問答,就是為了能夠將複雜問題的答案也一步到位地呈現在用戶面前。在金融問答場景下,除了事實類問題(比如某公司股價/資本積累率/實際控制人)之外,最常見的還有三類問題:第一類是關於行業里有哪些公司(某公司的相似企業有哪些),第二類是行業規模,第三類是行業的產業上下游。這時,知識圖譜方法相較於檢索式方法的優勢,體現在能夠從有複雜條件的問句里提取出多種條件,並從圖譜中找到滿足條件的「精確」答案。在文因的智能問答系統里,從用戶問出一個自然語言的問題到收到一個自然語言的答案,要經歷三個過程:意圖識別、查詢規劃(query planning)以及答案生成。「意圖識別」用到了分詞、詞性分析(POS tagging)、實體識別、句法分析(syntactic parsing)、語義分析(semantic parsing)等基礎的自然語言模塊。
在「意圖識別」之後,「查詢規劃」負責生成類似資料庫查詢語言中的 SQL 語句。這時,只要文因的知識圖譜里(包括了行業、子行業、子行業上下游與產業鏈以及公司實體等多層實體與關係)有相關的信息,獲取答案本身就變成了技術相對成熟的數據查詢問題。最後,「答案生成」會利用規則與模版進行語言組織來回答相關的問題。除了封裝好的問答系統,企業用戶也可以從「文因雲」上,自行選擇所需的能力模塊拼接成所需的產品:數據諮詢公司將「研報搜索」功能融入自己的產品中,能夠讓其數據產品的用戶在搜索研報之外,還具有搜索研報的特定圖表和部分區域,這相當於將分析師的工作前置,融入搜索之中;有大量公告發布需求的金融業核心機構,使用「公告摘要」功能,能夠快速地得到一份由機器提取關鍵信息點並按照規定製式組織語言而成的摘要,這是幫助機構員工節省時間與迅速提高效率的手段。「根據不同場景與服務的需求,模塊經過相應的調整與拼裝,就能組成有效解決問題的應用,賦能企業用戶」,馬建強總結道推薦閱讀: