2018-02-23

夏肇毅觀點:植基於知識的理財機器人建構藍圖

夏肇毅觀點:植基於知識的理財機器人建構藍圖

理財機器人是可以用比一般理財顧問更低的價錢,來自動處理客戶的投資組合的一個平台。它使用資產配置軟體,根據客戶的喜好,來決定如何投資客戶的金錢到不同的財務工具上面。客戶的資訊是經過一個叫KYC(Know Your Customers)的程序來蒐集的。這是一個財富管理對一個新客戶所必須要經過的一個程序。是藉由一個線上的調查系統,來收集客戶對於財富管理的需求及他們的財務態度,尤其是對他們對於風險的忍耐程度。

理財機器人根據投資回報率的平均值及標準差,來決定如何將客戶的金錢投資到不同的ETF上面。股票,債券以及現金的比例,決定了投資的報酬率及風險。一個理財機器人必須分散資產來投資,並且定期的再平衡這個投資比例。我們通常將資產管理的運算法則直接寫成程式,藉以建構一個理財機器人,這程式會直接在平台上運行一些經過挑選的規則。

然而我們在這裡,想規劃一個可以持續接收新資訊的知識型理財機器人。它會處理收到的數據,儲存資訊,然後根據內存的結構化知識做出決定。一般的人工智慧系統,如類神經網路等機器學習運算法,會使用數值模型,靠著調整權重來訓練機器。然而我們的理財機器人,是靠一個儲存著現有人類知識的知識網路,根據這些所學習到的知識來處理輸入資訊。

知識貼紙人腦模型

之前在一篇筆者的”複製小超大腦,讓金融科技搭起人工智慧塔”的文章中提到:我們可以假設,當眼睛和耳朵接受到外界的訊號時,它們會經過神經網路,立刻將它傳送到所有的神經元上。應該會有一些比較底層的神經元來處理母音,子音和字母等。然後這些神經元連結到更高層,負責認識字和句子的神經元上。

paper-pic1.jpg

神經元能接受訊號,而且必要的時候還會再重新產生訊號。觀念上,我們把這些腦神經元對應到一般的小貼紙,我們把這個叫做人腦貼紙模型。低層貼紙保存著聲音,片語和句子。一層一層往上,上層的貼紙會保存公式,理論,程序與方法。所有的貼紙都能平行運作著。

當一個貼紙偵測到有輸入訊號跟它的內容相似的時候,就會送出信號到外面,給所有與它連結的貼紙。因此當我們聽到聲音時,會把它轉成文字,片語,然後變成句子。看到字母時,我們可以把它們連在一起,變成字跟句子,這就是一個認知的過程。

在一篇心理學的文章”魔術數字七加減二:一些處理資訊的能力限制”裏提到:人類的工作記憶可以保存的物件是七加減二。這個意思是說,就算我們的神經元能接收到更多的訊號,但在單一的時刻中,只有其中七個左右會被處理,其它的就會被忽略。這樣可才得以避免針對訊號無止境的連鎖反應。

為了要模擬人腦貼紙模型,首先我們我們需要建造許多的知識處理器,用來執行在腦中貼紙上所紀錄的工作。一個貼紙就像一張小抄一樣,上面紀錄著一段知識,然後我們需要有網路連到所有的貼紙。每一個貼紙會接受訊息,處理信息,然後將訊息當成一個反應送出。這個反應將再觸發其它的貼紙,讓整個流程持續執行。

以Message Queue系統模擬成神經網路

一般通用的MQ(Message Queue)系統像JMS,ZMQ,RabbitMQ等已經被廣泛地用在企業系統中,用來交換個不同單位間的訊息在這個知識型理財機器人的規劃中,我們用MQ系統來模擬神經網路。一個MQ系統可以根據需求,被規劃成Queue, Worker, RPCPublish / Subscribe 等不同模式

佇列(Queue)模式:

