Online Learning場景下實時新聞熱點機器學習訓練實踐

李博Garvin發表於2019-01-28

(機器學習PAI Online Learning模組上線邀測,目前只支援華北2(北京)區域使用,本實驗會用到流式機器學習演算法)
PAI地址:https://data.aliyun.com/product/learn
邀測申請地址:https://data.aliyun.com/paionlinelearning

開啟新聞客戶端,往往會收到熱點新聞推送相關的內容。新聞客戶端作為一個承載新聞的平臺,實時會產生大量的

新聞,如何快速挖掘出哪些新產生的新聞會成為成為熱點新聞,決定著整個平臺的新聞推薦質量。

如何從平臺中海量的新聞素材中找到最有潛力成為熱點的新聞需要使用機器學習相關的演算法,傳統做法是將每天獲取的歷史諮詢下載並且離線訓練模型,再將生成的熱點發現模型推上線供第二日使用。但是這種離線訓練所生成的模型往往缺乏時效性的屬性,因為每天熱點新聞都是實時產生的,用過去的模型預測實時產生的資料顯然是缺乏對資料時效性的理解。

針對這種場景,PAI平臺開創性的提出來Online-Learning的解決方案,通過流式演算法和離線演算法的結合,既能夠發揮離線訓練對大規模資料的強大處理能力,又能夠發揮流式機器學習演算法對實時模型的更新能力,做到流批同跑,完美解決模型時效性的問題。今天就以實時熱點新聞挖掘案例為例,為大家介紹PAI OnlineLearning的解決方案。

實驗流程

1.切換新版

進入PAI後,點選“體驗新版”按鈕即可開啟試用(目前OnlineLearning只支援新版,且與舊版不相容)可在模板中一鍵建立類似於本文介紹的案例,資料和流程都已經內建,開箱即用

模板開啟,點選執行後效果(模板目前為簡化版本)

2.實驗流程介紹

(注:PAI中離線計算元件用藍色標識,流式計算元件由綠色標識,流式元件相連將形成計算組,因為流式元件需要多個元件的執行停止狀態一致)

步驟1:離線模型訓練

本文使用的資料是3萬條來自UCI開放資料集提供的新聞文字資料。

地址:https://archive.ics.uci.edu/ml/datasets/Online+News+Popularity

資料組成:包含新聞的URL以及產生時間,另外還包含了58個特徵以及1個目標值,目標值“share”是新聞的分享次數,建模過程中將share欄位利用sql元件處理成一個二分類問題,新聞share次數超過10000次為熱點新聞,小於10000次為非熱門新聞

特徵的組成如下圖所示:

利用邏輯迴歸模型訓練生成一個二分類模型,這個模型用來評估新聞是否會成為熱點新聞。

(注:目前PAI OnlineLearning只支援邏輯迴歸演算法)

步驟2:離線模型轉換成流式模型

通過“模型轉換”元件,可以將離線生成的邏輯迴歸模型轉換成流式演算法可讀取的流式模型。

步驟3:流式模型訓練

從步驟3開始就進入了流式演算法元件的步驟,PAI平臺提供多種流式資料來源,本案例以Datahub為例。

Datahub地址:https://datahub.console.aliyun.com/datahub

Datahub是一種流式資料對列,支援JAVA、PYTHON等多種語言採集方式,在具體使用過程中可以通過Datahub連結使用者實時產生的資料以及PAI的訓練服務。注意:Datahub輸入的資料流格式需要與離線訓練的資料流的欄位完全一致,這樣才可以對離線的模型進行實時更新。

  • Ftrl訓練元件:左側輸入的是轉化為流式的離線模型,右側輸入是流式資料表

    FTRL演算法基本等同於流式的邏輯迴歸演算法,在使用過程中需要按照LR演算法配置引數,需要注意”模型儲存時間間隔引數“的配置,這個引數決定了實時計算產生模型的時間週期。

    新版PAI已經內建了大量流式演算法元件:

  • PMML模型生成元件:將輸出的模型轉化成PMML格式

  • OSS檔案匯出:將模型匯出到使用者自己的OSS中,可以自己設定名稱的字首和字尾,生成模型可在OSS中檢視,如下圖

步驟4:流式模型評估

流式模型評估指的是利用評估資料對Ftrl訓練生成的模型進行評估,輸出的評估指標也可以寫入OSS,評估指標與模型一一對應。每個模型和評估指標都有一個ID,如果ID一致,說明模型和評估指標是對應關係,如下圖:

評估指標是一個json格式檔案,包含精確率、準確率、混淆矩陣等指標:

步驟5:流式預測結果實時匯出

可以利用實時生成的模型做實時資料預測,實時的預測結果可以寫出到datahub中,如下圖:

同時如果輸入的預測資料集包含label,還可以新增分類評估元件,可以開啟組關係中的最右邊按鈕:

開啟實時的流式預測結果評估頁面:

3.模型使用介紹

通過以上步驟已經產生了新聞熱點預測模型,生成的模型已經存入OSS,可以直接在PAI-EAS線上預測服務引擎進行部署也可以下載下來在本地預測引擎使用。新聞資料進來後先要做特徵工程(同”步驟1:離線模型訓練“中的特徵處理方式),然後將特徵工程處理結果輸入”熱點新聞挖掘服務“,將會返回新聞是否是熱點新聞。

總結

通過本文的案例,實現了將離線歷史資料生成LR模型推送到實時訓練環境,再利用實時生成的資料對模型進行更新, 這種實時訓練的架構可以完美解決實時熱點新聞對於新聞推薦模型的影響問題。歡迎大家試用並給出建議。

相關文章