日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

基于深度学习模型WideDeep的推荐

發布時間:2024/8/23 pytorch 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于深度学习模型WideDeep的推荐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本實驗選用數據為UCI開源數據集,僅用于學習,請勿商用)

Wide&Deep推薦算法出自一篇論文《Wide&Deep Learning for RecommenderSystems》,Wide&Deep由兩部分組成,分別是Wide和Deep。先來說wide,表示的是generalized的推薦系統,傳統的推薦系統都是通過線性算法基于離散特征來做推薦的。Wide推薦通常是這樣的:系統通過獲得用戶的購物日志數據,包括用戶點擊哪些商品,購買過哪些商品,然后通過one-hot編碼的方式構成離散特征或者通過對業務的理解衍生出一些特征,并進行計算,類似于本系列文章第二篇。這種wide推薦方式有非常多的好處,比如對于大規模的稀疏數據有很好的效果,而且模型的解釋性很強。什么叫模型的解釋性呢?以邏輯回歸為例,每個特征都對應模型中的一個權重值,每個特征的權重值的大小跟這個特征對結果的影響是有關的。那么wide方式同樣有很多缺點,比如我們一直強調的,特征衍生需要很多人為操作,需要專家經驗,另外這種推薦只對用戶操作過的商品有效。

接著講下deep,這里的deep表示的是通過深度學習學習出來的一些向量,這些向量是隱性特征,往往是沒有明確可解釋性的。這些向量也可以作為特征的一部分參與到訓練中。通過deep方式產生的特征會有以下好處,其一可以擬補人為提取特征造成的人力思考維度的限制,試想下一個人可以輕易的思考出二階乘法的結果,如果是五階呢?其二這部分特征是深度學習框架自動生成的,無需人力干預。

既然Wide和Deep算法各有千秋,那如果可以將兩種算法作為組合,那么一定可以生成更有效的推薦場景的模型,本文就介紹如何在PAI-DSW上實現基于Wide&Deep的預測。

一、業務場景描述

本節使用的是PAI-DSW云端深度學習訓練平臺和PAI-EAS模型服務平臺,使用的是一份開源的基于人的各種背景的統計數據,解決的問題是基于人的各種基礎數據預測每個人收入是否會超過50K。

本實驗的全部代碼和數據已經內置于PAI-DSW,只要打開DSW就可以安裝下方的教程運行實驗。

二、數據集介紹

數據源:引用UCI開源數據源,https://archive.ics.uci.edu/ml/datasets/Census+Income
具體特征字段如下:

字段名含義類型描述
age對象年齡double對象的年齡大小
workclass工作性質string自由職業者、私企、企業人員、政府工作者、無業游民等
fnlwgt連續數據double-
education學歷string學士、說是、博士、11th、10th、1s-4th等等
education-num教育年限double教育年限
marital-status婚姻狀況string單身、未婚、離異等等
occupation職業string工程師、農民、銷售等等
relatonship家庭角色string妻子、父親、沒家庭等等
race人種string亞裔、白人、黑人等等
sex性別string女性、男性
capital-gain連續數據double-
capital-loss連續數據double-
hours-per-week連續數據double-
native-country祖籍國家string美國、哥倫比亞、英格蘭、加拿大等等

目標字段:income是否超過50k

三、數據探索流程

首先進入PAI-DSW,找到左側的Demo文件夾,下載Wide&Deep數據集及代碼包。

(1)工程描述

首先看下整個工程,

  • 包含一個census_data文件夾,里面包含一個訓練數據和一個測試數據
  • official文件夾是一個工具包
  • census_main.py為訓練腳本

(2)訓練模型

打開一個terminal環境,執行

python census_main.py --export_dir wide_deep_saved_model

wide_deep_saved_model為輸出模型所在的文件夾,訓練完在文件目錄下會找到相應文件,打開后可以看到checkpoint:

把這個checkpoint的號記住。

(3)模型預測

現在已經生成了模型的checkpoint輸出,接下來進入terminal,運行以下腳本:

saved_model_cli run --dir wide_deep_saved_model/${模型checkpoint號碼}/ --tag_set serve --signature_def="predict" --input_examples='${預測數據}'

根據本文的案例可以執行以下腳本拿到預測結果:

saved_model_cli run --dir wide_deep_saved_model/1542168326/ --tag_set serve --signature_def="predict" --input_examples='examples=[{"age":[46.], "education_num":[10.], "capital_gain":[7688.], "capital_loss":[0.], "hours_per_week":[38.]}, {"age":[24.], "education_num":[13.], "capital_gain":[0.], "capital_loss":[0.], "hours_per_week":[50.]}]'

輸入了兩條預測數據,最終拿到預測結果:

輸入了兩條預測數據,可以得到預測輸出,第一條預測結果為1,第二條結果為0,可以通過output key probabilities判斷(注:矩陣第一行對應第一個預測結果,第二列0.9599956>第一列0.04000434,所以第一個預測結果是1。同理第二個預測結果是0)。

可以通過代碼official/wide_deep/census_dataset.py來看具體的特征工程的特征和目標值的構建,目標列>50k時目標值為1,目標列<50k時目標值為0。

于是預測結果第一條的人的預測收入為>50k,預測結果第二條的人的預測收入<50k。

(4)模型在線部署

生成的模型是Tensorflow的標準模型格式,可以通過PAI-EAS將模型部署成Http服務供調用。

后續流程可以參考在線預測文檔:https://help.aliyun.com/document_detail/92917.html

部署成在線服務之后,這樣就可以做到模型跟用戶自身的業務結合,完成PAI模型訓練和業務應用的打通。


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的基于深度学习模型WideDeep的推荐的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。