手搭深度推荐模型(二) Wide&Deep

本文是笔者参与datawhale组织的深度推荐模型组队学习的分享,学习内容见本链接 ,本文中所指的教程即该链接中的相应文件。

why Wide&Deep?

上一篇笔者实现了Deep Crossing模型,Deep Crossing采用了Embedding + MLP的结构,是推荐系统领域应用深度学习的首篇完整论文,它主要是将深度学习的强泛化能力引入了推荐系统,使模型能够有较强的推理能力,在提高新鲜度、挖掘相关关系不明显的物品时非常有用。

但是在推荐领域还有很多应该被推荐的东西都是很直白的,很显然的。比如我(一个24岁的打工男码农),每天早上都会去超市买个面包,超市可以根据同时段其他人的购买记录给我推荐咖啡,可以根据我的发量给我推荐格子衫,但是这些都是经过模型的推理能力推理出来的,然而实际上,我只是想要个面包,我更希望超市能够给我推荐面包,因此,在利用深度学习的泛化推理能力的同时,也要注意模型的记忆能力。因此Wide&Deep便应运而生。

本次学习我根据MovieLens数据集制作了训练数据,不过由于对tensorflow还不熟悉,自己实现模型失败,暂时还没能将MovieLens数据集用在这次模型中。
我的MovieLens数据集特征工程如下所示:
在这里插入图片描述
原数据集Movies Lens Small下载地址:https://grouplens.org/datasets/movielens/
我的特征工程数据集代码及数据:

思考题

在你的应用场景中,哪些特征适合放在Wide侧,哪些特征适合放在Deep侧,为什么呢?

Ans: 以上述电影推荐为例,我想到两种方案,一是根据用户喜欢的电影风格,和当前电影风格来做推荐,构造“如果用户喜欢A电影风格,则推荐B电影风格”。二是根据用户历史打过好评的电影,与当前电影的评价,构造“如果用户喜欢A电影,则推荐B电影”。其他的数值特征等适合放在Deep侧,让模型去推理,比如“我对2010年以前的A类电影平均打分0.5分,对2010年以后的A类电影平均打分0.7分,因此模型将当前这个2020年的A类电影推荐给我”

为什么Wide部分要用L1 FTRL训练?

Ans:这里使用FTRL是因为它是一个在保证了精度的同时稀疏性很好的优化算法。FTRL引入了一些约束,当特征的权重不满足约束时置0来保证稀疏性。另外,我认为论文里使用这个优化算法还考虑到了app推荐是个很有时效性的任务,用户希望安装的软件往往与刚刚安装的软件强相关,因此使用在线优化更合适。FTRL详细算法推到可以冯杨老师的文章。不过我仍存在一个疑惑,即为什么稀疏性能提高模型的记忆能力?

为什么Deep部分不特别考虑稀疏性的问题?

Ans:Deep部分的输入端本身就是数值类型的稠密的特征,或是经过Embedding构造的稠密化的特征,因此不考虑稀疏性问题。另外,从目的上回答,Dense层希望利用神经网络的推理能力挖掘更不明显的特征的关联关系,将特征进行组合,如果输入特征太稀疏的话不利于网络的训练,也不利于特征组合。

代码运行

自己用数据跑W&D还没成功,所以先跑一下教程的例子。

def WideNDeep(linear_feature_columns, dnn_feature_columns):
    # 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
    dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)

    # 将linear部分的特征中sparse特征筛选出来,后面用来做1维的embedding
    linear_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns))

    # 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
    # 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
    input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())

    # Wide&Deep模型论文中Wide部分使用的特征比较简单,并且得到的特征非常的稀疏,所以使用了FTRL优化Wide部分(这里没有实现FTRL)
    # 但是是根据他们业务进行选择的,我们这里将所有可能用到的特征都输入到Wide部分,具体的细节可以根据需求进行修改
    linear_logits = get_linear_logits(dense_input_dict, sparse_input_dict, linear_sparse_feature_columns)
    
    # 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
    embedding_layers = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)

    dnn_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_feature_columns))

    # 在Wide&Deep模型中,deep部分的输入是将dense特征和embedding特征拼在一起输入到dnn中
    dnn_logits = get_dnn_logits(dense_input_dict, sparse_input_dict, dnn_sparse_feature_columns, embedding_layers)
    
    # 将linear,dnn的logits相加作为最终的logits
    output_logits = Add()([linear_logits, dnn_logits])

    # 这里的激活函数使用sigmoid
    output_layer = Activation("sigmoid")(output_logits)

    model = Model(input_layers, output_layer)
    return model
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
for i, feat in enumerate(sparse_features):
    print(f'{feat}, {data[feat].nunique()}')
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat)
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
                        for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
                        for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
                        for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
                        for feat in dense_features]
