最近在做這個方向的工作,調研了一些文章,如下:

Image Feature Learning for Cold Start Problem in Display Advertising

這是15年騰訊發表在ijcai15的文章,是較早將圖像深度特徵應用於廣告CTR預估的工作之一,文章中的想法分為兩步:

  • 第一步:利用CNN,實現從原始圖片到用戶點擊情況的端到端的圖像特徵學習
  • 第二步:上一步訓練好的CNN用於抽取與點擊率相關的圖像特徵,結合廣告屬性的特徵訓練LR等模型來預估廣告點擊率

在第一步中,因為處理的都是人工設計的廣告物料,相對於imagenet簡單且雜訊小,若採用過大的模型會導致過擬合,所以文章設計了如下的結構:100*100圖像輸入 → 4層conv+Relu+max pooling → 3層FC → 二分類softmax(點擊率)

文章對22萬張訓練集圖片進行了數據增強,包括縮放和隨機裁剪,對3萬張測試集圖片隨機裁剪10次,將輸出概率均值作為預測結果。最後結果如下:左邊是只有圖片特徵,右邊為圖片特徵加廣告特徵,Feature Learning相較於其他幾種方法有較為顯著的提升。

Deep CTR Prediction in Display Advertising

是16年阿里發表在ACM MM16的工作,特徵提取與點擊率預估整合在一起,end to end訓練。

  • 左側的卷積網路用來提取圖像特徵,結構類似於 VGG16,是一個17層的深層卷積神經網路。因為網路結構較為複雜,文章先用圖像分類任務來解決CNN的預訓練的問題。
  • 右側是全連接層,輸入層是 one-hot embedding,用於訓練廣告基礎特徵,其中用到了ReLu做非線性變換。
  • 將兩側得到的各128維向量concat起來,經過一個BN層和兩個FC層,輸出softmax二分類

結果如下:

Image Matters: Visually modeling user behaviors using Advanced Model Server

是阿里發表在arxiv的工作,文章的創新點主要有兩個,

  • 物料側廣告圖像不僅僅用於表徵廣告,也用於用戶側建模,基於用戶歷史點擊過的圖片(user behavior images)來建模用戶的視覺偏好
  • 圖片特徵引入的大數據量成為技術瓶頸。阿里團隊為傳統 PS(參數伺服器) 的 server 也增加了「模型訓練」功能,並稱新結構為 Advanced Model Server(AMS)

模型和AMS架構如下,其中模型分三部分:

  • 廣告ID類Embedding特徵(黑色部分)
  • 廣告圖像特徵(粉色部分)
  • 用戶視覺偏好(藍色部分)

concat之後經過三層FC,輸出softmax二分類。

AMS架構部分在下面這篇文章講的很詳細,移步:

一圖勝千言: 解讀阿里的Deep Image CTR Model?

www.leiphone.com圖標

實驗結果如下:圖像特徵略微提升,但是添加用戶點擊圖像的特徵,邊際效益不高


可以參考阿里巴巴最近的工作:https://arxiv.org/pdf/1711.06505.pdf

聯合使用用戶交互過的圖片(不光是圖片id)和待預估的廣告圖片。由於要對圖片進行建模,實現上有非常大的挑戰,但是不是不可能做到,論文里也有較多的篇幅介紹如何實現。


CTR加入圖片特徵難度應該有兩點,1. 效果方面,因為點擊率預估是為特定的用戶,在特定的環境下推薦廣告,用戶是十億級的,而廣告一般是萬,十萬級的(一般曝光量大的廣告就更少了),也就是用戶維度是更難刻畫的,如果用戶的刻畫沒有很好的解決,廣告ID+推廣計劃ID基本就夠了(只說展示廣告,搜索廣告沒做過)。2. 速度方面,如果將圖片和其它特徵一起學習,速度會非常慢,曝光可能達到十億級,完全不可行。

我想過一個方法去解決,廣告維度的特徵只用廣告ID(能唯一決定圖片的ID),用戶和環境特徵不變,訓練數據只使用廣告ID曝光量大於一定數量級的廣告曝光。廣告ID通過Embedding方式表達,訓練完之後,就得到了每個廣告ID對應的embedding向量,這個向量(希望是)已經將定向和環境的因素剝離了。

有了每個廣告ID對應的Embedding向量,我再將每個廣告對應的圖片作為輸入,而學習的目標就是對應的Embedding向量。訓練完成後,有新的圖片進入系統後,會先用模型預測它的Embedding,而點擊率模型會將它預測出來的Embedding作為特徵進行訓練,可以有效地降低訓練時間。

呃,但是實踐中第一步就沒走通,我學習出來的廣告ID對應的Embedding效果並不好,兩個圖片完全相同的廣告往往Embedding有比較大的區別,但調參的時候,有時候還是能找出一些比較相似的方式。我之後就被派去做別的項目了,一直不清楚這方式是不是可行。

另外我把我想法講給另一個同事的時候,他說這是Transfer Learning中很常見的做法,也基本和原創無關了。


問題沒有附加的詳細描述,那我就按一般的思路來說了。

圖片特徵分兩端,一個是ad特徵這塊,一個是user特徵這塊。

首先看ad特徵,可利用如AlexNet,VGG等成熟的cnn模型,做fine-tunning。就是比如VGG後面三層全連接層是可學習的,把softmax層拿掉。

然後看user特徵,這塊可以拿過去一段時間用戶點擊過的ad對應的圖片序列,像上面說的用VGG抽取特徵後,再過一層lstm,然後可以用attention來做加權平均。attention可以與圖片本身的特徵,用戶畫像特徵,點擊時的上下文有關


謝邀。

transfer learning的思路


也不一定要end to end。如果你只需要簡單的分類特徵,用imagenet的pretrained最後的softmax應該就夠了,畢竟也有1000個類了。如果用softmax不放心那就用隱層作為feature。
接個cnn就行了,要end to end就直接接到最終loss,不要就先做其他任務,把倒數第二層結果拿過來。
不知使用特徵工程的方法,提取圖片的主體顏色 亮度等信息作為特徵加進去 ,會有效果嗎
推薦閱讀:
相关文章