機器學習對於文組人的意義?什麼是機器學習?
很常聽到文組轉職的人跟我說,機器學習的原理真的很難懂~背那些 python 語法,真的就可以理解資料科學嗎??甚至是,坊間很多教學打著「學好這些 python 套件就可以成為資料科學家??」這些真的是事實嗎??
其實我剛開始接觸資料科學的時候,也跟大家一樣霧煞煞。老師在講監督式、非監督式,然後帶 python 套件包,我心中只有很多問號,就是這跟我手上這些銷售數據有什麼關聯?
- 我不是應該先理解,我手上的數據,為什麼要用機器學習模型?
- 理解這個模型背後的原理跟處理流程
- 然後再去學對應的機器學習處理方法嗎?
所以,今天我想用文組人也聽得懂的方式,用最常見的電商應用場景:推薦系統
- 搭配資料庫 (excel)
- 帶出簡單數學及統計公式
來解釋機器學習的常見應用:推薦系統!!!
機器學習中的推薦系統是什麼?我們需要提前知道什麼?
推薦系統的白話文解釋?有哪些常見的模型?
- 推薦系統的白話文:利用手上的電商銷售數據,以機器學習的計算模型,達到個性化推薦 (千人千面)。當我們提供最適合「每個人」(也可稱:客製化) 的產品建議時,就「有機會」提高顧客滿意度和銷售量
- 推薦系統的機器學習計算模型有哪些?例如協同過濾 (Collaborative Filtering)、內容過濾 (Content-Based Filtering) 和混合模型 (Hybrid Models),達到個性化推薦 (千人千面)。這些模型的「最終選擇」取決於 (1) 你有的數據量 (2) 你想達到的目的 → 先不急看這些模型,後面會講到 XD
- 因此思考背後的:為什麼這樣用?這樣用的好處?評估最後的對於結果的影響 (impact) 才是主管們想知道的~ (尤其是如果公司沒有數據科學組,只是使用數據科學解決問題的組織)
推薦系統的電商案例拆解:數據庫、推薦系統邏輯、數據意義解釋!
- 數據庫有哪些資料?
- 數據庫中包含了用戶的行為數據,例如用戶與產品之間的互動過程:瀏覽產品、購買產品、加入購物車、從購物車中刪除產品的行為數據
- 推薦系統的邏輯?
- 推薦系統的邏輯包括根據用戶的歷史行為和喜好,通過算法計算出與之相似的用戶或產品,從而推薦相關的產品給用戶
- 剛提到的協同過濾 (Collaborative Filtering)、內容過濾 (Content-Based Filtering) 和混合模型 (Hybrid Models),待會都會再講到
- 必須搞懂的數學邏輯
- 在推薦系統中,需要用到一些數學邏輯:例如「餘弦相似度計算」和「矩陣」,來衡量用戶與產品之間的「相似度和關聯性」→ 這部分會是實作時要知道的概念,也會是今天的重點,待會也會再細講
推薦系統是什麼?如何做一個電商推薦系統?
資料庫有哪些資料?
我們是一間電商,我們有這些數據,可以看底下的 table:
- 商品的品類:大分類 + 小分類,如:electronics (電子類) + smartphone (手機)
- 商品品牌:如:apple、samsung
- 消費者與商品之間互動過的「行為」:如:view (瀏覽)、purchase (購買)、cart (加入購物車)、remove from cart (從購物車中刪除)
category_code | brand | event_type | user_id |
---|---|---|---|
electronics.smartphone | apple | view | 1 |
electronics.smartphone | samsung | purchase | 1 |
electronics.laptop | dell | cart | 2 |
home.furniture | ikea | view | 2 |
home.furniture | wayfair | remove from cart | 3 |
推薦系統的機器學習原理?必須用到的 3 大「數學及統計理論」有哪些?
第一大步:計算用戶對於產品的興趣
- 這一步是根據用戶的歷史行為來計算,例如用戶購買過某個產品,那麼我們就可以認為這個用戶對該產品有興趣。如果用戶只是瀏覽過,可以推測有一點點興趣。那「有興趣」、「一點點興趣」就可以用「數據量化」
- 比如說:’view’: 我給 1 分。’cart’: 我給 10 分。’remove from cart’: 我給 5 分。’purchase’: 我給 50 分
- Notice: 分數取決於每個組織的定義不同,對於商品及用戶的理解不同,會有不同的量化方法
- 計算用戶對於產品的興趣,步驟一:算出用戶及產品之間的興趣分數:例如:userid 為 1 的用戶,「view (看過)」electronics smartphone apple,因此被我貼上興趣分數的「1 分標籤」↓↓↓
userid (用戶) | category_brand (產品) | 興趣分數 |
---|---|---|
1 | electronics smartphone apple | 1 |
1 | electronics smartphone samsung | 50 |
2 | electronics laptop dell | 10 |
2 | home furniture ikea | 1 |
3 | home furniture wayfair | 5 |
- 計算用戶對於產品的興趣,步驟二:比對出用戶及所有產品之間的興趣分數,也有可能為 0。例如:userid 為 1 的用戶,「view (看過)」electronics smartphone apple,因此被我貼上興趣分數的「1 分標籤」; 除此之外,userid 為 1 的用戶還「purchase (買過)」electronics smartphone samsung,因此被我貼上興趣分數的「50 分標籤」,請看屬於 userid = 1 用戶的第一行 ↓↓↓
user_id | electronics laptop dell | electronics smartphone apple | electronics smartphone samsung | home furniture ikea | home furniture wayfair |
---|---|---|---|---|---|
1 | 0 | 1 | 50 | 0 | 0 |
2 | 10 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 0 | 5 |
第二大步:計算產品之間的相似度
- 這邊的數據邏輯是「餘弦相似度矩陣」:計算產品及產品之間的相似度,那這怎麼算呢??(這邊會是今天最複雜的部分)
- 計算產品之間的相似度,步驟一:產品類別「electronics laptop dell」我需要知道他的細部分類是什麼?
- 他是 electronics、laptop、dell,但他不是 home 或是 apple → 搞清楚這個產品類別的「標籤」標籤搞清楚之後,還會計算這個標籤在這個電商當中的重要性,這邊會用到一個統計概念:TF-IDF (Term Frequency-Inverse Document Frequency)會得到這樣一個結果最終會用向量表示:electronics laptop dell 的 TF-IDF 向量是 [0, 0.63907, 0.427993……(數據太多,這裡不完整展示)]你可以看到下面 table:electronics laptop dell 跟 apple 無關,分數為 0,跟 dell、electronics 有關,所以有分數↓↓↓
apple | dell | electronics | ……. | |
---|---|---|---|---|
electronics laptop dell | 0 | 0.63907 | 0.427993 | ……. |
- 計算產品之間的相似度,步驟二:每個產品背後的 TF-IDF 向量確定之後,就可以用數學概念:餘弦相似度用來衡量兩個向量之間的相似度,他可以算出兩個向量有「多像?」,最終你會得到這個結果:
- 比如說 electronics smartphone apple 跟 electronics smartphone apple 是一樣的,當然相似度為 1。electronics smartphone apple 跟 electronics smartphone samsung 有類似的地方但不完全一樣,相似度為 0.52368。以此類推,推斷出兩兩之間的相關性!↓↓↓
electronics smartphone apple | electronics smartphone samsung | electronics laptop dell | home furniture ikea | home furniture wayfair | |
---|---|---|---|---|---|
electronics smartphone apple | 1 | 0.52368 | 0.197822 | 0 | 0 |
electronics smartphone samsung | 0.52368 | 1 | 0.197822 | 0 | 0 |
electronics laptop dell | 0.197822 | 0.197822 | 1 | 0 | 0 |
home furniture ikea | 0 | 0 | 0 | 1 | 0.565563 |
home furniture wayfair | 0 | 0 | 0 | 0.565563 | 1 |
第三大步:將上述兩個結合:(1) 計算用戶對於產品的興趣 + (2) 計算產品之間的相似度 = 推薦用戶可能有興趣的產品給該用戶
(1) 反映出用戶對於每個商品「產生的」興趣:形成一個用戶-商品矩陣
(2) 透過商品標籤交叉比對商品之間的關聯性:形成一個商品-商品相似度矩陣
- 數學概念:矩陣是什麼?兩個矩陣的數字舉例:
- 矩陣是一種數學表示方式,用於存儲和操作數據。例如,我們有 (1) 用戶-商品矩陣、(2) 商品-商品相似度矩陣,這兩個「矩陣相乘」就可以得出用戶對於每個商品可能產生的最終興趣分數 (也稱為推薦分數)
- 以下為整合所有步驟的解釋!!!!↓↓↓
(步驟一) 矩陣一:user_id = 1 的用戶-商品矩陣 (這是一個 1×5 的矩陣,如下面的 table)
electronics laptop dell | electronics smartphone apple | electronics smartphone samsung | home furniture ikea | home furniture wayfair |
---|---|---|---|---|
0 | 1 | 50 | 0 | 0 |
(步驟二) 矩陣二:商品-商品相似度矩陣 (這是一個 5×5 的矩陣,如下面的 table)
electronics smartphone apple | electronics smartphone samsung | electronics laptop dell | home furniture ikea | home furniture wayfair | |
---|---|---|---|---|---|
electronics smartphone apple | 1 | 0.52368 | 0.197822 | 0 | 0 |
electronics smartphone samsung | 0.52368 | 1 | 0.197822 | 0 | 0 |
electronics laptop dell | 0.197822 | 0.197822 | 1 | 0 | 0 |
home furniture ikea | 0 | 0 | 0 | 1 | 0.565563 |
home furniture wayfair | 0 | 0 | 0 | 0.565563 | 1 |
(步驟三) 兩者相乘會變成一個 (1×5 的矩陣) = user_id 1 的用戶對於每個產品可能產生的最終興趣分數 (也稱為推薦分數)
推薦系統底層邏輯總結:3 個邏輯白話解析!
協同過濾 (Collaborative Filtering):到底是什麼?
協同過濾基於用戶行為數據,主要有兩種常見的方式:
- 用戶-用戶協同過濾 (User-User Collaborative Filtering)
- 根據相似用戶的行為來推薦物品。例如,如果用戶 A 和用戶 B 有相似的購買歷史,推薦系統會將用戶 B 喜歡但用戶 A 還沒買過的商品推薦給用戶 A
- 物品-物品協同過濾 (Item-Item Collaborative Filtering)
- 根據相似物品的用戶行為來推薦。例如,假設有一個用戶買了物品 X,我們計算出物品 X 和其他物品的相似度。假設物品 Y 和物品 X 的相似度很高,那麼我們就會將物品 Y 推薦給買了物品 X 的用戶
內容過濾 (Content-Based Filtering):到底是什麼?
內容過濾基於物品的特徵和用戶的喜好來推薦物品:
- 根據用戶過去喜歡的物品的特徵 (如類型、品牌、價格範圍等) 來推薦相似特徵的物品 → 今天解釋的範例就屬於這一個!!!全名為 Content-Based Filtering Recommender System
混合模型 (Hybrid Models):到底是什麼?
混合模型結合了協同過濾和內容過濾的優點,提供更細緻 + 全面的推薦系統
- 方法一:將上面兩者的結果結合
- 可以同時考慮用戶行為數據和物品特徵數據,給出綜合的推薦結果
- 例如,先用內容過濾生成初步推薦,再用協同過濾進行微調
- 也可以為每種方法設置權重,根據權重計算最終推薦結果
- 初學時建議先拆開把兩者背後的理論 (數學、統計、程式語言) 搞懂,再來操作混合模型!(下方會有我整理好的更詳細的理論 + 實作包 可以下載~~)
結論一:複習一下 3 大機器學習模型 & 統計及數學理論
3 大機器學習模型,怎麼選擇?
一開始文中提到的:推薦系統的機器學習計算模型有哪些?
當我們討論到推薦系統的機器學習計算模型時,主要涵蓋了協同過濾 (Collaborative Filtering)、內容過濾 (Content-Based Filtering) 和混合模型 (Hybrid Models)。這些模型都旨在實現個性化推薦。模型的選擇取決於你擁有的數據量和你想要達成的目標!
怎麼評估要用哪種?
- 協同過濾:依賴用戶行為數據,適合已有大量用戶行為數據的情境
- 內容過濾:依賴物品特徵和一些些用戶偏好的數據,適合物品特徵明確 & 用戶偏好有基本數據的情境
- 混合模型:結合兩者優勢,適合需要兼顧行為數據和物品特徵的情境
複習統計及數學理論
在今天的電商案例中,我們聚焦於內容過濾 (Content-Based Filtering),其中提到三個關鍵的數學和統計理論:
- 統計概念:TF-IDF (Term Frequency-Inverse Document Frequency) — 這是一種用於評估字詞對於一個文件集或一個語料庫中的其中一份文件的「重要性」的「數字統計」。這有助於處理和分析非常大的文本數據集
- 隨著技術發展的進步,評估一份文件中字詞「重要性」的「數字統計」可以使用大語言模型 (LLM) 判斷嗎?→ 當然可以,但要注意資料需求、計算成本和效果評估等方面的問題 → 所以我才會說,理解統計背後概念太重要了,不然不會知道「要選擇哪個模型才適合自己?」
- 數學概念:餘弦相似度 — 這個概念用於衡量兩個向量在多維空間中的相似度計算,即使它們的大小不同,通過計算這兩個向量的角度的餘弦值來確定它們之間的相似性
- 數學概念:矩陣 — 在推薦系統中,矩陣用於存儲用戶對產品的興趣分數或產品與產品之間的相似度分數,這些矩陣可以通過各種矩陣運算來預測用戶的偏好或推薦產品
所以,機器學習難道只是用 python 中的工具包嗎?
透過剛剛我的簡述,你應該也發現了,機器學習 (我們今天還只講推薦系統這個部分) 除了 Python 之外,還結合了電商的數據知識、數學、統計、程式能力!!
所以不論如何,今天只要能夠讓你帶走這個觀念,也算是達到我希望傳遞的觀念之一了~
結論二:以使用情境回去推測需要用到的機器學習模型,才是初學者的學習捷徑!
對於剛接觸機器學習的文組人來說,從具體的應用場景出發,推測哪種機器學習模型適合解決手頭上的問題,是一條「比較有效的」學習捷徑。這不僅能幫助理解模型的具體應用方式,還能加深對數據科學背後原理的理解,才不會學而無用、觀念離實際場景遠到不行~
透過這種方式,文組轉職者就可以稍微切入機器學習的技術應用,還可以理解他在資料分析現實世界中的實際價值跟應用場景!
如果你希望在轉職的時候,作品集中可以加入機器學習的概念,一定要切記:
- 不要亂套模型跟語法
- 從具體的應用場景出發,搞懂「為什麼非得用到機器學習?」
- 透過具體場景,加深自己對於數據、統計、程式語言比較薄弱的觀念
今天講的是故事、觀念,如果需要整理好的:
- excel 解析
- python code
- 詳細的理論白話解析 (數學、統計
可以到下方填寫 email 下載~~