Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101

AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心


大語言模型 語音處理 自然語言處理 電腦視覺
Large Language Model Speech Processing Natural Language Processing, NLP Computer Vision

用 AI 懂 AI

AI 技術 體驗/分享

手把手帶你一起踩 AI 坑https://www.twman.org/AI


AI 技術 開源/試用

SOC: Social-network Opinion and Comment YouTube

2018/10/12 Nat Lee


智能情感分析:核心概念與技術入門

情感分析,簡單來說,是一種自然語言處理(NLP)技術,目的在於判定一段文本所表達的情感傾向,究竟是正面的、負面的,還是中立的 [1, 2]。這對於理解大眾對特定事物(例如產品、服務,或是資料中特別關注的 ICO 項目)的看法至關重要 [1, 3]。對於新手來說,理解其核心目標——從文字中「讀懂」情緒——是踏入此領域的第一步。

資料處理流程:理解數據的轉換之旅

在進行情感分析之前,原始文本資料需要經過一系列的處理步驟,這是一個在 NLP 領域非常基礎且關鍵的流程 [1, 4]。想像一下,我們從社群平台(資料中主要提及 Facebook, Twitter, Telegram [1, 4, 5])抓取了大量的評論或貼文,這些原始資料充滿了各種噪音和非結構化資訊。因此,資料處理流程是模型能夠有效學習的基石。

  1. 預處理 (Pre-processing): [1, 2, 4] 這是資料清洗的階段,目的是移除或轉換那些對情感分析模型訓練沒有幫助的元素。
    • 例如,社群媒體上常見的表情符號、特殊字符(如標點符號過多)會被過濾或標準化處理 [1, 4]。
    • Hashtag (警字號 + 文字) 會被轉換成統一的標記 <hashtag> [1, 4],例如 #bitcoin 就變成 <hashtag>
    • 提及用戶 (@ + 用戶名) 也會被轉換成統一的標記 <user> [1, 4],例如 @elonmusk 就變成 <user>
    • 這樣做的原因在於,原始的表情符號或具體的用戶名、Hashtag 可能過於多樣且不具備泛化性,標準化處理可以減少模型的負擔並提高其泛化能力。
  2. 分詞 (Tokenization): [1, 2, 4] 預處理之後的文本仍然是一串連續的字元。分詞的作用是將這串連續文本分割成有意義的單元,通常是詞語或符號 (tokens)。例如,句子 “I ❤️ it” 經過分詞後,可能會變成 [“I”, “<3”, “it”] 或 [“I”, “heart”, “it”],甚至轉換成數字序列 [4, 6]。這一步是將人類語言轉換為電腦可以理解的離散單元,為後續的數值化表示做準備。

  3. 詞嵌入 (Embedding): [1, 2, 4] 分詞後的結果是離散的符號(如單詞 ID)。詞嵌入的目的是將這些離散的單詞或符號轉換為連續向量空間中的低維稠密向量表示 [1, 2, 4, 6]。這一步非常關鍵,因為它能捕捉詞語之間的語義和語法關係,使意義相似的詞語在向量空間中距離較近 [1, 4, 6]。文獻中提到這是一個「離散空間轉變成連續空間」的過程 [6],並用星座的比喻來解釋 [6, 7],說明如何將「勇敢」、「領導力」等離散形容詞對應到連續的星座序列中 [6, 7]。對於模型來說,處理連續向量比處理離散符號更有效率,且能利用詞語之間的相似性。

模型架構:LSTM 加 CNN 的考量

資料中提及的情感分析模型採用了 LSTM (Long Short-Term Memory)CNN (Convolutional Neural Network) 的組合架構 [1, 4-6]。這與市面上一些常見的 CNN 後接 LSTM 的做法不同 [4, 7]。

將兩者結合,通常是為了利用 CNN 的局部特徵提取能力和 LSTM 的序列建模能力。資料中提到,選擇 LSTM 加 CNN 的順序可能是為了處理較短的文本,如社交媒體留言,通常在 60-100 字左右 [4, 8]。這點值得我們思考,不同文本長度或類型的任務,可能會需要調整模型的組合方式或順序。

模型訓練完成後,資料中報告的訓練集準確率約為 82%,人工驗證準確率約為 83% [4, 9]。這也帶出了模型驗證和數據標註的挑戰。

學術與實務的挑戰:數據、標註與可重現性

進行 NLP 領域的研究與開發,特別是在情感分析這樣的任務上,會遇到一些普遍的挑戰,這些在資料中被反覆強調,對於新手研究者而言是重要的提醒 [1, 10-12]。

  1. 缺乏標準化與公開的資料集 (Dataset): [1, 10-12] 這是資料中講者大力批評的問題 [10-12]。許多學術論文不公開其使用的資料集或驗證方法 [1, 10-12]。這導致其他研究者難以重現實驗結果,無法公平地比較不同模型或方法的效能 [1, 10-12]。有時即使提供了連結,資料也可能已經失效 [12]。這種「不可重現性 (Reproducibility)」是學術研究嚴謹性的重要障礙 [2, 13]。作為入門者,尋找高質量、公開且驗證方法清晰的資料集是學習和實踐的第一步,但現實中這並不容易。資料中提到團隊計劃將他們收集的資料集公開,並可能放在 Kaggle 等平台,這是一種積極的回饋社群的行為 [10, 14]。

  2. 資料標註 (Labeling) 的困難與耗時: [1, 10, 14, 15] 訓練監督式學習模型需要大量帶有標籤的資料,但在 NLP 領域,為文本標註情感(正面、負面、中立)需要大量的人工投入 [1, 10, 14, 15]。文獻中也提到不同人對同一句話的情感判斷可能存在差異,這會影響標註的一致性 [4, 9, 15]。為了解決這個問題,團隊開發了一個網站 se.twman.org [1, 10, 14, 16],希望透過社群志願者的力量來協助資料標註,並提供獎勵機制鼓勵參與 [10, 14, 16]。這提示我們,數據的質量和數量是模型性能的關鍵,而獲取高質量的標註數據往往是實務中最耗時且困難的部分。

  3. 權重演算法 (Weighting Algorithm) 的設計: [1, 2, 4, 9, 17] 在將單一文本的情感分數匯總成一個項目或主題的總體分數時,會面臨一個問題:如何避免少數評論(即使其情感得分很高)主導整體評分 [1, 4, 9, 17]。特別是對於討論熱度低的項目,幾句正面評論就可能使其得分很高,這與討論熱度高的項目可能因少量負面評論而無法獲得滿分的情況形成對比,是不合理的 [4, 9, 17]。蠻牛哥設計的權重演算法旨在解決這個問題,其核心思想是根據社群的總聲量(留言或討論數量)來計算權重,聲量越大權重越高(越接近 1.0),這樣總分更能反映整體的討論狀況和熱度 [4, 17]。這提示我們,從學術模型輸出的原始結果到實際應用中的呈現,往往需要額外的工程和算法來處理邊界情況和提升用戶體驗。

情感分析的實際應用與產品落地

這些情感分析的技術成果並非僅限於實驗室研究,而是被實際應用並「落地」到產品中 [8, 10]。

這些產品應用展示了情感分析技術如何從研究走向實際服務,為使用者提供有價值的資訊。同時,產品的實際部署也提供了寶貴的用戶回饋,有助於系統的持續優化和迭代 [1, 11]。

更多基於 AI/DL 的探索與產品

除了情感分析,這個團隊和社群還在其他 AI 和深度學習領域進行了探索並開發了多個實際應用 [1, 4, 21-23]。這顯示了他們技術廣度以及將技術轉化為產品的能力。

  1. 智能合約安全檢測與惡意軟體辨識 (Code-to-Image): [1, 4, 13, 20, 23] 這是一個非常有趣的應用,將傳統的安全分析方法與深度學習結合。其核心思想是將智能合約的程式碼(特別是 bytecode)或安卓病毒的二進制數據轉換成圖像 [1, 4, 20, 23]。
    • 具體做法是將 bytecode 轉換為 RGB 圖像 [1, 2, 20]。
    • 然後將這些圖像輸入到深度學習模型(例如 Inception v3,一種常用的圖像分類模型)進行分析和分類 [1, 2, 4, 20, 23]。
    • 這樣做的優點在於避免了傳統安全檢測依賴特徵碼需要不斷更新的問題 [4, 20]。圖像化後,相似的病毒或具有相似特徵的智能合約在圖像上會呈現出相似的視覺模式,這種方法被形象地稱為 “Look Virus” [4, 13]。
    • 這個系統是一個多標籤分類系統,意味著一個樣本可能同時屬於多個類別(例如一個智能合約可能同時具備多個功能選擇器或需要多個權限)[4, 20]。資料中提到,通過結合靜態分析系統,可以自動生成標籤,解決了部分標註難題 [4, 20]。這項成果曾在美國拉斯維加斯和澳洲墨爾本的會議上發表 [4, 13, 20]。
  2. 智能推送通知優化: [1, 4, 13, 18, 23] 這個應用旨在解決 App 通知過於頻繁或彈出時機不當的問題 [1, 4, 13, 18, 23]。目標是根據用戶的點擊行為模式,預測用戶最有可能點擊通知的時間,從而在最佳時機推送通知,提高點擊率並減少對用戶的打擾 [1, 4, 13, 23]。
    • 使用了類似 Google 推薦系統的 DNN + Wide Model 架構 [4, 13]。
    • 面臨的挑戰是數據的嚴重不平衡:大多數通知不會被點擊,導致正負樣本差異懸殊 [4, 13, 15]。這需要大量的數據來處理這個問題 [4, 13]。
    • 實施後,系統的 7 天留存率有所增加 [4, 13]。
  3. AI 相關硬體產品: [1, 4, 8, 18, 19, 23-25] 團隊也開發了實體硬體產品,這對於將 AI 技術落地到日常生活中非常重要。
    • 小豹音箱: [1, 4, 8, 18, 19, 23-25] 一款智能音箱,具備語音控制和智能家居功能,例如播放音樂、有聲小說、控制家電、查詢天氣、設定鬧鐘等 [1, 4, 23, 24]。使用了團隊自行開發的語音辨識作業系統 [8, 24]。
    • 翻譯棒: [1, 4, 8, 14, 16, 18, 23-25] 一款基於語音辨識技術的即時翻譯設備,通過連接手機 App 使用 [1, 4, 23, 24]。資料中提到支援中英、中日、中韓互譯 [18, 23, 24]。這兩個硬體產品展示了團隊將語音識別和自然語言理解技術整合到消費級產品中的能力。
  4. Swall 錢包軟體: [1, 4, 18, 19] 這是一個錢包應用程序,資料中也提及其未來計劃發布硬體錢包(類似 USB 形式的區塊鏈錢包)[1, 4, 18, 19]。雖然這本身不是純粹的 AI 應用,但與團隊在區塊鏈領域(ICO 情感分析、智能合約安全檢測)的關注方向是契合的。

社群與未來展望:共享、協作與持續成長

這個讀書會社群的存在與發展本身就是一個重要關鍵點 [5, 10, 19, 21, 22, 26]。活動起源於 2016 年 11 月 11 日,從最初預計辦兩三次,持續至今已經舉辦了 24 次活動,歷時兩年 [5, 18, 19, 21, 26]。讀書會模式為現場直播且未經修改,強調真實分享 [21, 26]。