# 构建WideNDeep模型
history = WideNDeep(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam", 
            loss="binary_crossentropy", 
            metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
        batch_size=8, epochs=5, validation_split=0.2, )
WARNING:tensorflow:From /Users/kudengma/opt/anaconda3/envs/ml/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
WARNING:tensorflow:From /Users/kudengma/opt/anaconda3/envs/ml/lib/python3.7/site-packages/tensorflow/python/keras/initializers.py:119: calling RandomUniform.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
C1 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C2 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C3 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C4 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C5 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C6 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C7 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C8 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C9 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
C10 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C11 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C12 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C13 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C14 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C15 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C16 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C17 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C18 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C19 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C20 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C21 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C22 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C23 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C24 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C25 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
C26 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
kd_emb_C1 (Embedding)           (None, 1, 4)         108         C1[0][0]                         
__________________________________________________________________________________________________
kd_emb_C2 (Embedding)           (None, 1, 4)         368         C2[0][0]                         
__________________________________________________________________________________________________
kd_emb_C3 (Embedding)           (None, 1, 4)         688         C3[0][0]                         
__________________________________________________________________________________________________
kd_emb_C4 (Embedding)           (None, 1, 4)         628         C4[0][0]                         
__________________________________________________________________________________________________
kd_emb_C5 (Embedding)           (None, 1, 4)         48          C5[0][0]                         
__________________________________________________________________________________________________
kd_emb_C6 (Embedding)           (None, 1, 4)         28          C6[0][0]                         
__________________________________________________________________________________________________
kd_emb_C7 (Embedding)           (None, 1, 4)         732         C7[0][0]                         
__________________________________________________________________________________________________
kd_emb_C8 (Embedding)           (None, 1, 4)         76          C8[0][0]                         
__________________________________________________________________________________________________
kd_emb_C9 (Embedding)           (None, 1, 4)         8           C9[0][0]                         
__________________________________________________________________________________________________
kd_emb_C10 (Embedding)          (None, 1, 4)         568         C10[0][0]                        
__________________________________________________________________________________________________
kd_emb_C11 (Embedding)          (None, 1, 4)         692         C11[0][0]                        
__________________________________________________________________________________________________
kd_emb_C12 (Embedding)          (None, 1, 4)         680         C12[0][0]                        
__________________________________________________________________________________________________
kd_emb_C13 (Embedding)          (None, 1, 4)         664         C13[0][0]                        
__________________________________________________________________________________________________
kd_emb_C14 (Embedding)          (None, 1, 4)         56          C14[0][0]                        
__________________________________________________________________________________________________
kd_emb_C15 (Embedding)          (None, 1, 4)         680         C15[0][0]                        
__________________________________________________________________________________________________
kd_emb_C16 (Embedding)          (None, 1, 4)         672         C16[0][0]                        
__________________________________________________________________________________________________
kd_emb_C17 (Embedding)          (None, 1, 4)         36          C17[0][0]                        
__________________________________________________________________________________________________
kd_emb_C18 (Embedding)          (None, 1, 4)         508         C18[0][0]                        
__________________________________________________________________________________________________
kd_emb_C19 (Embedding)          (None, 1, 4)         176         C19[0][0]                        
__________________________________________________________________________________________________
kd_emb_C20 (Embedding)          (None, 1, 4)         16          C20[0][0]                        
__________________________________________________________________________________________________
kd_emb_C21 (Embedding)          (None, 1, 4)         676         C21[0][0]                        
__________________________________________________________________________________________________
kd_emb_C22 (Embedding)          (None, 1, 4)         24          C22[0][0]                        
__________________________________________________________________________________________________
kd_emb_C23 (Embedding)          (None, 1, 4)         40          C23[0][0]                        
__________________________________________________________________________________________________
kd_emb_C24 (Embedding)          (None, 1, 4)         500         C24[0][0]                        
__________________________________________________________________________________________________
kd_emb_C25 (Embedding)          (None, 1, 4)         80          C25[0][0]                        
__________________________________________________________________________________________________
kd_emb_C26 (Embedding)          (None, 1, 4)         360         C26[0][0]                        
__________________________________________________________________________________________________
I1 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I2 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I3 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I4 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I5 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I6 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I7 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I8 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I9 (InputLayer)                 [(None, 1)]          0                                            
__________________________________________________________________________________________________
I10 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
I11 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
I12 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
I13 (InputLayer)                [(None, 1)]          0                                            
__________________________________________________________________________________________________
flatten_26 (Flatten)            (None, 4)            0           kd_emb_C1[0][0]                  
__________________________________________________________________________________________________
flatten_27 (Flatten)            (None, 4)            0           kd_emb_C2[0][0]                  
__________________________________________________________________________________________________
flatten_28 (Flatten)            (None, 4)            0           kd_emb_C3[0][0]                  
__________________________________________________________________________________________________
flatten_29 (Flatten)            (None, 4)            0           kd_emb_C4[0][0]                  
__________________________________________________________________________________________________
flatten_30 (Flatten)            (None, 4)            0           kd_emb_C5[0][0]                  
__________________________________________________________________________________________________
flatten_31 (Flatten)            (None, 4)            0           kd_emb_C6[0][0]                  
__________________________________________________________________________________________________
flatten_32 (Flatten)            (None, 4)            0           kd_emb_C7[0][0]                  
__________________________________________________________________________________________________
flatten_33 (Flatten)            (None, 4)            0           kd_emb_C8[0][0]                  
__________________________________________________________________________________________________
flatten_34 (Flatten)            (None, 4)            0           kd_emb_C9[0][0]                  
__________________________________________________________________________________________________
flatten_35 (Flatten)            (None, 4)            0           kd_emb_C10[0][0]                 
__________________________________________________________________________________________________
flatten_36 (Flatten)            (None, 4)            0           kd_emb_C11[0][0]                 
__________________________________________________________________________________________________
flatten_37 (Flatten)            (None, 4)            0           kd_emb_C12[0][0]                 
__________________________________________________________________________________________________
flatten_38 (Flatten)            (None, 4)            0           kd_emb_C13[0][0]                 
__________________________________________________________________________________________________
flatten_39 (Flatten)            (None, 4)            0           kd_emb_C14[0][0]                 
__________________________________________________________________________________________________
flatten_40 (Flatten)            (None, 4)            0           kd_emb_C15[0][0]                 
__________________________________________________________________________________________________
flatten_41 (Flatten)            (None, 4)            0           kd_emb_C16[0][0]                 
__________________________________________________________________________________________________
flatten_42 (Flatten)            (None, 4)            0           kd_emb_C17[0][0]                 
__________________________________________________________________________________________________
flatten_43 (Flatten)            (None, 4)            0           kd_emb_C18[0][0]                 
__________________________________________________________________________________________________
flatten_44 (Flatten)            (None, 4)            0           kd_emb_C19[0][0]                 
__________________________________________________________________________________________________
flatten_45 (Flatten)            (None, 4)            0           kd_emb_C20[0][0]                 
__________________________________________________________________________________________________
flatten_46 (Flatten)            (None, 4)            0           kd_emb_C21[0][0]                 
__________________________________________________________________________________________________
flatten_47 (Flatten)            (None, 4)            0           kd_emb_C22[0][0]                 
__________________________________________________________________________________________________
flatten_48 (Flatten)            (None, 4)            0           kd_emb_C23[0][0]                 
__________________________________________________________________________________________________
flatten_49 (Flatten)            (None, 4)            0           kd_emb_C24[0][0]                 
__________________________________________________________________________________________________
flatten_50 (Flatten)            (None, 4)            0           kd_emb_C25[0][0]                 
__________________________________________________________________________________________________
flatten_51 (Flatten)            (None, 4)            0           kd_emb_C26[0][0]                 
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 13)           0           I1[0][0]                         
                                                                 I2[0][0]                         
                                                                 I3[0][0]                         
                                                                 I4[0][0]                         
                                                                 I5[0][0]                         
                                                                 I6[0][0]                         
                                                                 I7[0][0]                         
                                                                 I8[0][0]                         
                                                                 I9[0][0]                         
                                                                 I10[0][0]                        
                                                                 I11[0][0]                        
                                                                 I12[0][0]                        
                                                                 I13[0][0]                        