一個佇列用來連接一個生產者跟消費者。一個生產者送出訊息到這個佇列,然後一個消費者會從這個佇列中接收到訊息。
paper-pic2.jpg

工作者模式:

一個佇列連接著一個生產者與多個消費者。一個生產者送出訊息,然後每個訊息只會被一個消費者接受。這個是用於把工作分配給多個工作者的情況時使用。
paper-pic3.jpg

RPC模式遠端呼叫模式:

一個佇列連在一個生產者跟一個消費者之間,用來發送需求。然後另一個從消費者連回到生產者的佇列,用以接受回傳的回應。這個是用在於遠端的程叫RPC上。
paper-pic5.jpg
發行/訂閱模式:

發行者以不同的主題傳送訊息,然後消費者可以訂閱這些主題。之後就能自動地接收到屬於這些主題的訊息。

知識處理單元

要建立知識型理財機器人系統,我們用一個電腦的MQ系統來模擬概念上的神經網路訊號傳輸方式,同時每一個神經元再用一個知識處理單元KPU來模擬。一個知識處理單元包括一個MQ訂閱者輸入,跟一個MQ發行者輸出。而輸出訊息可以由此被廣播到所有的知識處理單元KPU中。

paper-pic6.jpg

透過訂閱一些特定主題的訊息,一個KPU能夠接收到這些它希望處理的特定訊息。同時它也有一張記錄著所要執行的運算法貼紙,處理後的結果將會經過MQ的輸出,被發行送到其它的KPU上。

為了要避免觸發訊息的無限迴圈,我們同時也必須要執行七加減二規則。一旦我們的工作記憶中已經接受到七個訊息的時候,這時我們就必須要停止再廣播訊息給其它的知識處理單元。只讓工作記憶區一次最多只處理手上的七個訊息,看看我們可以從它們中間產生出什麼樣的結論,這將可以讓思考的過程簡單一些。

理想的理財機器人應能夠了解經濟新聞,同時針對變化提供建議。因此它必須要了解財經市場的原理與規則,待判斷世界的變化後再針對財經市場的變化做出反應。為了要造出一個植基於知識的理財機器人,我們必須設立許多關鍵字的KPU來處理專業知識。 像USD,JPY,OIL,利率等。當一個KPU被標示為USD時,它就必須偵測USD的關鍵字輸入,然後發行出一切有關USD的資訊。同樣的,一個被標示為OILKPU 必須偵測OIL的關鍵字輸入,同時也發行出與OIL有關的最新資訊。

因此,我們的理財機器人必須包括下列各個型態的KPU
語言KPU:動詞,名詞,形容詞,副詞,片語,短句與文法。
公式KPU:財務公式如選擇權定價Black Scholes模型,凱利公式 等。
方法KPU:如線性方程式解法。

設計理財機器人的步驟

歸納起來,整個整個藍圖的設計步驟包括:

1. 建立結構化的知識貼紙

我們必須要組織上述的財經知識,來建立一個知識貼紙的組織。最低層的貼紙它保存著關鍵字,中間層貼紙保存片語,最上面一層的貼紙保存著句子與運算法。

2. 處理輸入訊息

進來的訊息將會被最底層的貼紙偵測到,然後最終觸發上層的運算法貼紙。

3.設計週期執行工作

要週期性的執行如再平衡等工作。

結論

我們在這裡提出了一個不同的理財機器人建造方法。這個方法的主要概念,是要在財機器人的大腦裡保存人類的知識結構。我們希望這個理財機械人在處理輸入訊息的時候,同時也能夠學習更多的知識,之後也將能變得更聰明些。

參考資料:

Chao-Yih Hsia ( 夏肇毅 ),"Blueprint of Building Robo-Advisors with a Structured Knowledge Processing Network", National Computer Symposium 2017 (NCS 2017), 14-15 December 2017, National DongHwa University, Hualien, Taiwan