1. 程式人生 > >白碩:背靠背知識協同:區塊鏈與人工智慧結合的新途徑

白碩:背靠背知識協同:區塊鏈與人工智慧結合的新途徑

9月11日,在由萬向區塊鏈實驗室舉辦的“新經濟技術探索”第四屆區塊鏈全球峰會上,前上海證券交易所總工程師白碩先生作為演講嘉賓受邀出席本次會議,帶來了題為《背靠背知識協同:區塊鏈與人工智慧結合的新途徑》的演講。以下為白碩先生演講全文,有部分不影響原意的刪減:

我今天跟大家分享的話題是背靠背知識協同,這是人工智慧和區塊鏈結合的一個新的研究。

我們經常提到一個詞叫Data Fence,意思資料被分割在不同的主權主體範圍內不能流通。不能流通的原因:不願意分享、不敢分享、不能分享

怎樣能夠在保護資料不離開原有的邊界,同時在巨集觀上又要引導資料流通,形成一種合成、協同的效果?我們基本上以區塊鏈為基礎,在上面加上了安全的多方計算。處理這樣的問題離不開區塊鏈上大家都知道的一些探索。比如說Zcash,它就是要解決UTXO模型下,我們都需要見證支付的有效性和支付以後賬目的平衡。現在利用零知識方法,可以在祕密狀態下見證這樣一種關係。這樣有了一種以隱私方式記錄交易的貨幣。

在溯源上也有同樣的情況,一個商品它的源頭做了簽字,中間環節做了簽字。如果都做了簽字,最後到了零售,我們看到的是一個完整的簽名鏈。這個簽名鏈有一個大問題,中間商的上下游關係、它們的商業合作伙伴都暴露在零售端。這就有了一個問題,能不能把中間關係給隱去,同時還能夠保證確實經過了中間的簽字環節。

再看供應鏈金融,在融資過程中也會有這樣的需求。物流是從右往左,現金流是從左往右。還有類似的(企業)白條,是由區塊鏈記賬的單位,它也是從左往右。白條從下游往上游走的時候,它跟誰是合作伙伴的關係,第二,它需要拆分,給誰拆分了多少,這件事情也比較敏感。這兩個敏感的資訊能不能隱藏起來,同時又能夠見證白條流通的合法性,這是我們在供應鏈金融場景當中碰到的問題,這都需要背靠背。現在普遍採用API呼叫的方式來把資料交易變成基於資料服務的交易。基於資料服務的交易,可以利用區塊鏈進行精準的記賬。

剛才說的對隱私和資料主權的保護方案,如果用一個二維座標來畫,橫軸是隱私的強弱,縱橫是中心化程度的強弱。其實做到一定程度,需要對去中心化有所犧牲,或者對隱私保護強度有所犧牲。稍微切實一點的,把這兩個方面能夠兼顧的,就是零知識證明的方法、同態加密的方法、環簽名等等這些方面。這些方法的問題在於不可能三角,在隱私和去中心化都保證的情況下,會犧牲效率。

總結一下,目的就是想做到在不洩露實體資訊的情況下,去見證一個關係。恆等式的見證,能不能不依賴我看見A+B等於C。還有資料要匯聚才能產生某種協同效應或者聚合效應,但是在資料不離開原位的情況下,能不能產生類似聚合效應那樣一種行為。還有,能不能做到不洩露引數,就能夠以這些引數來做輸入的計算。還有,你有對手方,能不能不碰對手方的內容,還能實現和對手方的互相聯通。這些問題,都是背靠背協同機制想要達到的目的。

下面分享兩個案例。一個是背靠背求交集;一個是背靠背訓練模型,或者叫協同學習。

背靠背求交集,就是兩個機構合作,一個機構是廣告商,一個機構是手機商。廣告商希望跟手機商合作,手機商希望和廣告商合作,如何把雙方共有客戶的手機號碼求出來,同時每一方不知道對方手機號碼的全集。我們提出的方法,進行某種加擾。A先加擾,給對方,對方加擾,給智慧合約。B也是,先加擾,再給A加擾,再給智慧合約,由智慧合約來求加擾之後的資料交集。只要加擾的運算元在數學上叫做可交換的,其實它就是成立的。用這種方法的時候,只要運算元足夠安全、足夠可靠的時候,就可以利用它做背靠背求交集的工作。這種方法,可以支援一些不希望透露全集的雙邊和多邊合作,各自只要部署各自的智慧合約節點,部署各自的加擾軟體模組就可以把這個事做下來。

再看背靠背模型訓練。機器學習是人工智慧領域裡面比較核心的功能。學習過程的最後會得到模型,但是這個模型是資料持續喂出來的。比如有幾個醫院,醫院各自有某個病的影像資料,這些影像資料合在一起,會訓練出一個更好影像識別模型。但是影像資料各醫院當寶貝不拿出來。可以想到的一個方法,利用同態加密。同態加密單個運算還不行,我們要做一個神經網路,神經網路至少它有線性組合,所以要有加同態、乘同態,還有一些非線性的過慮函式。加和乘組成多相式,多相式可以逼近非線性函式。逼近當然就有誤差,所以這兩個有問號。一個是產生了誤差,誤差在傳播過程當中,就會出現一些問題。一個是回不來,我們只能做試飛或者標籤透明的訓練,就是同態加密輸出是回不來的。

看另外一種方法,利用假資料。每個人手裡有真資料,利用真資料訓練一個模型。針對模型,生成假資料,跟真資料具有高度一致的分佈。兩邊都有假資料,把假資料給對方,把對方的資料跟自己的真資料和對方的假資料進行混合,混合之後再進行學習。

比較後,這三種方法,採用了生成假資料的方法,把假資料和對方真資料混合的方式。我做了一個實驗,資料集比較簡單,是數碼0到9的識別。把0到9分成兩組樣本,一組只有0到4的訓練資料,另一組只有5到9的訓練資料。當我們進行傳播之後,假樣本傳播之後,把對方擅長、自己不擅長的部分全學出來了。自己0到4是90%的樣本,5到9是10%的樣本。在這個學習過程當中看資料傳輸的量。用一個樣本池固定了,樣本池後面只做它的標籤變化部分的傳輸,用非常少的資料量,就可以學到相當高的精度,比其他兩種方法好。

這是一個雙邊的、簡單的實驗,但這個實驗其實給我們提示了很多東西。只要我們有一個可以信任的東西,就可以把資料通過信任的服務,把它給組織成一個假裝資料聚合的場景。雖然不聚合,但是假裝聚合,這個假裝聚合的場景和真聚合的場景是非常接近。這裡面還提到了不願意分享的問題,其中就是在大家分享過程當中的權益沒有考慮到。在精準計量了之後,像剛才的例子,你貢獻的每個假樣本,它對學習效果的貢獻度都可以測量出來。所以在區塊鏈做了精準的記錄之後,可以做一個非常好的利益方面的安排。

總結一下,背靠背資料協同是一個真實需求,它有非常廣泛的應用場景,在技術上很有挑戰性。第一個案例是使用了密碼學,第二個案例我們沒有用密碼學,用的是生成對抗網路。生成對抗網路的方式,把它跟區塊鏈進行疊加,就可以看到它同樣可以起到背靠背資料協同的作用,特別是在人工智慧、神經網路訓練領域可以起到很好的作用,這也為我們今後區塊鏈的實踐增添了一種新的選擇。