__________________________________________________________________________________________________
concatenate_2 (Concatenate)     (None, 104)          0           flatten_26[0][0]                 
                                                                 flatten_27[0][0]                 
                                                                 flatten_28[0][0]                 
                                                                 flatten_29[0][0]                 
                                                                 flatten_30[0][0]                 
                                                                 flatten_31[0][0]                 
                                                                 flatten_32[0][0]                 
                                                                 flatten_33[0][0]                 
                                                                 flatten_34[0][0]                 
                                                                 flatten_35[0][0]                 
                                                                 flatten_36[0][0]                 
                                                                 flatten_37[0][0]                 
                                                                 flatten_38[0][0]                 
                                                                 flatten_39[0][0]                 
                                                                 flatten_40[0][0]                 
                                                                 flatten_41[0][0]                 
                                                                 flatten_42[0][0]                 
                                                                 flatten_43[0][0]                 
                                                                 flatten_44[0][0]                 
                                                                 flatten_45[0][0]                 
                                                                 flatten_46[0][0]                 
                                                                 flatten_47[0][0]                 
                                                                 flatten_48[0][0]                 
                                                                 flatten_49[0][0]                 
                                                                 flatten_50[0][0]                 
                                                                 flatten_51[0][0]                 
__________________________________________________________________________________________________
concatenate_3 (Concatenate)     (None, 117)          0           concatenate_1[0][0]              
                                                                 concatenate_2[0][0]              
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 1024)         120832      concatenate_3[0][0]              
__________________________________________________________________________________________________
dropout (Dropout)               (None, 1024)         0           dense_1[0][0]                    
__________________________________________________________________________________________________
dense_2 (Dense)                 (None, 512)          524800      dropout[0][0]                    
__________________________________________________________________________________________________
1d_emb_C1 (Embedding)           (None, 1, 1)         27          C1[0][0]                         
__________________________________________________________________________________________________
1d_emb_C2 (Embedding)           (None, 1, 1)         92          C2[0][0]                         
__________________________________________________________________________________________________
1d_emb_C3 (Embedding)           (None, 1, 1)         172         C3[0][0]                         
__________________________________________________________________________________________________
1d_emb_C4 (Embedding)           (None, 1, 1)         157         C4[0][0]                         
__________________________________________________________________________________________________
1d_emb_C5 (Embedding)           (None, 1, 1)         12          C5[0][0]                         
__________________________________________________________________________________________________
1d_emb_C6 (Embedding)           (None, 1, 1)         7           C6[0][0]                         
__________________________________________________________________________________________________
1d_emb_C7 (Embedding)           (None, 1, 1)         183         C7[0][0]                         
__________________________________________________________________________________________________
1d_emb_C8 (Embedding)           (None, 1, 1)         19          C8[0][0]                         
__________________________________________________________________________________________________
1d_emb_C9 (Embedding)           (None, 1, 1)         2           C9[0][0]                         
__________________________________________________________________________________________________
1d_emb_C10 (Embedding)          (None, 1, 1)         142         C10[0][0]                        
__________________________________________________________________________________________________
1d_emb_C11 (Embedding)          (None, 1, 1)         173         C11[0][0]                        
__________________________________________________________________________________________________
1d_emb_C12 (Embedding)          (None, 1, 1)         170         C12[0][0]                        
__________________________________________________________________________________________________
1d_emb_C13 (Embedding)          (None, 1, 1)         166         C13[0][0]                        
__________________________________________________________________________________________________
1d_emb_C14 (Embedding)          (None, 1, 1)         14          C14[0][0]                        
__________________________________________________________________________________________________
1d_emb_C15 (Embedding)          (None, 1, 1)         170         C15[0][0]                        
__________________________________________________________________________________________________
1d_emb_C16 (Embedding)          (None, 1, 1)         168         C16[0][0]                        
__________________________________________________________________________________________________
1d_emb_C17 (Embedding)          (None, 1, 1)         9           C17[0][0]                        
__________________________________________________________________________________________________
1d_emb_C18 (Embedding)          (None, 1, 1)         127         C18[0][0]                        
__________________________________________________________________________________________________
1d_emb_C19 (Embedding)          (None, 1, 1)         44          C19[0][0]                        
__________________________________________________________________________________________________
1d_emb_C20 (Embedding)          (None, 1, 1)         4           C20[0][0]                        
__________________________________________________________________________________________________
1d_emb_C21 (Embedding)          (None, 1, 1)         169         C21[0][0]                        
__________________________________________________________________________________________________
1d_emb_C22 (Embedding)          (None, 1, 1)         6           C22[0][0]                        
__________________________________________________________________________________________________
1d_emb_C23 (Embedding)          (None, 1, 1)         10          C23[0][0]                        
__________________________________________________________________________________________________
1d_emb_C24 (Embedding)          (None, 1, 1)         125         C24[0][0]                        
__________________________________________________________________________________________________
1d_emb_C25 (Embedding)          (None, 1, 1)         20          C25[0][0]                        
__________________________________________________________________________________________________
1d_emb_C26 (Embedding)          (None, 1, 1)         90          C26[0][0]                        
__________________________________________________________________________________________________
dropout_1 (Dropout)             (None, 512)          0           dense_2[0][0]                    
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 13)           0           I1[0][0]                         
                                                                 I2[0][0]                         
                                                                 I3[0][0]                         
                                                                 I4[0][0]                         
                                                                 I5[0][0]                         
                                                                 I6[0][0]                         
                                                                 I7[0][0]                         
                                                                 I8[0][0]                         
                                                                 I9[0][0]                         
                                                                 I10[0][0]                        
                                                                 I11[0][0]                        
                                                                 I12[0][0]                        
                                                                 I13[0][0]                        
