4、对候选广告、经过sum 的历史记录进行拼接:
def call(self, inputs):
......
item_embed = tf.reshape(item_embed, [-1, item_embed.shape[-1]])
# 联合用户行为embedding、候选物品embedding、【用户属性、上下文内容特征】
embed = self.concat2([u_embed, item_embed])
5、进行MLP过程
def call(self, inputs):
......
x = self.bn2(embed)
x = self.dense1(x)
x = self.activation1(x)
x = self.dense2(x)
x = self.activation2(x)
x = self.dense3(x)
outputs = tf.nn.sigmoid(x)
return outputs
输入处理
这里我们对历史记录进行了处理【参考论文的开源代码】 , 因为每个用户的序列长度是不同的 , 在情感识别等NLP领域 , 输入RNN等模型时需要将句子进行截断或添加 。这里作者也进行了类似的处理 , 不过在【开源代码】中 , 作者是取每个中的所有用户中最长的历史记录长度作为矩阵的列数 , 但这里我们是取所有用户的最长() , 对长度不够的在最后进行添0处理【这样增加了内存消耗 , 但我不知道如何在TF2.0中如何处理】
def input_data(dataset, max_sl):
user = np.array(dataset[:, 0], dtype='int32')
item = np.array(dataset[:, 1], dtype='int32')
hist = dataset[:, 2]
hist_matrix = tf.keras.preprocessing.sequence.pad_sequences(hist, maxlen=max_sl, padding='post')
sl = np.array(dataset[:, 3], dtype='int32')
y = np.array(dataset[:, 4], dtype='float32')
return user, item, hist_matrix, sl, y
训练
然后就是正常的进行模型编译、训练 。
上传了自己的:
并还实现了NCF的TF2.0实现 。【大佬给个star吧】
微信公众号
潜心的小屋
- 这4个国产羽绒服:从不打广告,靠实力碾压加拿大鹅、始祖鸟 世界十大羽绒服
- 2018十大年度SUV新车全新比亚迪唐只能排第四第一名还没上市 探歌吉尼斯记录
- 十大中国互联网上市公司:腾讯市值超阿里,拼多多追赶美团 中国十大网络公司
- 2018年北京市民扑克大赛落幕 麻将大赛吉尼斯记录
- 《恶俗》:你被精美的包装和令人心动的广告欺骗过么? 中国十大恶俗广告
- 在2018年贝壳粉十大品牌崭露头角的品牌会是谁家呢? 世界十大贝壳粉品牌
- 钱七虎、徐梦桃等获颁感动中国2022年度人物 感动中国十大人物2018颁奖词
- 著名广告导演田春鹏:中国孩子最可悲的是和各种人比。#开封人 中国之最歌曲儿童
- 挑战新藏线之二:天上阿里,看最极致的山,最极致的水 中国之最震撼视频
- 奥迪广告导演彭杨军被扒,是个抄袭惯犯,已连夜清空微博 中国十大广告导演