李曉艷, 藺寶軍
(1.齊魯醫藥學院, 公共教學部, 山東, 淄博 255000;2.山東火帽子教育咨詢有限公司, 山東, 濟南 250000)
2018年,微信用戶數量突破10億,成為全球第三大移動社交媒體,且近年來其總用戶量和活躍用戶量保持持續增長的態勢。而微信小程序開發平臺為海量開發者提供了微信植入功能開發接口,使超過10億微信用戶可以在不下載安裝其他App的前提下,實現對軟件功能的應用[1]。開發者也可以利用微信小程序官方虛擬服務器以及云端掛載服務器實現軟件開發,該研究重點在微信云端服務器架構中開發人機交互相關的人工智能功能的開發模式[2]。
人機交互語言訓練任務的核心開發目標是通過在人機交互過程中使機器學習人類的交互模式[3]。其實現途徑主要有2種:一種是基于上世紀90年代的隨機映射法(如小黃雞),是在邏輯數據庫中構建對應問句的多個映射答案,實際應用中,在多個映射答案中給出隨機選擇[4];一種是基于近10年使用的復雜神經網絡映射(如小愛同學),是構建一個復雜神經網絡系統,用于映射不同問句與答句之間的邏輯回歸關系[5]。
而人機交互語言訓練程序中,因為需要流媒體支持和浮點運算支持,這些功能無法在微信小程序虛擬服務器上運行,所以需要構建聯合服務云系統[6]。本文擬通過單純運行在微信小程序虛擬服務器上的隨機映射法開發模式和在微信小程序虛擬服務器之外構建聯合服務云系統的開發模式之間進行比較研究。
如前文分析,如果采用復雜神經網絡映射算法,則需要占用龐大的浮點計算資源,該計算過程完全無法在微信小程序的虛擬服務器上實現運行,所以需要使用Web-H5-Div架構,調用外部頁面的方式進行跨服務器傳值。使用更大的算力資源需掛接在微信小程序虛擬服務器之外。此時微信小程序虛擬服務器僅作為LAMP服務器使用。LAMP服務器是一種整合在LINUX操作系統中的基于簡單數據庫和簡單腳本解釋執行的服務器形式,一般提供基本的終端頁面生成服務[7]。其掛接模式如圖1所示。

圖1 聯合云實現模式
圖1中,以小程序虛擬服務器為核心,在計算任務服務器驅動下,配合公有云的負載均衡擴展,管理多臺浮點計算主機服務器集群(GPU服務器),人工智能的復雜神經網絡,需要運行在GPU服務器集群中。同時,因為該功能已經掛接了多臺服務器,為了進一步提升小程序虛擬服務器的響應效率,將邏輯數據庫和流媒體數據庫都單獨拉出,使用遠程數據連接執行數據連接操作。
該機器學習架構為點陣式文本字符映射算法,最大處理文本量為50漢字或100英文字符,采用100個8位bit型變量進行神經網絡的輸入輸出,如圖2所示。

圖2 人機交互語言訓練的機器學習算法示意圖
圖2中,輸入的50個漢字強制數字化后,分別分解為2個8 bit字節型變量(Bit格式),即形成100個Bit格式變量,將該100個Bit型變量進行降維處理后,輸出一個雙精度浮點變量(Double格式),形成降維參照變量,將該降維參照變量回輸到分列神經網絡模塊中,每個分列神經網絡模塊各有1個Bit型變量和1個Double型變量輸入,輸出1個Bit型變量,然后將每2個Bit型變量組合,形成50個輸出漢字。
即降維模塊共有100個Bit型變量輸入,降維到1個Double型變量,期間損失的信息量使用待回歸變量寄存在降維模塊中,此時按照80%的降維壓縮比進行隱藏層中的逐層降維壓縮,如表1所示。
表1中,該降維模塊共有492個節點,所有節點均采用6階多項式回歸函數進行深度迭代回歸,每個多項式提供6個待回歸變量,每個待回歸變量均為雙精度浮點變量(Double格式),即該降維模塊提供2 952個Double格式待回歸變量。該計算過程比較考驗計算主機的浮點運算能力。其節點函數的基函數寫作式(1),
(1)

表1 降維模塊隱藏層結構表
式中,Xi為第i個輸入項,Y為節點輸出項,j為多項式階數,Aj為第j階多項式的待回歸系數。
分列模塊共有2個輸入項,分別為1個8 bit的Bit型變量和1個Double型變量,其統計學意義是實現2個變量的整合輸出。該整合過程主要分為3步,其中第1步2層使用對數回歸函數將數據細節進一步放大,第2步2層使用二值化函數將輸出數據的落點進一步打散,第3步2層使用6階多項式函數實現輸出值的降維輸出[8]。其隱藏層結構如表2所示。

表2 多列模塊隱藏層結構表
表2中,輸入層、輸出層、隱藏層的第5層、第6層,均采用6階多項式函數進行節點設計,詳見式(1)。
隱藏層第1層和第2層的對數函數如式(2),
Y=∑(A·lnXi+B)
(2)
式中,Xi為第i個輸入項,Y為節點輸出項,A、B為待回歸系數。
隱藏層第3層和第4層的二值化函數如式(3):
Y=∑(A·eXi+B)-1
(3)
式中的數學符號含義同式(2)。
在數據訓練中,采用2種訓練模式:
1) 通過人工訓練輸入輸出文字的方式對神經網絡進行訓練,該模式可以在神經網絡初期訓練,也可以在應用過程中允許用戶對其持續訓練;
2) 通過偵聽聊天過程中的聊天交互過程進行持續訓練。
相比較上述機器學習算法,隨機映射法相對簡單,且其完全可以運行在小程序虛擬服務器上。采用SQL語言中的SELECT LIKE語句,可以獲得輸入字符串對應的所有回答語句查詢,通過RAND語句可以獲得查詢中的有效指針,從而做出語言回復。該算法的廣泛應用實踐較機器學習算法提前約20年時間,但二者基本算法理論的提出時間相當,之所以隨機映射法的應用時間較早,是受限于技術史上服務器算力的發展[9]。當前小程序虛擬服務器提供的算力水平基本等同于當時的主流服務器主機。該算法的數據流結構如圖3所示。