__________________________________________________________________________________________________
flatten (Flatten)               (None, 1)            0           1d_emb_C1[0][0]                  
__________________________________________________________________________________________________
flatten_1 (Flatten)             (None, 1)            0           1d_emb_C2[0][0]                  
__________________________________________________________________________________________________
flatten_2 (Flatten)             (None, 1)            0           1d_emb_C3[0][0]                  
__________________________________________________________________________________________________
flatten_3 (Flatten)             (None, 1)            0           1d_emb_C4[0][0]                  
__________________________________________________________________________________________________
flatten_4 (Flatten)             (None, 1)            0           1d_emb_C5[0][0]                  
__________________________________________________________________________________________________
flatten_5 (Flatten)             (None, 1)            0           1d_emb_C6[0][0]                  
__________________________________________________________________________________________________
flatten_6 (Flatten)             (None, 1)            0           1d_emb_C7[0][0]                  
__________________________________________________________________________________________________
flatten_7 (Flatten)             (None, 1)            0           1d_emb_C8[0][0]                  
__________________________________________________________________________________________________
flatten_8 (Flatten)             (None, 1)            0           1d_emb_C9[0][0]                  
__________________________________________________________________________________________________
flatten_9 (Flatten)             (None, 1)            0           1d_emb_C10[0][0]                 
__________________________________________________________________________________________________
flatten_10 (Flatten)            (None, 1)            0           1d_emb_C11[0][0]                 
__________________________________________________________________________________________________
flatten_11 (Flatten)            (None, 1)            0           1d_emb_C12[0][0]                 
__________________________________________________________________________________________________
flatten_12 (Flatten)            (None, 1)            0           1d_emb_C13[0][0]                 
__________________________________________________________________________________________________
flatten_13 (Flatten)            (None, 1)            0           1d_emb_C14[0][0]                 
__________________________________________________________________________________________________
flatten_14 (Flatten)            (None, 1)            0           1d_emb_C15[0][0]                 
__________________________________________________________________________________________________
flatten_15 (Flatten)            (None, 1)            0           1d_emb_C16[0][0]                 
__________________________________________________________________________________________________
flatten_16 (Flatten)            (None, 1)            0           1d_emb_C17[0][0]                 
__________________________________________________________________________________________________
flatten_17 (Flatten)            (None, 1)            0           1d_emb_C18[0][0]                 
__________________________________________________________________________________________________
flatten_18 (Flatten)            (None, 1)            0           1d_emb_C19[0][0]                 
__________________________________________________________________________________________________
flatten_19 (Flatten)            (None, 1)            0           1d_emb_C20[0][0]                 
__________________________________________________________________________________________________
flatten_20 (Flatten)            (None, 1)            0           1d_emb_C21[0][0]                 
__________________________________________________________________________________________________
flatten_21 (Flatten)            (None, 1)            0           1d_emb_C22[0][0]                 
__________________________________________________________________________________________________
flatten_22 (Flatten)            (None, 1)            0           1d_emb_C23[0][0]                 
__________________________________________________________________________________________________
flatten_23 (Flatten)            (None, 1)            0           1d_emb_C24[0][0]                 
__________________________________________________________________________________________________
flatten_24 (Flatten)            (None, 1)            0           1d_emb_C25[0][0]                 
__________________________________________________________________________________________________
flatten_25 (Flatten)            (None, 1)            0           1d_emb_C26[0][0]                 
__________________________________________________________________________________________________
dense_3 (Dense)                 (None, 256)          131328      dropout_1[0][0]                  
__________________________________________________________________________________________________
dense (Dense)                   (None, 1)            14          concatenate[0][0]                
__________________________________________________________________________________________________
add (Add)                       (None, 1)            0           flatten[0][0]                    
                                                                 flatten_1[0][0]                  
                                                                 flatten_2[0][0]                  
                                                                 flatten_3[0][0]                  
                                                                 flatten_4[0][0]                  
                                                                 flatten_5[0][0]                  
                                                                 flatten_6[0][0]                  
                                                                 flatten_7[0][0]                  
                                                                 flatten_8[0][0]                  
                                                                 flatten_9[0][0]                  
                                                                 flatten_10[0][0]                 
                                                                 flatten_11[0][0]                 
                                                                 flatten_12[0][0]                 
                                                                 flatten_13[0][0]                 
                                                                 flatten_14[0][0]                 
                                                                 flatten_15[0][0]                 
                                                                 flatten_16[0][0]                 
                                                                 flatten_17[0][0]                 
                                                                 flatten_18[0][0]                 
                                                                 flatten_19[0][0]                 
                                                                 flatten_20[0][0]                 
                                                                 flatten_21[0][0]                 
                                                                 flatten_22[0][0]                 
                                                                 flatten_23[0][0]                 
                                                                 flatten_24[0][0]                 
                                                                 flatten_25[0][0]                 
