Dan Chen | Data Scientist @LINE Taiwan EC Dev
活動主辦單位:Taiwan Data Science Meetup 台灣資料科學社群
本次講座邀請了在 LINE Taiwan EC Dev擔任 Data Scientist 的 Dan Chen 來分享 LINE Shopping 的推薦系統情境以及對應的推薦系統設計,講座內容主要分成 5 段:
Dan Chen 目前在 LINE Taiwan EC Dev 擔任 Data Scientist,專案經歷涵蓋多方領域,包含電信、金融、工廠及廣告等,並曾擔任過新創資料顧問,並著有《 Towards Tensorflow 2.0 — 無痛打造 AI 模型 》一書,本次主要介紹 LINE Shopping 的情境式推薦系統。
瀏覽行為本身就帶有情境,點擊到不同的頁面也可能意味著不同的情境,如
LINE Shopping 推薦場景分類— 講者投影片 [1]
Q1 : 很多商品都有容易過期的特性,電商的商品特性也不例外,新上架的商品會很熱門,而熱門期過了之後也會很快的失去熱度,然後一般推薦系統所著重的互動資料,可能還會推薦已經過熱門期的商品。
電商常見問題 1 — 講者投影片 [2]
Q2 : 難以得知使用者當前意圖,例如知道使用者喜歡 iPhone,新款 Iphone 上架了,使用者究竟是喜歡最新的 iPhone 還是上一代價格大跳水的 iPhone?
電商常見問題 2— 講者投影片 [3]
Q3 : 如何讓 Stakeholder (Planner / PM),得知目前推薦系統的成效? 如何將 Stakeholder 想要優化的指標與推薦系統做掛鉤?
由於商業場景的特性關係,LINE Shopping 使用者旅程 ( User Journey ) 中,資料顯示使用者對於 LINE SHOPPING App 有更多的互動行為( Search, View, Click ),並不等價形成轉換 (下單 / 加入購物車)。透過資料探索發現往往一搜尋就買、一 點擊就買,這對於推薦系統形成了一個挑戰。
電商常見問題 3— 講者投影片 [4]
LINE EC Dev 內部有一套稱為 Brickmaster 的推薦系統,就是設計來解決上述 3 個問題,整體的技術架構是兩階段的模型。
LINE EC Dev 所設計的推薦系統解決方案— 講者投影片 [5]
基礎建設可拆成五個模組,Tech stack 按照計算框架 / 資料儲存 / 服務提供 / 排程管理 / ML 實驗管理,有使用到的工具如下:
LINE EC DEV Tech Stack— 講者投影片 [6]
資料流架構能拆成以下五個階段:
LINE EC DEV Tech Stack — 講者投影片 [6]
不同算法模組的目標也不同,如 Candidate Generation 是第一階段粗篩,所以目標會是 Recall,而非 Precision,但 Ranking 階段已經進入精確排序,就必須著重在 Precision。
根據推薦情境不同,也需要能夠針對推薦情境決定 Candidates Generation 需要粗排序的數量,例如 1000品 or 5000品,另一方面,不同的推薦情境也有不同的優化指標。
LINE EC DEV 資料流架構與側重指標— 講者投影片 [7]
透過 mlflow 來做實驗管理,Evaluation Report 有分成以下三個 Metrics,如果發現相關指標大幅下降,就會請相關職能的人員協助:
Model metrics — Top-N metrics (e.g. MAP, NDCG):
Business metrics — CTR, CVR, GMV:
Overview metrics — Diversity / Coverage:
LINE EC DEV 推薦系統離線驗證流程— 講者投影片 [8]
A/B Testing — 雖然市面上有很多的服務,但基於公司內部的政策,由 LINE EC Dev 團隊自己搭建的,目前都還需要人工設定,還沒有進行完整自動化。
LINE EC DEV 推薦系統線上驗證流程 — 講者投影片 [9]
電商推薦系統特徵與原始資料分類表— 講者投影片 [10]
另一方面,文字特徵需要特別做處理,多半聚焦在商品名稱和商品描述:
電商推薦系統特徵與產品名稱處理流程— 講者投影片 [11]
LINE Shopping 的點擊和其實和廣告很像, CTR 偏低,因此在資料預處理上也需要一些手段來增強訓練成果 (如 negative sampling),在目前的實驗中,類 YouTube 的 DNN 有比較好的表現。
在推論階段,由於計算複雜度的關係,資料量大的情況下會採用 Locality Sensitive Hashing 的技巧將 User Embedding 和 Item Embedding 做媒合,產生 Candidates。
電商推薦系統 — Candidate Generation — 講者投影片 [12]
排序階段主要會將排序目標和 Stakeholder (Planner, PM) 的專案目標對齊,並設計適合的特徵,例如有的場景更關心使用者點擊量,那麼須將優化目標調整成最小化下次點擊時間,有的場景希望使用者 和 App 互動更多,則最大化使用者的 Session Duration。
電商推薦系統 — Ranking— 講者投影片 [13]
Monitoring
穩定性除了會監看 DAG 的執行狀態,也會看缺失值、outlier 是否過多,超過一定的標準就會發出 slack alert。
電商推薦系統 — 資料品質檢測— 講者投影片 [14]
總結來說,在 Candidates Generations 時,主要關注的是使用者興趣,系統是否能找出使用者會有興趣的商品,而在 Ranking 階段,不同的場景會有不同的優化目標,就能進針對不同目標進行排序。
演算法架構和商業目標對應表— 講者投影片 [15]
設計推薦系統時也期望媒合到商業目標,如希望點擊量提升,可設計成最小化下一次的點擊時間差,如果是希望增強使用者互動,則會最大化 Session Duration。
將商業指標轉換為推薦系統問題對應表— 講者投影片 [16]
Q1. 想請問電商場景中,使用者興趣變化非常大,模型訓練的頻率?
Q2. 是否有特殊的特徵萃取工程,以及 User, Item 如何做選取,來避免維度爆炸?
Q3. 根據你們的架構,是否有使用到 realtime 的推薦呢? 還是主要是先算好推薦結果,再進行 Serving?
Q4. 如何衡量 diversity / coverage?
Q5. 如果提升了 CTR,但整體使用者體驗下降 (如購買金額、或者商品頁閱讀完成度),會怎麼處理?
筆手 : Joe Tsai