【數碼金魚缸】「我,就要爆了!」唔係講笑,原來不少大公司均有使用AI來預測客戶的不滿情緒,例如在熱線中心,每當客戶的聲線透露其不滿到達頂點時,會及時找到善於疏導情緒的客服員處理。同時,華爾街亦有公司透過分析上市公司高層在業績發佈會的用語態度,來發掘可以預測股價的方法,今次我便嘗試用股票討論區中的網民討論,來訓練一個可以估量網民對後市或個股樂觀或悲觀情緒的AI程式。
程式是這樣運作的,我首先從近期大熱的論壇連登的財經台中,擷取一些可以反映股民心態的字句,用作訓練電腦的材料,例如「係時候入市」、「準備all in」的評論,反映的是樂觀情緒,而「free fall到幾時」、「呢隻股真係無得救」等則反映悲觀情緒,至於「空倉食花生」等,則反映觀望情緒。在搜集了大量這些評論,以及逐一標籤它們代表的情緒後,便可以輸入程式作訓練。
收集近百句留言作訓練
程式的目的,是讓電腦有分析投資情緒的能力,下一步便可以大量搜刮討論區的討論,即時綜合計算一個情緒指數,看看其變化是否有預示大市或個股走勢的能力,從中獲利。
由於程式牽涉到語言分析,而電腦是不懂得語言的,故此我使用了facebook開源的廣東話文字庫,用來供電腦學習廣東話詞彙及詞彙之間的關係,該字庫是使用維基百科的廣東話版為基礎,讀者當然可以自行下載整個維基百科來訓練自家文字庫,但對於電腦要求較高,而且時間較長,建議用現成的文字庫較省時省力。
程式是以知名AI學者吳恩達在coursera的課程習作改編,並且以PYTHON編寫,原程式是用於分析英語,而英語是一個個單字自成意思的,但中文則有詞語的概念,故此要中文化便要進行萃取分詞的動作,把句子中有意思的詞語如「港交所」一併分析,而不是當成三個字來分析,以提升學習的效率。而文字庫的內容,就是建立不同詞語間的關係,如「特區」便與「行政長官」、「小圈子」等詞語相關度較高,藉此讓程式可以舉一反三。
今次使用的AI模型,同樣是上次我用於預測股價的長短期記憶LSTM(long short-term memory),與預測股價需要記得過去走勢相似,要理解文字,亦需要通曉上文下理,故需要使用一個「有記性」的模型。
基於人手所限,我只收集了近一百句「連登仔」的留言,當然在大數據的年代,以這個數量作訓練難言理想,但由於要人手逐一標籤每句代表的是樂觀、觀望還是悲觀情緒(在程式中分別以2, 1, 0,又或以emoji代表),故此也只能將就將就,同時我亦預留10個留言作訓練後測試模型之用。
預測情緒有六成準確
結果如何?使用64層隱藏態(hidden state)及30回合的訓練結果,對用於測試的10個留言,有6個成功預測語句背後的情緒,4個標籤錯誤,六成準確度比起隨機胡亂標籤的三分之一準確度已高出一倍,但仍有很大改善空間。
究竟AI錯些什麼?一些double negative的語句如「大戶未夠淡倉」,電腦可能見到「大戶」、「淡倉」等字眼,便以為看淡,但看漏了「未夠」,意味短期內不會質低股價獲利,那這個評論便可能是一個短期中性、中期看淡的觀望訊號。當然,這是我的看法,而我可能是錯的,那便變成garbage in garbage out了。
不過,AI對某些評論,似乎又有自我演繹的能力,好像「不問價入熊」,AI懂得標籤成看淡,但訓練的資料其實並無「熊」這個字,所以程式還是有一點推理能力的。
要提升準繩度,最好當然是增加訓練的材料,這是人力密集的工作,大機構會較為優勝。另一方面,調校模型參數也有幫助,如果訓練數據較少,可考慮減少LSRM的隱藏態(如筆者便用64個,而非模型原來的128個),又或減少訓練回合(由1,000回合減少至30),令模型不會太過為訓練數據度身訂造(overfitting),而失去應用到一般數據的能力。
另外要提的,是facebook的廣東話文字庫,受制於維基百科廣東話版的條目,不及白話版的多,故此詞彙上的限制較大,只有4.9萬個,遠不及白話版的33萬個齊全,這頗影響程式的表現, 如筆者便需要把輸入的評論中的「D」改回「啲」,又要盡量把數目字改用中文數目字表達,程式才懂得辨認,不過香港的討論區一般用的都是廣東話口語,而廣東話字庫訓練好的選擇着實不多。
再者,鑑於連登仔的創作力量同幻想,若用死一個字庫,可能亦追不上不斷衍生演變的新用語,所以要實戰,還是要自行訓練及不時更新字庫。
網民會否講真話成挑戰
事實上,以文字來偵察討論區或社交媒體的投資情緒,也有不少限制,因為網民發言未必都是表態,很多時只是討論,又或是貼出教學文,而有時表達情緒或看法,並非透過文字,而是以貼圖、meme或emoji來表態,這些均很難用AI準確觀察情緒,故單單以文字亦不足以一窺全豹。
當然,更根本的問題是,獲知散戶在社交媒體上表達的看法,是否就對後市有指示性,是領先指標還是落後指標?網民會否在討論區或facebook講真話,抑或純粹刷存在感?又會否有一些五毛黨或企業公關在「搞氣氛」,出帖做另類投資公關,都會影響這種分析的用處。這可是更大的課題,可以留待日後詳細探討了。
與過去一樣,有興趣索取原始碼的讀者請給我電郵。
尼奧
作者電郵:mailto:[email protected]
網站連結:facebook預先訓練過的文字庫: https://bit.ly/2WkHQ0Y
吳恩達的AI程式原形: https://bit.ly/2UgLtB8