# Use Case - From rule based recommendation to AI ## 請完善 Use case 中的企業背景描述,包含但不限於 - ### 產業別 - 電商產品廣告平台 - ### 商業模式 - 幫客戶的產品在網路上進行廣告投放與推薦,並將流量導向客戶的電商網站,以點擊(CPC)或轉化(CPA)計價收費。 - ### 簡易組織架構(包含公司規模、重要的部門) - 公司規模:150人 - R&D: - FE engineer: 15人 (負責前端user event埋點串接) - BE engineer: 15人(負責後端服務與管線建置開發) - Data engineer: 20人(負責data pipeline相關基礎設施建置與開發) - Algo/ML engineer: 20人(負責推薦演算法與機器學習模型之開發) - IT engineer: 20人(負責底層雲基礎設施建置與維護) - 非R&D: - Product manager: 10人 - Sales: 20人 - Marketing: 10人 - Labeling: 20人 - Others: 20人 - ### data team 人數以及組成 - 40人 data engineer + Algo/ML engineer ## 請完善 Use case 中的需求情境,包括但不限於 - ### 需求單位 - Project Manager/Product Owner, 想要一個基於AI的推薦系統(user/content based recommendation) - ### 對接單位 - BE - ### 提出需求的原因/目的/想達成的效果 - 原因:目前公司使用的rule-based推薦系統效果不佳,使用者歷程相關資料正在進行串接中,因此希望通過以AI為基礎的推薦系統,觀察使用者正在觀看的網頁內容(Content),挖掘潛使用者的潛在興趣產品。 - 目的:希望能升級推薦系統,使用演算法參考網頁資訊進行推薦。 - 想達成的效果:提升公司廣告平台產品的推薦的點擊率與轉化率。 - ### 需求單位期待的交付物,或需求單位期待如何使用這個服務/產品 - #### 需求單位期待的交付物 - 一套content based的推薦系統,至少含有下述功能,並具有擴增Feature的能力。 - Machine Learning Training Flow - Machine Learning Serving Flow - Data(content) Ingestion/Transformation Flow - Cache System for Serving - Monitoring Dashboard - #### 需求單位期待如何使用這個服務/產品 - 希望後端能無痛從rule-based服務方案切換至content-based的服務方案,獲得更準確的產品推薦結果。 - ### 需求單位期待的 SLA(Service level agreement) - CPC lifts 5% - 99% service up time - maximum 200 ms response time increase - ### 這需求對於企業/組織的價值 - 推薦使用者更感興趣的產品,能增加CPC或CPA,提升廣告主滿意度與企業獲利 ## 請初步設計來源資料來源資料的細節,包含但不限於 - ### 資料來源 - 前端追蹤: page_views, clicks, display_events - 爬蟲: document_meta, document_topics - 廣告後台: promoted_content - ### 資料格式 - page_views 瀏覽資料 -- 使用者看了那些文章和背景屬性 - user_id, document_id, timestamp, platform, geo_location, traffic_source - display_events 廣告曝光 -- 有關廣告曝光的資訊 - display_id, user_id, document_id, timestamp, platform, geo_location - clicks 點擊資料 -- 使用者在廣告列表裡點了哪篇文章 - display_id, ad_id, is_clicked - promoted_content 廣告內容 - ad_id, document_id, campaign_id, advertiser_id - document_meta 文章的內容資訊 -- 例如文章內的物體名稱,類別,主題,發行商 - document_id, source_domain_id, publisher_id, publish_time - document_topics 文章主題 - document_id, top_id, confidence_level - ### 資料量 - 每兩週 | Table Name | Data Size | Data Quantity | | -------- | -------- | -------- | | page_views | 10GB | 200 million rows| | display_events | 300MB | 2 million rows| | clicks | 200MB | 8 million rows| | promoted_content | 5MB | 6 thouthand rows| | documents_meta| 10MB | 300 thouthand rows| | documents_topics | 50MB | 1 million rows| - ### 資料速度(多久會增加多少資料) - page_views: 14M/day (EPS:162/s) - display_events: 140K/day - clicks: 570K/day - promoted_content: 400/day - documents_meta: 20K/day - documents_topics: 70K/day - ### 範例資料 - 範例描述: 在某情境下推給某使用者的內容推薦,每個內容推薦列表可能會被使用者點擊一個或多個的推薦。使用者(user_id)瀏覽網頁(document_id), 網頁有內容文章例如新聞。推薦曝光(display_id)發生在當使用者瀏覽網頁時被推薦多個廣告(ad_id),每個廣告屬於一檔由廣告主(advertiser_id)所舉辦的廣告活動(campaign_id)。 - Data Table Relation ![Data Table Relation](https://i.imgur.com/9VKfWFo.png) - page_views ![](https://i.imgur.com/DnnZqyS.png) - display_events ![](https://i.imgur.com/HFfpCw8.png) - clicks ![](https://i.imgur.com/mBDDkOe.png) - promoted_content ![](https://i.imgur.com/apoaRgv.png) - document_meta ![](https://i.imgur.com/zUD7mvl.png) - documnet_topics ![](https://i.imgur.com/ZQBalBx.png) - 請選擇公司的 IT 基礎建設,選項如下,每個選項至多兩組,請至 Google 表單填寫,先選先贏: - Others(Public + Private hybrid cloud) - Reference - [outbrain-click-prediction](https://www.kaggle.com/competitions/outbrain-click-prediction) - [how-feature-engineering-can-help-you-do-well-in-a-kaggle-competition-part-i](https://medium.com/unstructured/how-feature-engineering-can-help-you-do-well-in-a-kaggle-competition-part-i-9cc9a883514d)