程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

手機消息彈窗太多?背後竟然是這個Python算法!

編輯:Python

身為Python人,是一件很矛盾的事情。

有專家認為,在大數據時代,人人都在裸泳,算法每天都在分析人們的偏好,研究你更喜歡蛙泳、自由泳還是潛水,然後決定賣你泳衣泳帽還是潛水瓶。

Python人的糾結在於,一邊在大數據裡裸泳,一邊又要分析其他裸泳的人;一邊絞盡腦汁把客戶的信息推送到目標群體面前,一邊狠狠×掉各種彈窗廣告、貼片廣告、開屏廣告……

手快一點就點進去了

Python人熟悉每一個廣告推薦算法的框架、邏輯、套路、目的,比外行人更能一針見血地指出廣告推薦的設計漏洞。卻在阻止親人、愛人、友人看了廣告沖動消費時遇到一句“就你懂,就你懂的多”。

看來還是懂的不夠多,那我們就來看一個廣告推薦算法的實例。

首先,我們收集到了一大批廣告投放的數據,包括App信息、廣告位ID、媒體ID、物料信息、標題文字、描述文字和其他可用的向量特征。

然後,我們發現物料信息裡包含大量圖片信息,以文本形式進行存儲,所以首先需要對這些信息進行處理。

可以采用圖片特征提取等方式處理,這裡為了簡便,統一按照文本信息方式進行處理,先序列化編碼,再進行詞(文本)向量轉換。

for col in ["pkgname", "ver", "slotid", "mediaid", "material"]:
lbl = LabelEncoder()
lbl.fit(train_df[col].tolist() + test_df[col].tolist())
train_df[col] = lbl.transform(train_df[col])
test_df[col] = lbl.transform(test_df[col])

這裡我們采用Torch包的Embedding,將文本轉化為向量。

數據處理結束後,就要祭出經典的網狀結構MLP了。

class MLP(nn.Module):
def __init__(self, category_dict, layers=[45 + 240, 32], dropout=False):
super().__init__()
print(category_dict)
self.category_dict = category_dict
self.embedding_dict = {
key: torch.nn.Embedding(
self.category_dict[key] + 1, int(np.log2(self.category_dict[key]))
).to(device)
for key in category_dict.keys()
}
self.fc_layers = torch.nn.ModuleList()
for _, (in_size, out_size) in enumerate(zip(layers[:-1], layers[1:])):
self.fc_layers.append(torch.nn.Linear(in_size, out_size).to(device))
self.output_layer = torch.nn.Linear(layers[-1], 1).to(device)
def forward(self, feed_dict, embed_dict):
embedding_feet = {
key: self.embedding_dict[key](feed_dict[key])
for key in self.category_dict.keys()
}
x = torch.cat(list(embedding_feet.values()), 1)
x = torch.cat([x, embed_dict], 1)
for idx, _ in enumerate(range(len(self.fc_layers))):
x = self.fc_layers[idx](x)
x = F.relu(x)
x = F.dropout(x)
logit = self.output_layer(x)
return logit

訓練開始~

這就是廣告推薦中比較常見的一種思路,但身為Python人的你,肯定覺得這套算法略顯簡陋。

對此,我想說,“就你懂的多,你行你上”

登錄

2022iFLYTEK A.I.開發者大賽官網

A.I.算法賽

“創意視角下的數字廣告CTR預估挑戰賽”

掃描下方二維碼,免費報名即可查閱以上數據、編寫你的獨特算法,根據訓練集數據預測廣告點擊情況,爭奪現金大獎。

你不是懂得多麼?現在可不能慫啊!

當然,上面案例中的代碼也可供取用

掃描下方二維碼

獲取賽題Baseline


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved