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