本發(fā)明涉及計算機處理技術(shù)領(lǐng)域,尤其涉及一種廣告投放方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,通過互聯(lián)網(wǎng)獲取產(chǎn)品信息成為人們生活的一部分。
商家為了提高知名度,推廣產(chǎn)品,往往通過互聯(lián)網(wǎng)投放廣告。通常有兩種方式,一種是通過自然搜索的方式,另一種是通過競爭推廣的方式。第一種方式競爭比較激烈,優(yōu)化周期較長,因此,很多商家會選擇更加快捷的第二種方式。
競爭推廣是一個多方參與的博弈系統(tǒng),包括:
廣告主的利益(產(chǎn)出投入比,ROI);網(wǎng)絡(luò)用戶/搜索引擎的利益(用戶體驗,盡量少廣告,盡量高的點擊率,CTR);廣告平臺的利益(廣告收入)。
業(yè)內(nèi)進行廣告投放時,都是使用了基于廣告點擊率預(yù)估的方法對廣告進行排序。大多采用LR(Logistic Regression,邏輯回歸)模型和FM(Factorization Machines)模型,其中:
LR模型是一個簡單的線性模型,不能直接建立特征之間的相關(guān)性;需要通過耗時耗力的特征工程(對某些特征聚類等等)對樣本進行處理才能預(yù)估點擊率;特征直接相關(guān)容易造成數(shù)據(jù)稀疏和模型過擬合(數(shù)據(jù)長尾性),從而導(dǎo)致點擊率預(yù)估準確度降低。
FM模型中有些特征相關(guān)是浪費的,降低了模型的擬合能力;計算速度相比LR模型要慢很多。
由于基于LR模型點擊率預(yù)估準確率較低,導(dǎo)致排序的效果較差,會使得能滿足用戶需求的產(chǎn)品信息的排序很低,使得其展示的位置靠后,甚至無法展示;而FM模型速度過慢,不適于商業(yè)應(yīng)用,導(dǎo)致以下問題:
一方面,這些不匹配用戶需求的產(chǎn)品信息不僅占用了平臺服務(wù)器的資源,而且還占用了客戶端的資源,造成不必要的資源占用與浪費。
另一方面,用戶需要獲取自己感興趣的產(chǎn)品信息,可能需要進行多次翻頁操作,甚至再次去其他平臺進行搜索,再次進行海量信息的搜索、對比、篩選等獲取相關(guān)的產(chǎn)品信息,操作更加繁瑣,耗費用戶的時間,降低用戶的使用體驗,而且,將大大增加其他平臺服務(wù)器和客戶端的資源消耗。
因此,需要提高CTR預(yù)估準確率,以讓所有參與方受益。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種廣告投放方法和裝置,以克服上述問題或者至少部分地解決或者減緩上述問題的缺點。
根據(jù)本發(fā)明的一個方面,提供了一種廣告投放方法,包括以下步驟:
從群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù);
對所述廣告點擊率特征參數(shù)進行分類,得到多個特征分組;
對所述多個特征組進行因子分解,獲得分組因子分解模型;
對所述分組因子分解模型進行迭代,獲得預(yù)估廣告點擊率;
根據(jù)預(yù)估廣告點擊率,進行廣告投放。
可選地,所述從群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù)包括:
對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣;
從采樣后的群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù)。
可選地,所述采樣后的群體用戶歷史搜索記錄包括:
未采樣的點擊廣告數(shù)據(jù)和采樣的非點擊廣告數(shù)據(jù)的全體用戶歷史搜索記錄。
可選地,所述對所述特征參數(shù)進行分類,得到多個特征分組包括:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù);
根據(jù)獲取的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù),對廣告點擊率特征參數(shù)進行分類。
可選地,所述根據(jù)獲取的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù),對廣告點擊率特征參數(shù)進行分類包括:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù)和;
如所述相關(guān)系數(shù)和小于設(shè)定值,將其單獨劃分為一個特征分組;
如所述相關(guān)系數(shù)和大于設(shè)定值,將其與其他廣告點擊率特征參數(shù)劃分為同一個特征分組。
可選地,所述對所述多個特征組進行因子分解,獲得分組因子分解模型包括:
對多個特征組與篩選分組進行因子分解,獲得分組因子分解模型;其中,所述篩選分組為不涉及相關(guān)性的特征參數(shù)。
可選地,所述對所述分組因子分解模型進行迭代,獲得預(yù)估廣告點擊率包括:
對分組因子分解模型采用FTRL方式進行迭代。
可選地,所述根據(jù)預(yù)估廣告點擊率,進行廣告投放包括:
對預(yù)估廣告點擊率進行校準,校準方法如下:校準后點擊率=預(yù)估點擊率/(預(yù)估點擊率+(1-預(yù)估點擊率)/采樣率)。
根據(jù)本發(fā)明的另一個方面,提供了一種廣告投放裝置,包括:特征參數(shù)獲取模塊、特征分類模塊、特征因子分解模塊、點擊率預(yù)估模塊和廣告投放模塊,其中,
所述特征參數(shù)獲取模塊用于從群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù);
所述特征分類模塊用于對所述廣告點擊率特征參數(shù)進行分類,得到多個特征分組;
所述特征因子分解模塊用于對所述多個特征組進行因子分解,獲得分組因子分解模型;
所述點擊率預(yù)估模塊用于對所述分組因子分解模型進行迭代,獲 得預(yù)估廣點擊率;
所述廣告投放模塊用于根據(jù)預(yù)估廣告點擊率,進行廣告投放。
可選地,所述特征參數(shù)獲取模塊還用于:
對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣;
從采樣后的群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù)。
可選地,所述采樣后的群體用戶歷史搜索記錄包括:
未采樣的點擊廣告數(shù)據(jù)和采樣的非點擊廣告數(shù)據(jù)的全體用戶歷史搜索記錄。
可選地,所述特征分類模塊還用于:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù);
根據(jù)獲取的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù),對廣告點擊率特征參數(shù)進行分類。
可選地,所述特征分類模塊還用于:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù)和;
如所述相關(guān)系數(shù)和小于設(shè)定值,將其單獨劃分為一個特征分組;
如所述相關(guān)系數(shù)和大于設(shè)定值,將其與其他廣告點擊率特征參數(shù)劃分為同一個特征分組。
可選地,所述特征因子分解模塊還用于:
對多個特征組與篩選分組進行因子分解,獲得分組因子分解模型;其中,所述篩選分組為不涉及相關(guān)性的特征參數(shù)。
可選地,點擊率預(yù)估模塊采用FTRL方式進行迭代,得到分組因子分解模型。
可選地,所述廣告投放模塊還用于:
對預(yù)估廣告點擊率進行校準,校準方法如下:校準后點擊率=預(yù)估點擊率/(預(yù)估點擊率+(1-預(yù)估點擊率)/采樣率)。
本發(fā)明的有益效果為:
本發(fā)明廣告投放方法及裝置,通過對廣告特征參數(shù)之間的相關(guān)關(guān) 系進行分類,訓(xùn)練模型參數(shù),降低了訓(xùn)練的計算量,同時使得模型更容易收斂,提高了預(yù)估點擊率。根據(jù)所述預(yù)估點擊率對業(yè)務(wù)對象進行展示,提高了滿足用戶需求的業(yè)務(wù)對象的展示幾率,避免用戶多次翻頁操作或者去其他平臺進行搜索,提高了操作的簡便性,減少用戶時間的耗費,提高用戶體驗,增加用戶使用滿意度。降低了服務(wù)器、客戶端的資源占用與浪費。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示意性示出了根據(jù)本發(fā)明一個實施例的廣告投放方法的流程圖;
圖2示意性示出了根據(jù)本發(fā)明一個實施例的獲取廣告點擊率特征參數(shù)的流程圖;
圖3示意性示出了根據(jù)本發(fā)明一個實施例的對特征參數(shù)進行分類的流程圖;
圖4示意性示出了根據(jù)本發(fā)明一個實施例的廣告投放裝置的示意圖。
具體實施例
下面結(jié)合附圖和具體的實施方式對本發(fā)明公開的示例性實施例作進一步的描述。
如圖1所示,根據(jù)本發(fā)明一個實施例的,具體可以包括以下步驟:
步驟101,從群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù)。
本發(fā)明實施例可以應(yīng)用與網(wǎng)絡(luò)平臺,為獨立的服務(wù)器或服務(wù)器集群,如分布式系統(tǒng),存儲了海量的廣告數(shù)據(jù)。
在實際應(yīng)用中,用戶通過瀏覽器提供的搜索欄輸入搜索詞;瀏覽器將所述搜索詞封裝到搜索請求中發(fā)送給搜索引擎;搜索引擎根據(jù)所述搜索詞在數(shù)據(jù)庫中進行搜索,如搜索與所述關(guān)鍵詞相關(guān)的廣告數(shù)據(jù);根據(jù)預(yù)估點擊率對所述廣告數(shù)據(jù)進行排序;在瀏覽器的頁面中向用戶展示排序靠前的預(yù)定數(shù)量廣告數(shù)據(jù)。
上述搜索過程被記錄在群體用戶歷史搜索記錄中,并且包括廣告點擊率特征參數(shù),所述廣告點擊率特征參數(shù)可包括廣告特征參數(shù)和用戶特征參數(shù),所述廣告特征參數(shù)可包括廣告ID、文字、圖片、類別等;所述用戶特征參數(shù)可包括用戶ID、性別、年齡、IP地址、用戶搜索詞等。
由于點擊率總體很小(百分之幾),而本發(fā)明實施例更關(guān)心的是展現(xiàn)后是否被點擊,點擊相對非點擊對模型的訓(xùn)練更重要。所以可以對非點擊進行采樣,采樣后對模型的預(yù)測效果影響很小,但是可以大量減少訓(xùn)練集的數(shù)據(jù)量,通過減少數(shù)據(jù)量進而減少計算量,降低了系統(tǒng)資源消耗,加快了運算速度,如采樣10%,則可加速近10倍。
如圖2所示,在一個實施中,步驟101可以包括以下子步驟:
步驟1011,對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣;
步驟1012,從采樣后的群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù),其中,所述采樣后的群體用戶歷史搜索記錄包括未采樣的點擊廣告數(shù)據(jù)和采樣的非點擊廣告數(shù)據(jù)的全體用戶歷史搜索記錄。
由于所述廣告點擊率特征參數(shù)都是人為的邏輯表達,因此,獲取廣告點擊率特征參數(shù)之后,需要對其進行特征學(xué)習(xí)(Feature Learning),作為模型訓(xùn)練的輸入向量。
特征學(xué)習(xí)作為機器學(xué)習(xí)的組成部分,主要用于對數(shù)據(jù)的特征進行理解,從而幫助建立更好的模型。特征學(xué)習(xí)主要包括特征規(guī)整(Feature Normalization)和類屬特征轉(zhuǎn)換。特征規(guī)整負責將一些特征進行歸一化處理,以方便比較。類屬特征轉(zhuǎn)換負責將特征參數(shù)轉(zhuǎn)換為可被機器識別的數(shù)值。實現(xiàn)類屬特征轉(zhuǎn)換最常見的方法是利用獨熱編碼(One-Hot Coding)進行向量化。使用獨熱編碼將所述廣告點擊率特征參數(shù)轉(zhuǎn)換為可被機器識別的數(shù)值,作為下一步訓(xùn)練模型的輸入向量。
步驟102,對所述特征參數(shù)進行分類,得到多個特征分組。
具體地,如圖3所示,根據(jù)步驟101獲取的廣告點擊率特征參數(shù)的相關(guān)性,對所述廣告點擊率特征參數(shù)進行分類,得到多個特征分組;包括以下子步驟:
步驟1021,計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù);兩種廣告點擊率特征參數(shù)的相關(guān)系數(shù)越大,代表其相關(guān)性越高;
步驟1022,根據(jù)步驟1021獲取的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù),對廣告點擊率特征參數(shù)進行分類;具體包括:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù)和;
如所述相關(guān)系數(shù)和小于設(shè)定值,則認為該廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)相關(guān)性較差,即該廣告點擊率特征參數(shù)對廣告點擊率特征的顯著性較強,因此將其單獨劃分為一個特征分組;
如所述相關(guān)系數(shù)和大于設(shè)定值,則認為該廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)相關(guān)性較強,即該廣告點擊率特征參數(shù)對廣告點擊率特征的顯著性較差,因此將相關(guān)系數(shù)和大于設(shè)定值的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)劃分為同一個特征分組。
步驟103,對步驟102得到的多個特征組與篩選分組進行因子分解,獲得分組因子分解模型。
其中,所述篩選分組為不涉及相關(guān)性的特征參數(shù),例如,廣告數(shù)據(jù)的展示位置等。
本發(fā)明實施例是基于分組進行因子分解,重新定義并推導(dǎo)(導(dǎo)數(shù))FM模型,得到了GFM(Group Factorization Machines,分組因子分解 機)分組因子分解模型,示例如下:
其中,W為需要訓(xùn)練模型參數(shù),x為特征數(shù)據(jù)的向量。W0為篩選分組的模型參數(shù),x0為篩選分組的特征數(shù)據(jù)的向量,G為特征分組的數(shù)量,則Wi為第i組特征分組的模型參數(shù),Xi為第i組特征分組的特征數(shù)據(jù)的向量,Wj為第j組特征分組的模型參數(shù),Xj為第j組特征分組的特征數(shù)據(jù)的向量。
步驟104,對所述分組因子分解模型進行迭代,收斂后的結(jié)果即為預(yù)估廣告點擊率。
在本實施例中,采用SGD(Stochastic Gradient Descent,隨即梯度下降)優(yōu)化方法對分組因子分解模型進行迭代。
為了提高迭代的收斂速度,可以對分組因子分解模型進行采用FTRL(Follow-the-Regularized-Leader)方式進行迭代。
為了對GFM進行優(yōu)化求解,計算其導(dǎo)數(shù):
其中,yn表征第n個特征數(shù)據(jù)是否被點擊,xn是第n個特征數(shù)據(jù)的向量,λ為常量,
,
得到GFM的導(dǎo)數(shù)后,根據(jù)SGD優(yōu)化方法更新參數(shù),其中,SGD 更新的公式的示例如下:
其中,α為SGD中設(shè)定的模型參數(shù)的學(xué)習(xí)率。
除了SGD之外,還可以應(yīng)用其他方式進行迭代,如GD(梯度下降)、共軛梯度法等其他一階優(yōu)化方式,如牛頓法等二階優(yōu)化方式,等等,本發(fā)明實施例對此不加以限制。也可以采用其他神經(jīng)網(wǎng)絡(luò)算法進行迭代。
在具體實現(xiàn)中,本發(fā)明實施例可以通過以下的一種或多種方式加快迭代速度:
1、采用多線程異步加速技術(shù)。在本實施例中,同時使用多個線程異步處理W,由于訓(xùn)練集本身的特性,即特征數(shù)據(jù)的向量是稀疏的,所以在進行了數(shù)據(jù)打亂順序之后,兩個線程同時更新同一個模型參數(shù)的概率就大大降低,因而訓(xùn)練的收斂速度不會受到太大影響,12個線程可加速近7至8倍。
2、采用負例采樣技術(shù),由于點擊率總體很小(百分之幾),點擊相對非點擊對模型的訓(xùn)練更重要,所以可以對非點擊進行采樣,如采樣10%,則可加速近10倍。
3、采用預(yù)設(shè)的指令集對迭代操作進行向量化加速。由于GFM模型中含有大量的向量計算,本實施例中可以采用AVX指令集對操作進行向量化,一條AVX指令可同時操作8個float數(shù),加速5倍多。
4、采用pipeline模型,數(shù)據(jù)讀取和模型訓(xùn)練同步進行,充分利用磁盤I/O和CPU資源,減少IO時間。
當然,上述迭代方式只是作為示例,在實施本發(fā)明實施例時,可以根據(jù)實際情況設(shè)置其他迭代方式,以加快迭代速度,本發(fā)明實施例對此不加以限制。另外,除了上述迭代方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實際需要采用其它迭代方式,本發(fā)明實施例對此也不加以限制。
通過上述方式加快迭代速度,可以在短時間(如一個小時)內(nèi)對 較長時間(如70天)采樣10%后得到的每天約2000萬樣本,模型參數(shù)6億的數(shù)據(jù)進行訓(xùn)練,符合線上模型的時效性要求。
步驟105,根據(jù)步驟104輸出的預(yù)估廣告點擊率,進行廣告投放。
需要注意的是,由于本實施例中對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣后會導(dǎo)致模型預(yù)估的點擊率變大,需要對其進行校準,校準方法如下:校準后點擊率=預(yù)估點擊率/(預(yù)估點擊率+(1-預(yù)估點擊率)/采樣率)。
如圖4所示,根據(jù)本發(fā)明一個實施例的一種廣告投放裝置,包括:特征參數(shù)獲取模塊、特征分類模塊、特征因子分解模塊、點擊率預(yù)估模塊和廣告投放模塊。
所述特征參數(shù)獲取模塊用于從群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù)。
本發(fā)明實施例可以應(yīng)用與網(wǎng)絡(luò)平臺,為獨立的服務(wù)器或服務(wù)器集群,如分布式系統(tǒng),存儲了海量的廣告數(shù)據(jù)。
在實際應(yīng)用中,用戶通過瀏覽器提供的搜索欄輸入搜索詞;瀏覽器將所述搜索詞封裝到搜索請求中發(fā)送給搜索引擎;搜索引擎根據(jù)所述搜索詞在數(shù)據(jù)庫中進行搜索,如搜索與所述關(guān)鍵詞相關(guān)的廣告數(shù)據(jù);根據(jù)預(yù)估點擊率對所述廣告數(shù)據(jù)進行排序;在瀏覽器的頁面中向用戶展示排序靠前的預(yù)定數(shù)量廣告數(shù)據(jù)。
上述搜索過程被記錄在群體用戶歷史搜索記錄中,并且包括廣告點擊率特征參數(shù),所述廣告點擊率特征參數(shù)可包括廣告特征參數(shù)和用戶特征參數(shù),所述廣告特征參數(shù)可包括廣告ID、文字、圖片、類別等;所述用戶特征參數(shù)可包括用戶ID、性別、年齡、IP地址、用戶搜索詞等。
由于點擊率總體很小(百分之幾),而本發(fā)明實施例更關(guān)心的是展現(xiàn)后是否被點擊,點擊相對非點擊對模型的訓(xùn)練更重要。所以可以對非點擊進行采樣,采樣后對模型的預(yù)測效果影響很小,但是可以大量減少訓(xùn)練集的數(shù)據(jù)量,通過減少數(shù)據(jù)量進而減少計算量,降低了系統(tǒng)資源消耗,加快了運算速度,如采樣10%,則可加速近10倍。
在一個實施中,所述特征參數(shù)獲取模塊還用于:
對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣;
從采樣后的群體用戶歷史搜索記錄中獲取廣告點擊率特征參數(shù),其中,所述采樣后的群體用戶歷史搜索記錄包括未采樣的點擊廣告數(shù)據(jù)和采樣的非點擊廣告數(shù)據(jù)的全體用戶歷史搜索記錄。
由于所述廣告點擊率特征參數(shù)都是人為的邏輯表達,因此,獲取廣告點擊率特征參數(shù)之后,需要對其進行特征學(xué)習(xí)(Feature Learning),作為模型訓(xùn)練的輸入向量。
特征學(xué)習(xí)作為機器學(xué)習(xí)的組成部分,主要用于對數(shù)據(jù)的特征進行理解,從而幫助建立更好的模型。特征學(xué)習(xí)主要包括特征規(guī)整(Feature Normalization)和類屬特征轉(zhuǎn)換。特征規(guī)整負責將一些特征進行歸一化處理,以方便比較。類屬特征轉(zhuǎn)換負責將特征參數(shù)轉(zhuǎn)換為可被機器識別的數(shù)值。實現(xiàn)類屬特征轉(zhuǎn)換最常見的方法是利用獨熱編碼(One-Hot Coding)進行向量化。使用獨熱編碼將所述廣告點擊率特征參數(shù)轉(zhuǎn)換為可被機器識別的數(shù)值,作為下一步訓(xùn)練模型的輸入向量。
所述特征分類模塊用于對對所述特征參數(shù)進行分類,得到多個特征分組。
具體地,根據(jù)所述特征分類模塊獲取的廣告點擊率特征參數(shù)的相關(guān)性,對所述廣告點擊率特征參數(shù)進行分類,得到多個特征分組。
所述特征分類模塊還用于:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù);兩種廣告點擊率特征參數(shù)的相關(guān)系數(shù)越大,代表其相關(guān)性越高;
根據(jù)獲取的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù),對廣告點擊率特征參數(shù)進行分類;具體包括:
計算每個廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)的相關(guān)系數(shù)和;
如所述相關(guān)系數(shù)和小于設(shè)定值,則認為該廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)相關(guān)性較差,即該廣告點擊率特征參數(shù)對廣告點擊率特征的顯著性較強,因此將其單獨劃分為一個特征分組;
如所述相關(guān)系數(shù)和大于設(shè)定值,則認為該廣告點擊率特征參數(shù)與 其他廣告點擊率特征參數(shù)相關(guān)性較強,即該廣告點擊率特征參數(shù)對廣告點擊率特征的顯著性較差,因此將相關(guān)系數(shù)和大于設(shè)定值的廣告點擊率特征參數(shù)與其他廣告點擊率特征參數(shù)劃分為同一個特征分組。
所述特征因子分解模塊用于對得到的多個特征組與篩選分組進行因子分解,獲得分組因子分解模型。
其中,所述篩選分組為不涉及相關(guān)性的特征參數(shù),例如,廣告數(shù)據(jù)的展示位置等。
本發(fā)明實施例是基于分組進行因子分解,重新定義并推導(dǎo)(導(dǎo)數(shù))FM模型,得到了GFM(Group Factorization Machines,分組因子分解機)分組因子分解模型,示例如下:
其中,W為需要訓(xùn)練模型參數(shù),x為特征數(shù)據(jù)的向量。W0為篩選分組的模型參數(shù),x0為篩選分組的特征數(shù)據(jù)的向量,G為特征分組的數(shù)量,則Wi為第i組特征分組的模型參數(shù),Xi為第i組特征分組的特征數(shù)據(jù)的向量,Wj為第j組特征分組的模型參數(shù),Xj為第j組特征分組的特征數(shù)據(jù)的向量。
所述點擊率預(yù)估模塊用于對所述分組因子分解模型進行迭代,收斂后的結(jié)果即為預(yù)估廣告點擊率。
在本實施例中,采用SGD(Stochastic Gradient Descent,隨即梯度下降)優(yōu)化方法對分組因子分解模型進行迭代。
為了提高迭代的收斂速度,可以對分組因子分解模型進行采用FTRL(Follow-the-Regularized-Leader)方式進行迭代。
為了對GFM進行優(yōu)化求解,計算其導(dǎo)數(shù):
其中,yn表征第n個特征數(shù)據(jù)是否被點擊,xn是第n個特征數(shù)據(jù)的向量,λ為常量,
,
得到GFM的導(dǎo)數(shù)后,根據(jù)SGD優(yōu)化方法更新參數(shù),其中,SGD更新的公式的示例如下:
其中,α為SGD中設(shè)定的模型參數(shù)的學(xué)習(xí)率。
除了SGD之外,還可以應(yīng)用其他方式進行迭代,如GD(梯度下降)、共軛梯度法等其他一階優(yōu)化方式,如牛頓法等二階優(yōu)化方式,等等,本發(fā)明實施例對此不加以限制。也可以采用其他神經(jīng)網(wǎng)絡(luò)算法進行迭代。
在具體實現(xiàn)中,本發(fā)明實施例可以通過以下的一種或多種方式加快迭代速度:
1、采用多線程異步加速技術(shù)。在本實施例中,同時使用多個線程異步處理W,由于訓(xùn)練集本身的特性,即特征數(shù)據(jù)的向量是稀疏的,所以在進行了數(shù)據(jù)打亂順序之后,兩個線程同時更新同一個模型參數(shù) 的概率就大大降低,因而訓(xùn)練的收斂速度不會受到太大影響,12個線程可加速近7至8倍。
2、采用負例采樣技術(shù),由于點擊率總體很小(百分之幾),點擊相對非點擊對模型的訓(xùn)練更重要,所以可以對非點擊進行采樣,如采樣10%,則可加速近10倍。
3、采用預(yù)設(shè)的指令集對迭代操作進行向量化加速。由于GFM模型中含有大量的向量計算,本實施例中可以采用AVX指令集對操作進行向量化,一條AVX指令可同時操作8個float數(shù),加速5倍多。
4、采用pipeline模型,數(shù)據(jù)讀取和模型訓(xùn)練同步進行,充分利用磁盤I/O和CPU資源,減少IO時間。
當然,上述迭代方式只是作為示例,在實施本發(fā)明實施例時,可以根據(jù)實際情況設(shè)置其他迭代方式,以加快迭代速度,本發(fā)明實施例對此不加以限制。另外,除了上述迭代方式外,本領(lǐng)域技術(shù)人員還可以根據(jù)實際需要采用其它迭代方式,本發(fā)明實施例對此也不加以限制。
通過上述方式加快迭代速度,可以在短時間(如一個小時)內(nèi)對較長時間(如70天)采樣10%后得到的每天約2000萬樣本,模型參數(shù)6億的數(shù)據(jù)進行訓(xùn)練,符合線上模型的時效性要求。
所述廣告投放模塊用于根據(jù)所述點擊率預(yù)估模塊輸出的預(yù)估廣告點擊率,進行廣告投放。
需要注意的是,由于本實施例中對群體用戶歷史搜索記錄中的非點擊廣告數(shù)據(jù)進行采樣后會導(dǎo)致模型預(yù)估的點擊率變大,需要對其進行校準,校準方法如下:校準后點擊率=預(yù)估點擊率/(預(yù)估點擊率+(1-預(yù)估點擊率)/采樣率)。
具體而言,本發(fā)明實施例的廣告投放方法及裝置,通過對廣告特征參數(shù)之間的相關(guān)關(guān)系進行分類,訓(xùn)練模型參數(shù),降低了訓(xùn)練的計算量,同時使得模型更容易收斂,提高了預(yù)估點擊率。根據(jù)所述預(yù)估點擊率對業(yè)務(wù)對象進行展示,提高了滿足用戶需求的業(yè)務(wù)對象的展示幾率,避免用戶多次翻頁操作或者去其他平臺進行搜索,提高了操作的簡便性,減少用戶時間的耗費,提高用戶體驗,增加用戶使用滿意度。降低了服務(wù)器、客戶端的資源占用與浪費。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的廣告投放裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
本文中所稱的“一個實施例”、“實施例”或者“一個或者多個實施例”意味著,結(jié)合實施例描述的特定特征、結(jié)構(gòu)或者特性包括在本發(fā)明的至少一個實施例中。此外,請注意,這里“在一個實施例中”的詞語例子不一定全指同一個實施例。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下被實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
此外,還應(yīng)當注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本 技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。