隨着互聯網和電商的快速發展,如何高效地進行市場推廣成為了各大企業和商家面臨的難題。傳統的廣告運營模式廣泛使用的CTR(click-through rate)模型,只能描述被推送廣告的人點擊與否這一現象,但無法評估廣告帶來的真正效果。因此,誕生了一種新的推廣模型——uplift模型。相比於CTR模型,uplift模型更加準確真實反映了一項廣告的效果,成為廣告投放中的重要算法。
一、uplift模型定義
uplift模型又稱為偏移模型或者訓練/反訓練模型,是針對廣告推廣構建的一種模型。定義為uplift是指,在沒有廣告推薦的情況下的轉換率和有廣告推薦的情況下的轉化率之間的差異。uplift模型可以在一個時間窗口中,基於歷史數據和控制實驗設計來估計推薦的廣告對於用戶的轉化率的貢獻,有效的避免了傳統CTR模型中會忽略抽樣偏差、干擾因素和惡意交互的問題。
二、uplift模型的優勢
相比於傳統的CTR模型,在廣告推廣中,uplift模型具有更多的優勢:
1、離線訓練:uplift模型是一種離線訓練算法,訓練好後,不僅可以上線實時推廣,而且計算速度也更加快捷、迅速。
2、效果更加準確:uplift模型採用了A/B測試的方式進行預測,會忽略掉用戶自然屬性對於廣告影響的干擾,使得推廣效果預測更加準確真實。
3、指導廣告調整:uplift模型能夠明確地顯示廣告在群體中對於轉化率的增益,能夠為廣告提供調整的指導。
三、uplift模型的建模過程
uplift模型的建模過程是一個結合傳統的分類模型和控制實驗的過程。建模分為三個步驟:
1、確定研究所需要控制變量集合。
2、進行實驗制定,將實驗集合分為控制組和干預組。
3、使用Logistic Regression等傳統分類模型對控制組和實驗組進行轉化率預測,最終通過對比兩組對照實驗,計算干預組相對控制組的轉化率差異,即為uplift值。
四、uplift模型在營銷活動中的應用
uplift模型廣泛應用於各種廣告營銷場景中,具體應用場景包括:
1、定向性廣告投放,廣告主可以根據各種關鍵詞或者人口學特徵定向投放廣告,uplift模型可以更加準確計算不同定向組的廣告效果,以便廣告方做出最優的推廣決策。
2、多元化營銷活動投放,uplift模型可以在不同平台上建立模型,進行同系列產品和服務的廣告投放,以確定最佳的投放策略。
3、用戶細分,根據uplift模型,對用戶進行分群,並根據不同類別用戶的轉化率差異性進行不同的投放策略和營銷活動。
五、uplift模型的代碼實現
# 導入相關庫 import pandas as pd import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.utils import resample from model_evaluation import qini_binary, uplift_at_k_binary from sklearn.model_selection import train_test_split # 導入測試數據 df_data_1 = pd.read_csv('test_data.csv') # A/B實驗分組 df_data_1['group'] = np.where(df_data_1['segment_type'] == 'testgroup', 1, 0) df_data_1['conversion'] = np.where(df_data_1['conversion'] == True, 1, 0) # 樣本抽樣 data_minority = df_data_1[df_data_1.group == 1] data_majority = df_data_1[df_data_1.group == 0] upsample_ratio = len(data_majority) / len(data_minority) data_minority_upsampled = resample(data_minority, replace=True, n_samples=int(len(data_minority)*upsample_ratio)) df_data_2 = pd.concat([data_majority, data_minority_upsampled]) # 數據集切分 train, test = train_test_split(df_data_2, test_size=0.3) # 建立並訓練模型 cls = LogisticRegression(solver='liblinear') cls.fit(train[['f1', 'f2', 'f3']], train['conversion']) prob = cls.predict_proba(test[['f1', 'f2', 'f3']])[:, 1] uplift = prob - cls.predict_proba(test[['f1', 'f2', 'f3']], control=True)[:, 1] # 模型評估 print(uplift_at_k_binary(test['conversion'], uplift, treatment=test['group'], strategy='overall')) print(qini_binary(test['conversion'], uplift, test['group']))
六、總結
uplift模型作為一種新的推廣模型,準確反映廣告推廣的真實效果,具有更多的優勢。同時,它有着更加貼近實際的應用場景,在多個營銷領域可以發揮重大作用,如何快速、準確地基於歷史數據、控制實驗和模型算法構建uplift模型,成為企業營銷策略中一個重要的研究方向。
原創文章,作者:XVND,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/136307.html