Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Topic Modeling with Python: What do Customers C...

tlyu0419
June 05, 2024
76

Topic Modeling with Python: What do Customers Care about Digital Banking Apps?

網路銀行App 的使用體驗是銀行在發展數位金融的一項成功關鍵,直接影響到客戶對於企業的忠誠度。然而要分析使用體驗並不是件容易的事情
雖然 Google Play/Apple Store 的應用市集已經提供 APP 的滿意度分數了,而滿意度卻過度的簡化了使用體驗背後所包含的訊息,無法藉此找到對 APP 的優化建議
在這次的演講中我將以台灣 19 間銀行的 APP 在 Google Play 上的 31,474 筆評論資料為例,示範透過 Python 進行主題模型(Topic modeling) 的方法以及實務的分析經驗。最終從文本中萃取出不同的討論主題,提供公司具有商業意義的分析洞察與建議

tlyu0419

June 05, 2024
Tweet

More Decks by tlyu0419

Transcript

  1. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 •

    網路銀行App 的使用體驗是銀行在發展數位金融的一項成功 關鍵,直接影響到客戶對於企業的忠誠度。然而要分析使用 體驗並不是件容易的事情 • 雖然 Google Play/Apple Store 的應用市集已經提供 APP 的滿意度分數了,而滿意度卻過度的簡化了使用體驗背後所 包含的訊息,無法藉此找到對 APP 的優化建議 • 在這次的演講中我將以台灣 19 間銀行的 APP 在 Google Play 上的 30,876 筆評論資料為例,示範透過 Python 進行 主題模型(Topic modeling) 的方法以及實務的分析經驗。最 終從文本中萃取出不同的討論主題,提供公司具有商業意義 的分析洞察與建議 PyCon Taiwan 2024 September 21, 2024 Topic Modeling with Python: What do Customers Care about Digital Banking Apps? #Python #Topic Modeling #數位金融 游騰林(tlyu0419) 騰林是來自國泰金控的資料科學家,先後在電信業和 金融業服務,有超過 8 年的數據分析、機器/深度學 習模型的實務經驗 喜歡透過資料科學技術動手解決現實世界中的問題多 過於理論研究。閒暇之餘也會在各大技術年會分享實 踐後的踩坑經驗 心中理想的工作形態是擔任顧問,透過分享資料科學 的專案經驗與技術,協助企業提升經營成效
  2. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Outline

    • (5M) 為什麼企業需要分析資料? • (8M) 要怎麼進行文本分析? • (12M) 文本分析在實務上的困難與解方 • (5M) 總結&QA 2
  3. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 為什麼企業需要分析資料?

    3 毛利 = 營收 – 成本 如果分析的目標能與 企業的目標掛鉤, 提案會比較容易被接受,拉到需要的資源
  4. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 數值資料分析的不足之處

    4 網路銀行APP 滿意度分數變化圖 玉山的分數從谷底翻升 CUBE 跌破歷史新低 富邦 瞬間跌到谷底又上升回來 全部 APP 的分數同時上升 分數變化固然有趣, 卻也過度簡化了背後發生的事情 大家都下降,獨玉山上升 CUBE 第一次分數崩跌
  5. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 企業中的文本資料與分析策略

    5 營收 成本 文本 資料 法院判決文 行銷方案 客服記錄 催收註記 內外部法規 職缺描述 求職履歷 保單條款 核保/理賠註記 財經/產業新聞 網路評論 透過制定行銷策略 / 商品開發 / 精準行銷 / 個人化推薦… 等方式 協助公司提高銷售額/量 協助公司把原本費力的工作簡化 甚至自動化作業,降低公司在服 務/營運上的成本
  6. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 法院判決文

    • 透過分析法院的歷史判決 協助 保險公司 估算合理的精神慰撫金 • 判決A: 頭部外傷併顱骨骨折、腦出血、頭皮裂傷5公分、左肩挫傷等傷害 ~ 250,000 • 判決B: 頭部外傷併前額撕裂傷、外傷性蜘蛛膜下腔出血、左手肘鷹嘴突骨折、左眼挫傷、多處擦傷、兩 眼視力減退等傷害 ~ 400,000 6 Ref: 車禍受傷賠償有什麼?常見體傷賠償Q&A
  7. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 財經

    / 產業新聞 7 藉由新聞偵測企業違約風險,管控放款品質 透過新聞找出熱門話題作為行銷素材
  8. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 客戶服務記錄

    8 Ref: 【中信EdgE旅程改造實例:刷卡消費體驗】刷卡記錄多一句話,中國信託銀行客服每月少接1萬通電話 | iThome 概念上很簡單直覺, 但難點在於要怎麼想到這個問題?
  9. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Outline

    • 為什麼企業需要分析資料? • 要怎麼進行文本分析? • 文本分析在實務上的困難與解方 • 總結&QA 9
  10. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 資料樣貌

    • 銀行APP留言資料表: • 30,876 rows * 5 columns(已移除 202112 前的資料) • 欄位 • APP名稱 / 暱稱 / 留言日期 / 滿意度分數 / 留言內容 11 Ref: google-play-scraper · PyPI
  11. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Topic

    Modeling 的典範&轉移 12 • 文字雲 > LDA: 能自動從文本中挖掘主題 • LDA > Word2vec: 將 詞 嵌入至低維空間來反映語義 • Word2vec > Transformer: 直接對 句子 做嵌入 LDA (2003) Word2vec (2013) Transformer (2017) 文字雲 (1995)
  12. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 文字雲

    • 想法 • 先計算語料庫中各個詞的 重要性, 再依照詞的 重要性 來設定 大小 • 優點 • 簡單、直覺 • 限制 • 吃重斷詞的結果 • 怎麼評估詞的重要性? • 統計數值和業務需求間的落差 • 不容易獲得商業洞察 • 通常會先切分語料庫成幾個子集, 再對不同子集繪製文字雲 13 Ref: wordcloud · PyPI CUBE APP 2022~ 的客戶評論 畫文字雲很容易, 但難點在於如何畫出具有商業價值的文字雲
  13. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 LDA(Latent

    Dirichlet Allocation) • 想法 • 假設語料庫是由多個潛在主 題組成 • 且每個主題能由一組詞語分 佈來推斷文檔中的主題結構 • 優點 • 自動挖掘文本主題 • 容易解釋 • 限制 • 較適合長文本的語料庫 • 詞袋模型的運算量龐大 • 沒有考慮詞的出現順序 14 Ref: LatentDirichletAllocation — scikit-learn 1.5.1 documentation
  14. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 word2vec

    • 想法 • 透過詞的共現關係將 詞 嵌入到低維度的向 量空間中 • 讓語義相似的詞的距離靠近,反之則較遠 • 優點 • 詞與詞之間變得可以進行運算 • King – man + women = queen • 避免了詞袋模型導致的維度災難 • 運算量 &記憶體 • 限制 • 短文本可能無法訓練出高品質的詞向量 • 在聚合為文本向量時會忽略掉詞的順序關係 15 Ref: models.word2vec – Word2vec embeddings — gensim (radimrehurek.com)
  15. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Transformer

    16 Ref: SentenceTransformers Documentation — Sentence Transformers documentation • 想法 • 透過 self-attention 的機制計算句子中每 個詞語與其他詞語之間的關聯性,並根據 這些關聯性動態調整每個詞語的表示 • 優點 • 直接將文本轉為embedding,簡化了許 多文本預處理的流程,也減少在聚合資訊 時損失的資訊 • 限制 • 對於特殊領域的場景不一定會比舊方法好 • 效果不理想時還是可以回去試舊方式 • 或者需要對 LLM 做 Finetune
  16. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 分析流程

    17 transformer 文字雲 LDA Word2vec • 早期的文本分析流程繁雜 • 包含 斷詞、轉換詞頻矩陣、分群分 析,最後才能進行解析。每一步都 是關鍵! • 處理流程與分析的產出互為因果, 當結果不理想時其實不太容易釐清 應該優先對哪個環節做優化 • 後期的文本分析的流程簡單許多 • 透過大型語言模型直接將文本轉為 embedding,接著就回到傳統的 機器學習的分群/分類的任務 • 但卻也有衍生出新的難題qq
  17. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Outline

    • 為什麼企業需要分析資料? • 要怎麼進行文本分析? • 文本分析在實務上的困難與解方 • 總結&QA 18
  18. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 分群方法與分群數量

    20 觀察 WSS 分數來找 elbow 點作為分群組數 Kmeans 的迭代過程 Kmeans 外還有許多分群的方法 這邊僅做簡單的示範
  19. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 找各分群中的代表文本

    21 0 1 4 2 3 很爛,一直閃退 閃退一直進不去 APP一直閃退 閃退閃退閃退 改版後一直閃退 5 當掉很多次 0.857 0.872 0.887 0.855 0.866 0.797 群中心 群中心法 計算每個點距離群中心的距離,以最接近中心 的文本作為代表文本 最大相似度法 計算群內每個點彼此間的相關係數,取平均分數最高 的樣本作為代表文本
  20. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 斷詞器與結果比較

    22 Ref: google/sentencepiece: Unsupervised text tokenizer for Neural Network-based text generation. 晚上線上客服不好,自己兩分鐘就能解決的問 題還要花十分鐘跟八+九客服鬼打牆 跨行轉帳免費次數無預警取消,沒注意看被扣 了多筆手續費 晚上 / 線上 / 客服 / 不好 / , / 自己 / 兩分鐘 / 就 / 能 / 解決 / 的 / 問題 / 還要 / 花 / 十分 / 鐘跟八 / + / 九 / 客服 / 鬼 / 打牆 晚上 / 線上客服 / 不好 / , / 自己 / 兩分鐘 / 就能 / 解決 / 的問題 / 還要 / 花 / 十分鐘 / 跟 / 八 / + / 九 / 客服 / 鬼打牆 跨行 / 轉帳 / 免費次數 / 無 / 預警 / 取消 / , / 沒 / 注 意 / 看 / 被扣 / 了 / 多筆 / 手續費 跨行轉帳 / 免費 / 次數 / 無預警 / 取消 / , / 沒 / 注意 / 看 / 被扣 / 了 / 多筆 / 手續費 jieba sentencepiece 其實還是可以建立自定義詞典來優化 jieba 的斷詞結果 但就是會需要投(不少)時間處理正確性與顆粒度的議題
  21. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 找分群中的代表關鍵詞

    23 Ref: MaartenGr/BERTopic: Leveraging BERT and c-TF-IDF to create easily interpretable topics. Bertopic 提供了端到端的 topic modeling 解決方案, 但真正創新之處是提出 class-based 的 tf-idf 的方法 來找分群的代表詞(而且效果不錯) Classic TF-IDF class-based TF-IDF t: term, d: document, c: class A: 各類文本的平均詞數
  22. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 嘗試幫

    LLM 加上 Prompt 25 Ref: Computing Embeddings — Sentence Transformers documentation (sbert.net) Prompt: None(Default) Prompt: 根據以下文本內容辨識不同的討論話題: 加 Prompt 可以調整 embedding 的位置, 但需要根據模型/語料庫研究怎麼讓模型符合你的需求
  23. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Finetune

    26 Ref: Training and Finetuning Embedding Models with Sentence Transformers v3 Finetune LLM 除了需要 GPU 外, 真正辛苦(難)的地方在於要怎麼定義相似度與標註 登不進去 v.s. 改版後登不進去 v.s. 更新後連不上 v.s. 改版後閃退
  24. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 當

    LLM 遇上長文本 • 當文本長度超過 LLM 的限制時,如何處理文本資料就變成重要的課題 28 Ref: RetrievalTutorials/tutorials/LevelsOfTextSplitting/5_Levels_Of_Text_Splitting.ipynb 國泰產險你好 敝姓游很高興為你服務 我的強制險過期了嗎? 小姐你好 先請問您怎麼稱呼? 客服問候 客戶陳述問題 客服核資 客戶驗身 釐清客戶問題 推廣智能助理 祝福道別 客戶服務流程 議題討論 • Level 1: Character Splitting • Level 2: Recursive Character Text Splitting • Level 3: Document Specific Splitting • Level 4: Semantic Splitting • Level 5: Agentic Splitting
  25. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 分析

    – 加速 Directml 29 Ref: microsoft/DirectML: DirectML is a high-performance, hardware-accelerated DirectX 12 library for machine learning. Pytorch在cuda、AMD DirectML和AMD CPU下性能比较_directml与cuda 實驗: 生成 100 萬個樣本,訓練 100 個 epoch 的神經網絡模型
  26. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 Outline

    • 為什麼企業需要分析資料? • 要怎麼進行文本分析? • 文本分析在實務上的困難與解方 • 總結&QA 30
  27. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 話題分析圖

    • 嘗試分析 30,876 則 APP 留言 • 透過主題分析的方式自動挖掘出 k 個分群,以及各分群的數量與代 表文本 • 幫助企業快速掌握自己的產品有哪些問題, 以及處理的優先程度 • 裡面一定會存在一些沒有建設性的留言, 不過可以將心力放在能做出改變的事情上 就好 • 但其實也不用過度追求高滿意度,過度追 求很容易會做一些奇怪的事情 31 目前的視覺化結果還有許多可以優化的空間, 但要將 512 維的資料壓縮到 2 維空間做視覺化確實有些不容易
  28. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 總結

    • 不要害怕去擔任指出方向的角色 • 由於業務部門缺乏資料科學的知識與 技術,教難從宏觀的角度去檢視是否 有其他更重要的問題需要解決 • 當然數據部門也得有更大的企圖心去 幫企業解決問題,工作起來也會比較有 成就感 • 要有把手用髒的勇氣和決心 • 發現問題只是解決問題的第一步,更 重要的是你想怎麼解題 • 業務單位有自己的 KPI 要被,多站在 業務單位的角度去思考會讓專案比較 容易落地 32
  29. 游騰林 TENG-LIN YU | Mail: [email protected] NCCU - 資料視覺化工作坊 更多參考資料

    • 了解LDA,看完这篇文章就够啦 - 知乎 (zhihu.com) • 讓電腦聽懂人話: 直觀理解 Word2Vec 模型 | Medium • 如何最简单、通俗地理解Transformer? • 大模型词表扩充必备工具SentencePiece - 知乎 (zhihu.com) • BERTopic: Neural topic modeling with a class-based TF-IDF procedure (arxiv.org) 33