點擊率預估模型
0.前言
本篇是一個基礎機器學習入門篇文章,幫助我們熟悉機器學習中的神經網絡結構與使用。
日常中習慣于使用Python各種成熟的機器學習工具包,例如sklearn、TensorFlow等等,來快速搭建各種各樣的機器學習模型來解決各種業務問題。
本文將從零開始,僅僅利用基礎的numpy庫,使用Python實現一個最簡單的神經網絡(或者說是簡易的LR,因為LR就是一個單層的神經網絡),解決一個點擊率預估的問題。
1.假設一個業務場景
聲明:為了簡單起見,下面的一切設定從簡….
定義需要解決的問題:
老板:小李,這臺機器上有一批微博的點擊日志數據,你拿去分析一下,然后搞點擊率預測啥的…
是的,就是預測一篇微博是否會被用戶點擊(被點擊的概率)…..預測未來,貌似很神奇的樣子!
熱門微博
簡單的介紹一下加深的業務數據
每一條微博數據有由三部分構成: {微博id, 微博特征X, 微博點擊標志Y}
微博特征X有三個維度:
X={x0="該微博有娛樂明星”,x1="該微博有圖”,x2="該微博有表情”}
微博是否被點擊過的標志Y:
Y={y0=“點擊”, y1=“未點擊”}
數據有了,接下來需要設計一個模型,把數據輸入進去進行訓練之后,在預測階段,只需要輸入{微博id,微博特征X},模型就會輸出每一個微博id會被點擊的概率。
2.任務分析:
這是一個有監督的機器學習任務
對于有監督的機器學習任務,可以簡單的分為分類與回歸問題,這里我們簡單的想實現預測一條微博是否會被用戶點擊,預測目標是一個二值類別:點擊,或者不點擊,顯然可以當做一個分類問題。
所以,我們需要搭建一個分類模型(點擊率預測模型),這也就決定我們需要構建一個有監督學習的訓練數據集。
模型的選擇
選擇最簡單神經網絡模型,人工神經網絡有幾種不同類型的神經網絡,比如前饋神經網絡、卷積神經網絡及遞歸神經網絡等。本文將以簡單的前饋或感知神經網絡為例,這種類型的人工神經網絡是直接從前到后傳遞數據的,簡稱前向傳播過程。
3.數據準備:
整體的流程:
數據預處理(數值化編碼)——>特征篩選——>選擇模型(前饋神經網絡)——>訓練模型——>模型預測
新聞熱點
疑難解答