[對話式AI-8] 研發部門與開發流程介紹

本文以筆者所任職的公司為例;在不涉及公司機密的前提下,介紹人工智慧產品研發的「相關部門、開發流程及工作內容」,為大家揭開AI產業的神秘面紗。

公司主要業務是為電信、金融、政府及電商等領域,導入AI技術、自然語言處理(Natural Language Processing, NLP)技術、系統整合及平台建置,最常幫一些大型機構建置Chatbot及呼叫中心等系統,協助提升客戶服務,並降低人力需求。

AI公司的組織架構

一般AI公司研發中心可以分為下列部門(舉例),橫向為各部門名稱,縱向為組織架構:

  • 研究院 / 知識研究部(理論及算法研究)
  • 自然語言理解NLU研發部 / 語音引擎研發部(算法研究及應用)
  • 基礎產品研發部 / 雲端平台研發部(引擎應用)
  • 產品測試部
  • 解決方案部(產品包裝)
  • 專案實施部(產品應用及二次開發)

AI產品的開發流程

  1. 研究院負責與大學院校合作,閱讀論文並研究前瞻技術後,將研究成果提供給NLU / 語音研發部。同時通報專利申請單位,將有價值的技術註冊成專利。
  2. NLU / 語音研發部將研究成果,實作成底層引擎,並將其轉交給基礎產品研發部。同時通報專利申請單位,將有價值的技術註冊成專利。
  3. 基礎產品研發部負責市場調查、設計產品,並撰寫前後端邏輯,將引擎包裝成Chatbot / 推薦系統(Recommender system)等產品。同時通報專利申請單位,將有價值的技術註冊成專利。
  4. Chatbot / Recommender等產品的基本內容及行業知識,由知識研究部負責建置,如標註資料、建置知識、知識圖譜、預置行業包等。
  5. 解決方案部負責將Chatbot / Recommender產品的各項能力,打包成各個行業的解決方案,提供給業務單位兜售。
  6. 如果客戶有興趣,專案實施部會使用該Chatbot / Recommender等產品 / 解決方案,為客戶無償做POC(Proof of Concept);如果客戶滿意其成果,就會為後續開發簽約付錢。
  7. 專案實施部再根據合約內容完成Chatbot / Recommender等系統建置及介接API等二次開發工作,並提供售後維護服務。公司每年再收取License、維護及再開發費用。

AI產業的工作內容

若你有志投入AI相關產業,可以往以下幾種部門走,但著重的技術都不同:

研究院

一般使用Python語言及TensorFlow、PyTorch及SKlearn等框架研究算法(Algorithm),如語音辨識(Automatic Speech Recognition)、分詞(Word Segmentation),詞性標註(Part of Speech)、句法分析(Syntactic Analysis)、語意分析(Semantic Analysis)、對話管理(Dialogue Management)、自然語言生成(Natural Language Generation)及語音合成(Text to Speech)等。

NLU / 語音研發部

由於Python不適合用於大規模平行計算(Parallel Processing),這裡常使用Java語言,Mahout、Deeplearning4j等框架在Hadoop及Spark上實現算法、引擎、訓練及部署模型。

基礎產品研發部

這裡就比較沒有局限了,什麼語言和框架都可以用,譬如使用Go語言及Gin框架,撰寫後端邏輯,將底層引擎包裝成產品;以及使用Javascript語言、React或Vue等框架開發前端。

專案實施部

根據客戶需求選擇語言及框架,透過Chatbot / Recommender等產品 / 解決方案為客戶二次開發,並提供售後維護服務。

基於深度學習的推薦算法調研

年底因為工作任務,調研了幾篇推薦系統 ( Recommender System ,以下簡稱RS) 的論文;我寫碩論時還不流行深度學習(Deep Learning,以下簡稱DL),轉眼間DL已經成為顯學,近年發表的推薦算法也都是基於DL的研究,我也已經應用在業界的專案中,並獲得了一些進展,但對DL應用在RS的普遍成效,我也是相當好奇。

趁著還記得調研的內容,在此以ACM RecSys 2019最佳論文「Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches」為基礎,跟大家分享一些心得:

讀後總結:

  • DL應用在電腦視覺CV和自然語言處理NLP領域相當成功,但在其他方面不如預期。
  • 2015到2018年RecSys, WWW, KDD, SIGIR頂級會議共有18篇DL論文與top-n推薦有關,可重現的實驗有7篇,比例約39%;也就是61%的實驗無法重現。
  • 通常做為baseline的方法有非個性化TopPopular、協同過濾CF的ItemKNN、UserKNN、P3alpha、RP3beta,混合的ItemKNN CF + CB,以及機器學習ML的SLIM。
  • 論文作者重現這7個實驗,驗證其進展是否真實,發現DL方法,效果並沒有上述經典的啟發式方法好,在7篇論文中只有1篇優於上述baseline方法,但只是在部分情況下超越。
  • 論文作者認為導致此結果的原因,是這7篇論文挑選了較差的baseline方法和參數、所選擇的測試資料epoch次數不同,甚至有實驗程序不同導致評估錯誤。

個人心得:

  • 為了驗證這幾年的進展,論文作者使用公開資料集作為可重現條件之一,從18篇論文中挑選了7篇重現實驗,但目前的公開資料集有資料量不夠大,矩陣比較不稀疏,以及特徵少等特色;此種資料集並非DL的強項。
  • 公開資料集大多出於學術界,其大小與特徵豐富程度遠低於業界的系統;所以論文作者的結論,以及DL在商用資料集的表現,還有待進一步的驗證。

參考資料:
https://dl.acm.org/authorize?N684126
https://arxiv.org/pdf/1907.06902.pdf