圖3 隨機映射法的實現數據流結構圖
圖3中的算法不存在任何浮點計算,僅存在數據庫的邏輯查詢功能,所以基礎計算量較少,整個系統可以在較小算力資源條件下運行,其機器學習部分來自不斷充實的核心數據庫部分[10]。
在基于聯合云的服務器系統上搭建測試系統,該服務器系統為未來該軟件系統實際運行的云端運行環境。測試語言包數據集來自某產品在線客服系統2020年全年的客戶問詢記錄數據,數據總量173.2萬條,均為文本型數據[11]。
按照圖1架構搭建聯合云以實現對神經網絡算法的運行環境,而單純在小程序虛擬服務器上搭建隨機映射法算法運行環境,比較2種算法的實際響應效率,可以得到表3。

表3 算法響應效率分析
在表3中,受制于算法復雜度,隨機映射算法的最快響應效率遠高于神經網絡算法,約為后者的47.9%。但因為其服務器算力影響,在高并發數條件下,其最慢響應效率達到神經網絡算法的2.20倍,且隨機映射算法的平均響應時間也高于神經網絡算法??梢?,在不對等算力條件下,隨機映射算法雖然有更簡潔的算法架構,但仍無法使用配置較低的小程序虛擬服務器實現超過聯合云系統的響應效率。但測試中,其2926 ms(<3 s)的最慢響應速度,基本可以滿足微信小程序的商業化運行需求。
該算法的核心功能為通過對輸入文本的語義進行判斷,從而組織自動回復語言文本實現人機交互功能,所以,對2種算法的回復效果進行比較,當系統無法判讀輸入問句時,將回復“沒聽清,你可以換一種方式問我。”的答復,此時計做錯誤答案“1”;而當系統可以判讀輸入問句,但輸出結果為亂碼時,給出“我有點懵,你可以教給我如何回答?!钡拇饛停藭r計做錯誤答案“0”;受制于算法特征,隨機映射算法可能給出的錯誤答案僅為錯誤答案“1”一種形式,即輸入問句無法在數據庫中有效檢索,但神經網絡算法可能給出2種錯誤答案。在自然聊天環境中,測試5000條聊天記錄,統計2種算法的錯誤回答概率,得到結果如表4所示。

表4 算法精度測試結果對比表
在表4中,在相同測試次數下,神經網絡算法總計給出了89.70%的準確回答率,而隨機映射算法總計給出了91.68%的準確回答率。隨機映射算法的回答準確率略高于神經網絡算法,其核心原因是神經網絡算法即便在深度訓練條件下,也難免出現其輸出回答結果為亂碼的情況。且該錯誤答案的出現概率遠大于無法分辨對方問句的錯誤答案出現概率。即單純考察算法精度,隨機映射算法在當前神經網絡算法的訓練程度條件下,其具備一定的算法精度優勢。
內測階段,邀請5000名用戶對2種算法形成的微信小程序進行測試,用戶年齡22-65歲,平均年齡31.6±2.4歲,男性3292人,女性1708人,學歷初中以下653人,高中同等學歷1536人,大專及本科1896人,其他915人,所有用戶母語均為北方官話。要求其根據主觀意愿,選出十分滿意(10分)、滿意(6分)、不滿意(3分)、完全不滿意(0分)4種評價結果,對該5000名用戶的實際評價結果進行匯總統計,如表5所示。

表5 用戶滿意度評價結果表
在表5中,用戶對神經網絡算法的滿意率為89.9%,對隨機映射算法的滿意率為89.7%,二者僅相差0.2%,但因為神經網絡算法的“十分滿意”用戶量高于隨機映射算法的“十分滿意”用戶量,且隨機映射算法的滿意用戶多選擇“滿意”而非“十分滿意”,所以神經網絡算法的綜合得分為7.905分,而隨機映射算法的總和得分為7.259分,前者較后者高出8.9%。所以,用戶對2個算法給出的人機交互語言訓練功能給出的評價基本一致,但神經網絡算法給出的評價略高。
前文分析中,神經網絡算法無法運行在單純的小程序虛擬服務器上,需要在其外部構建聯合云以運行多臺外圍支持服務器以實現其相應功能,而隨機映射算法可以在單純的小程序虛擬服務器上運行。所以,神經網絡算法的算力成本遠高于隨機映射算法。在對二者的響應效率,回答準確率、用戶滿意度等算法效能的評價中,2種算法在不對等算力支持條件下,給出的測試結果基本相等,但神經網絡算法的總和得分更高。所以,隨機映射算法雖然出現時間較神經網絡算法早近20年,但其算法效能并不落后,神經網絡算法具備并不顯著的優勢,2種算法均可以支持基于人機交互的語言訓練微信小程序開發任務。在后續相關開發工作中,可以斟酌其他關聯因素在2種算法中給出決策。