保障離線在線一致性的CTR預(yù)估方案
本案例使用經(jīng)典的CTR點擊率預(yù)估數(shù)據(jù)集Avazu進(jìn)行一體化模型訓(xùn)練,并將離線調(diào)試完成的歸一化預(yù)測->獨熱編碼預(yù)測->向量聚合->FM預(yù)測流程完整部署到EAS。您在線上環(huán)境進(jìn)行模型預(yù)測時,也可以使用離線訓(xùn)練時的數(shù)據(jù)預(yù)處理和特征工程邏輯,以保障線上線下處理流程的一致性。
前提條件
已創(chuàng)建工作空間,詳情請參見創(chuàng)建工作空間。
已將MaxCompute資源關(guān)聯(lián)到工作空間,詳情請參見管理工作空間。
數(shù)據(jù)集
Avazu是經(jīng)典的CTR點擊率預(yù)估數(shù)據(jù)集,PAI使用了Avazu的一個子集(包括20萬條樣本數(shù)據(jù):訓(xùn)練集16萬條;預(yù)測集4萬條)構(gòu)建點擊率預(yù)估流程。數(shù)據(jù)詳情請查看Avazu,具體的字段如下。
列名 | 類型 | 描述 |
id | STRING | 廣告ID |
click | DOUBLE | 是否點擊 |
dt_year | INT | 點擊的年份 |
dt_month | INT | 點擊的月份 |
dt_day | INT | 點擊的時間(天) |
dt_hour | INT | 點擊的時間(小時) |
c1 | STRING | 匿名的離散變量 |
banner_pos | INT | 標(biāo)題的位置 |
site_id | STRING | 地點ID |
site_domain | STRING | 地點Domain |
site_category | STRING | 地點類別 |
app_id | STRING | 應(yīng)用ID |
app_domain | STRING | 應(yīng)用Domain |
app_category | STRING | 應(yīng)用類別 |
device_id | STRING | 設(shè)備ID |
device_ip | STRING | 設(shè)備IP |
device_model | STRING | 設(shè)備模型 |
device_type | STRING | 設(shè)備類型 |
device_conn_type | STRING | 設(shè)備連接類型 |
c14 - c21 | DOUBLE | 匿名離散變量(共8列) |
操作步驟
進(jìn)入Designer頁面。
登錄PAI控制臺。
在左側(cè)導(dǎo)航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進(jìn)入對應(yīng)的工作空間。
在工作空間頁面的左側(cè)導(dǎo)航欄選擇 ,進(jìn)入Designer頁面。
構(gòu)建工作流。
在Designer頁面,單擊預(yù)置模板頁簽。
在模板列表的保障離在線一致性的CTR預(yù)估方案區(qū)域,單擊創(chuàng)建。
在新建工作流對話框配置以下關(guān)鍵參數(shù),其他參數(shù)可以使用默認(rèn)配置。
其中:工作流數(shù)據(jù)存儲配置為OSS Bucket路徑,用于存儲工作流運行中產(chǎn)出的臨時數(shù)據(jù)和模型。
單擊確定。
您需要等待大約十秒鐘,工作流可以創(chuàng)建成功。
在工作流列表,雙擊保障離在線一致性的CTR預(yù)估方案工作流,進(jìn)入工作流。
通過模板創(chuàng)建的工作流,如下圖所示。
在該工作流中,PAI將特征分為以下兩類:
數(shù)值型特征:PAI使用歸一化算法,將特征做歸一化處理。
離散型特征:PAI使用獨熱編碼組件處理。最后將兩類特征融合成一個向量,并使用FM算法訓(xùn)練模型并推理。
運行工作流并查看輸出結(jié)果。
單擊畫布上方的。
工作流運行結(jié)束后,右鍵單擊畫布中的二分類評估-1,在快捷菜單,單擊可視化分析,或直接單擊畫布上方的。
在二分類評估-1對話框指標(biāo)數(shù)據(jù)頁簽,查看預(yù)估準(zhǔn)確率。
如果指標(biāo)滿足要求,您可以將數(shù)據(jù)預(yù)處理、特征工程、模型預(yù)測的完整流程打包,并部署至EAS。
在畫布上方,單擊制作Pipeline模型。
手動選中歸一化批預(yù)測-2節(jié)點后(會自動選中右側(cè)的完整鏈路),單擊下一步。會把選中需要部署的數(shù)據(jù)處理鏈路和用到的模型打包成一個Pipeline模型。
在制作Pipeline模型對話框,確認(rèn)模型打包信息,并單擊下一步,啟動Pipeline模型打包任務(wù)。打包任務(wù)大概需要3~5分鐘即可完成。
部署模型服務(wù)。
方式一:在制作Pipeline模型對話框,當(dāng)運行狀態(tài)為成功時,單擊部署至EAS,會跳轉(zhuǎn)到EAS控制臺。配置服務(wù)名稱和資源部署信息后,單擊部署,即可完成模型部署,更多詳細(xì)內(nèi)容,請參見Pipeline部署在線服務(wù)。
方式二:如果制作Pipeline模型對話框已關(guān)閉,您可以在畫布右上方單擊全部任務(wù)查看,在歷史任務(wù)對話框,查看制作任務(wù)運行狀態(tài)。當(dāng)狀態(tài)為成功時:
您可以單擊操作列下的模型>部署,并按照控制臺操作指引部署模型服務(wù)。
您也可以單擊畫布上方的模型列表,在模型列表中選中打包的模型,單擊部署至EAS并按照控制臺操作指引部署模型服務(wù)。
在EAS控制臺,單擊已部署好的服務(wù)操作列下的在線調(diào)試,對服務(wù)進(jìn)行在線調(diào)試,更多詳細(xì)內(nèi)容,請參見服務(wù)在線調(diào)試。
其中:Body區(qū)域的請求數(shù)據(jù)可以輸入和數(shù)據(jù)集相同結(jié)構(gòu)的測試數(shù)據(jù),例如:
[{"id":"10000169349117863715","click":0.0,"dt_year":14,"dt_month":10,"dt_day":21,"dt_hour":0,"C1":"1005","banner_pos":0,"site_id":"1fbe01fe","site_domain":"f3845767","site_category":"28905ebd","app_id":"ecad2386","app_domain":"7801e8d9","app_category":"07d7df22","device_id":"a99f214a","device_ip":"96809ac8","device_model":"711ee120","device_type":"1","device_conn_type":"0","c14":15704.0,"c15":320.0,"c16":50.0,"c17":1722.0,"c18":0,"c19":35.0,"c20":100084.0,"c21":79.0}]
該數(shù)據(jù)在服務(wù)中會順序進(jìn)行歸一化預(yù)測->獨熱編碼預(yù)測->向量聚合->FM預(yù)測,最終得到如下預(yù)測結(jié)果。