__________________________________________________________________________________________________
dropout_2 (Dropout)             (None, 256)          0           dense_3[0][0]                    
__________________________________________________________________________________________________
add_1 (Add)                     (None, 1)            0           dense[0][0]                      
                                                                 add[0][0]                        
__________________________________________________________________________________________________
dense_4 (Dense)                 (None, 1)            257         dropout_2[0][0]                  
__________________________________________________________________________________________________
add_2 (Add)                     (None, 1)            0           add_1[0][0]                      
                                                                 dense_4[0][0]                    
__________________________________________________________________________________________________
activation (Activation)         (None, 1)            0           add_2[0][0]                      
==================================================================================================
Total params: 788,621
Trainable params: 788,621
Non-trainable params: 0
__________________________________________________________________________________________________
   Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where
Train on 160 samples, validate on 40 samples
Epoch 1/5
160/160 [==============================] - 16s 102ms/sample - loss: 0.7567 - binary_crossentropy: 0.7567 - auc: 0.4952 - val_loss: 0.8477 - val_binary_crossentropy: 0.8477 - val_auc: 0.4117
Epoch 2/5
160/160 [==============================] - 1s 6ms/sample - loss: 0.6737 - binary_crossentropy: 0.6737 - auc: 0.5155 - val_loss: 0.6553 - val_binary_crossentropy: 0.6553 - val_auc: 0.5613
Epoch 3/5
160/160 [==============================] - 1s 7ms/sample - loss: 0.5816 - binary_crossentropy: 0.5816 - auc: 0.6353 - val_loss: 0.8066 - val_binary_crossentropy: 0.8066 - val_auc: 0.6182
Epoch 4/5
160/160 [==============================] - 1s 6ms/sample - loss: 0.5970 - binary_crossentropy: 0.5970 - auc: 0.6472 - val_loss: 0.6700 - val_binary_crossentropy: 0.6700 - val_auc: 0.6553
Epoch 5/5
160/160 [==============================] - 1s 7ms/sample - loss: 0.4295 - binary_crossentropy: 0.4295 - auc: 0.8090 - val_loss: 0.6415 - val_binary_crossentropy: 0.6415 - val_auc: 0.6766
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值