From b787cdf9d9d1c7f500f91ccdeb87aa6d7725ae14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E6=A2=A6?= Date: Sun, 19 May 2019 11:19:39 +0800 Subject: [PATCH] pull dev for v0.4.1 add DSIN refactor layers --- README.md | 5 +- deepctr/__init__.py | 2 +- deepctr/input_embedding.py | 34 +++--- deepctr/layers/__init__.py | 2 +- deepctr/layers/activation.py | 10 +- deepctr/layers/core.py | 30 +++-- deepctr/layers/interaction.py | 82 +++++++++++--- deepctr/layers/sequence.py | 44 +------ deepctr/models/__init__.py | 3 +- deepctr/models/dien.py | 2 +- deepctr/models/dsin.py | 170 ++++++++++++++++++++++++++++ deepctr/models/fgcnn.py | 3 +- deepctr/utils.py | 7 +- docs/pics/DSIN.png | Bin 0 -> 222853 bytes docs/source/Features.md | 16 ++- docs/source/History.md | 1 + docs/source/Quick-Start.md | 13 +-- docs/source/conf.py | 2 +- docs/source/deepctr.models.dsin.rst | 7 ++ docs/source/deepctr.models.rst | 1 + docs/source/index.rst | 4 +- examples/run_all.sh | 20 ++-- examples/run_dsin.py | 49 ++++++++ setup.py | 8 +- tests/models/DSIN_test.py | 53 +++++++++ tests/models/FGCNN_test.py | 5 +- 26 files changed, 446 insertions(+), 127 deletions(-) create mode 100644 deepctr/models/dsin.py create mode 100644 docs/pics/DSIN.png create mode 100644 docs/source/deepctr.models.dsin.rst create mode 100644 examples/run_dsin.py create mode 100755 tests/models/DSIN_test.py diff --git a/README.md b/README.md index a9ad7fa0..f071197c 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,9 @@ Let's [**Get Started!**](https://deepctr-doc.readthedocs.io/en/latest/Quick-Star | Deep Interest Network | [KDD 2018][Deep Interest Network for Click-Through Rate Prediction](https://arxiv.org/pdf/1706.06978.pdf) | | Deep Interest Evolution Network | [AAAI 2019][Deep Interest Evolution Network for Click-Through Rate Prediction](https://arxiv.org/pdf/1809.03672.pdf) | | AutoInt | [arxiv 2018][AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks](https://arxiv.org/abs/1810.11921) | -| NFFM | [arxiv 2019][Field-aware Neural Factorization Machine for Click-Through Rate Prediction ](https://arxiv.org/pdf/1902.09096.pdf) (The original NFFM was first used by Yi Yang(yangyi868@gmail.com) in TSA competition in 2017.) | -| FGCNN | [WWW 2019][Feature Generation by Convolutional Neural Network for Click-Through Rate Prediction ](https://arxiv.org/pdf/1904.04447)) +| NFFM | [arxiv 2019][Field-aware Neural Factorization Machine for Click-Through Rate Prediction ](https://arxiv.org/pdf/1902.09096.pdf) (The original NFFM was used by Yi Yang(yangyi868@gmail.com) in TSA competition.) | +| FGCNN | [WWW 2019][Feature Generation by Convolutional Neural Network for Click-Through Rate Prediction ](https://arxiv.org/pdf/1904.04447) | +| Deep Session Interest Network | [IJCAI 2019][Deep Session Interest Network for Click-Through Rate Prediction ](https://arxiv.org/abs/1905.06482) | diff --git a/deepctr/__init__.py b/deepctr/__init__.py index 7cb26f32..2cf57e90 100644 --- a/deepctr/__init__.py +++ b/deepctr/__init__.py @@ -2,5 +2,5 @@ from . import models from .utils import check_version -__version__ = '0.4.0' +__version__ = '0.4.1' check_version(__version__) diff --git a/deepctr/input_embedding.py b/deepctr/input_embedding.py index 4257e976..eb4373d0 100644 --- a/deepctr/input_embedding.py +++ b/deepctr/input_embedding.py @@ -13,44 +13,42 @@ from tensorflow.python.keras.layers import Concatenate, Dense, Embedding, Input, Reshape, add from tensorflow.python.keras.regularizers import l2 -from deepctr.layers import Hash from .layers.sequence import SequencePoolingLayer from .layers.utils import Hash def create_singlefeat_inputdict(feature_dim_dict, prefix=''): sparse_input = OrderedDict() - for i, feat in enumerate(feature_dim_dict["sparse"]): + for feat in feature_dim_dict["sparse"]: sparse_input[feat.name] = Input( - shape=(1,), name=feat.name, dtype=feat.dtype) # prefix+'sparse_' + str(i) + '-' + feat.name) + shape=(1,), name=prefix+feat.name, dtype=feat.dtype) dense_input = OrderedDict() - for i, feat in enumerate(feature_dim_dict["dense"]): + for feat in feature_dim_dict["dense"]: dense_input[feat.name] = Input( - shape=(1,), name=feat.name) # prefix+'dense_' + str(i) + '-' + feat.name) + shape=(1,), name=prefix+feat.name,dtype=feat.dtype) return sparse_input, dense_input -def create_varlenfeat_inputdict(feature_dim_dict, mask_zero=True): +def create_varlenfeat_inputdict(feature_dim_dict, mask_zero=True,prefix=''): sequence_dim_dict = feature_dim_dict.get('sequence', []) sequence_input_dict = OrderedDict() - for i, feat in enumerate(sequence_dim_dict): - sequence_input_dict[feat.name] = Input(shape=(feat.maxlen,), name='seq_' + str( - i) + '-' + feat.name, dtype=feat.dtype) + for feat in sequence_dim_dict: + sequence_input_dict[feat.name] = Input(shape=(feat.maxlen,), name=prefix+'seq_' + feat.name, dtype=feat.dtype) if mask_zero: sequence_len_dict, sequence_max_len_dict = None, None else: sequence_len_dict = {feat.name: Input(shape=( - 1,), name='seq_length' + str(i) + '-' + feat.name) for i, feat in enumerate(sequence_dim_dict)} + 1,), name=prefix+'seq_length_' + feat.name) for feat in sequence_dim_dict} sequence_max_len_dict = {feat.name: feat.maxlen - for i, feat in enumerate(sequence_dim_dict)} + for feat in sequence_dim_dict} return sequence_input_dict, sequence_len_dict, sequence_max_len_dict -def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_reg, prefix='sparse', +def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_reg, prefix='sparse_', seq_mask_zero=True): if embedding_size == 'auto': print("Notice:Do not use auto embedding in models other than DCN") @@ -58,8 +56,8 @@ def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_r embeddings_initializer=RandomNormal( mean=0.0, stddev=init_std, seed=seed), embeddings_regularizer=l2(l2_reg), - name=prefix + '_emb_' + str(i) + '-' + feat.name) for i, feat in - enumerate(feature_dim_dict["sparse"])} + name=prefix + 'emb_' + feat.name) for feat in + feature_dim_dict["sparse"]} else: sparse_embedding = {feat.name: Embedding(feat.dimension, embedding_size, @@ -67,8 +65,8 @@ def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_r mean=0.0, stddev=init_std, seed=seed), embeddings_regularizer=l2( l2_reg), - name=prefix + '_emb_' + str(i) + '-' + feat.name) for i, feat in - enumerate(feature_dim_dict["sparse"])} + name=prefix + 'emb_' + feat.name) for feat in + feature_dim_dict["sparse"]} if 'sequence' in feature_dim_dict: count = len(sparse_embedding) @@ -81,7 +79,7 @@ def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_r mean=0.0, stddev=init_std, seed=seed), embeddings_regularizer=l2( l2_reg), - name=prefix + '_emb_' + str(count) + '-' + feat.name, + name=prefix + 'seq_emb_' + feat.name, mask_zero=seq_mask_zero) else: @@ -90,7 +88,7 @@ def create_embedding_dict(feature_dim_dict, embedding_size, init_std, seed, l2_r mean=0.0, stddev=init_std, seed=seed), embeddings_regularizer=l2( l2_reg), - name=prefix + '_emb_' + str(count) + '-' + feat.name, + name=prefix + 'seq_emb_' + feat.name, mask_zero=seq_mask_zero) count += 1 diff --git a/deepctr/layers/__init__.py b/deepctr/layers/__init__.py index 3d84e4d6..75790ad8 100644 --- a/deepctr/layers/__init__.py +++ b/deepctr/layers/__init__.py @@ -7,7 +7,7 @@ OutterProductLayer, FGCNNLayer) from .normalization import LayerNormalization from .sequence import (AttentionSequencePoolingLayer, BiasEncoding, BiLSTM, - KMaxPooling, Position_Embedding, SequencePoolingLayer, + KMaxPooling, SequencePoolingLayer, Transformer, DynamicGRU) from .utils import NoMask, Hash diff --git a/deepctr/layers/activation.py b/deepctr/layers/activation.py index 830f0a38..9207c4aa 100644 --- a/deepctr/layers/activation.py +++ b/deepctr/layers/activation.py @@ -59,14 +59,14 @@ def get_config(self, ): base_config = super(Dice, self).get_config() return dict(list(base_config.items()) + list(config.items())) -def activation_fun(activation, fc): +def activation_layer(activation): if activation == "dice" or activation == "Dice": - fc = Dice()(fc) + act_layer = Dice() elif (isinstance(activation, str)) or (sys.version_info.major == 2 and isinstance(activation, (str, unicode))): - fc = tf.keras.layers.Activation(activation)(fc) + act_layer = tf.keras.layers.Activation(activation) elif issubclass(activation, Layer): - fc = activation()(fc) + act_layer = activation() else: raise ValueError( "Invalid activation,found %s.You should use a str or a Activation Layer Class." % (activation)) - return fc + return act_layer diff --git a/deepctr/layers/core.py b/deepctr/layers/core.py index 289a098b..da39a2f3 100644 --- a/deepctr/layers/core.py +++ b/deepctr/layers/core.py @@ -12,7 +12,7 @@ from tensorflow.python.keras.layers import Layer from tensorflow.python.keras.regularizers import l2 -from .activation import activation_fun +from .activation import activation_layer class LocalActivationUnit(Layer): @@ -76,8 +76,12 @@ def build(self, input_shape): name="kernel") self.bias = self.add_weight( shape=(1,), initializer=Zeros(), name="bias") - #self.dnn = DNN(self.hidden_units, self.activation, self.l2_reg, - # self.dropout_rate, self.use_bn, seed=self.seed) + self.dnn = DNN(self.hidden_units, self.activation, self.l2_reg, + self.dropout_rate, self.use_bn, seed=self.seed) + + self.dense = tf.keras.layers.Lambda(lambda x:tf.nn.bias_add(tf.tensordot( + x[0], x[1], axes=(-1, 0)), x[2])) + super(LocalActivationUnit, self).build( input_shape) # Be sure to call this somewhere! @@ -91,10 +95,9 @@ def call(self, inputs, training=None, **kwargs): att_input = tf.concat( [queries, keys, queries - keys, queries * keys], axis=-1) - att_out = DNN(self.hidden_units, self.activation, self.l2_reg, - self.dropout_rate, self.use_bn, seed=self.seed)(att_input, training=training) - attention_score = tf.keras.layers.Lambda(lambda x:tf.nn.bias_add(tf.tensordot( - x[0], x[1], axes=(-1, 0)), x[2]))([att_out,self.kernel,self.bias]) + att_out = self.dnn(att_input, training=training) + + attention_score = self.dense([att_out,self.kernel,self.bias]) return attention_score @@ -157,6 +160,12 @@ def build(self, input_shape): shape=(self.hidden_units[i],), initializer=Zeros(), trainable=True) for i in range(len(self.hidden_units))] + if self.use_bn: + self.bn_layers = [tf.keras.layers.BatchNormalization() for _ in range(len(self.hidden_units))] + + self.dropout_layers = [tf.keras.layers.Dropout(self.dropout_rate,seed=self.seed+i) for i in range(len(self.hidden_units))] + + self.activation_layers = [activation_layer(self.activation) for _ in range(len(self.hidden_units))] super(DNN, self).build(input_shape) # Be sure to call this somewhere! @@ -171,10 +180,11 @@ def call(self, inputs, training=None, **kwargs): # kernel_initializer=glorot_normal(seed=self.seed), \ # kernel_regularizer=l2(self.l2_reg))(deep_input) if self.use_bn: - fc = tf.keras.layers.BatchNormalization()(fc, training=training) - fc = activation_fun(self.activation, fc) + fc = self.bn_layers[i](fc, training=training) + + fc = self.activation_layers[i](fc) - fc = tf.keras.layers.Dropout(self.dropout_rate,seed=self.seed)(fc, training=training) + fc = self.dropout_layers[i](fc,training = training) deep_input = fc return deep_input diff --git a/deepctr/layers/interaction.py b/deepctr/layers/interaction.py index 54b53440..b2035ee9 100644 --- a/deepctr/layers/interaction.py +++ b/deepctr/layers/interaction.py @@ -14,8 +14,9 @@ glorot_uniform) from tensorflow.python.keras.layers import Layer from tensorflow.python.keras.regularizers import l2 +from tensorflow.python.layers import utils -from .activation import activation_fun +from .activation import activation_layer from .utils import concat_fun @@ -87,6 +88,8 @@ def build(self, input_shape): embedding_size, 1), initializer=glorot_normal(seed=self.seed), name="projection_p") self.dropout = tf.keras.layers.Dropout(self.dropout_rate, seed=self.seed) + self.tensordot = tf.keras.layers.Lambda(lambda x: tf.tensordot(x[0], x[1], axes=(-1, 0))) + # Be sure to call this somewhere! super(AFMLayer, self).build(input_shape) @@ -119,9 +122,7 @@ def call(self, inputs, training=None, **kwargs): attention_output = self.dropout(attention_output) # training - afm_out = tf.keras.layers.Lambda(lambda x: tf.tensordot(x[0], x[1] - , axes=(-1, 0)))([attention_output, self.projection_p]) - + afm_out = self.tensordot([attention_output, self.projection_p]) return afm_out def compute_output_shape(self, input_shape): @@ -246,6 +247,8 @@ def build(self, input_shape): else: self.field_nums.append(size) + self.activation_layers = [activation_layer(self.activation) for _ in self.layer_size] + super(CIN, self).build(input_shape) # Be sure to call this somewhere! def call(self, inputs, **kwargs): @@ -275,7 +278,7 @@ def call(self, inputs, **kwargs): curr_out = tf.nn.bias_add(curr_out, self.bias[idx]) - curr_out = activation_fun(self.activation, curr_out) + curr_out = self.activation_layers[idx](curr_out) curr_out = tf.transpose(curr_out, perm=[0, 2, 1]) @@ -783,6 +786,26 @@ def build(self, input_shape): if len(input_shape) != 3: raise ValueError( "Unexpected inputs dimensions %d, expect to be 3 dimensions" % (len(input_shape))) + self.conv_layers = [] + self.pooling_layers = [] + self.dense_layers = [] + pooling_shape = input_shape.as_list() + [1, ] + embedding_size = input_shape[-1].value + for i in range(1, len(self.filters) + 1): + filters = self.filters[i - 1] + width = self.kernel_width[i - 1] + new_filters = self.new_maps[i - 1] + pooling_width = self.pooling_width[i - 1] + conv_output_shape = self._conv_output_shape(pooling_shape, (width, 1)) + pooling_shape = self._pooling_output_shape(conv_output_shape, (pooling_width, 1)) + self.conv_layers.append(tf.keras.layers.Conv2D(filters=filters, kernel_size=(width, 1), strides=(1, 1), + padding='same', + activation='tanh', use_bias=True, )) + self.pooling_layers.append(tf.keras.layers.MaxPooling2D(pool_size=(pooling_width, 1))) + self.dense_layers.append(tf.keras.layers.Dense(pooling_shape[1] * embedding_size * new_filters, + activation='tanh', use_bias=True)) + + self.flatten = tf.keras.layers.Flatten() super(FGCNNLayer, self).build( input_shape) # Be sure to call this somewhere! @@ -794,24 +817,24 @@ def call(self, inputs, **kwargs): "Unexpected inputs dimensions %d, expect to be 3 dimensions" % (K.ndim(inputs))) embedding_size = inputs.shape[-1].value - pooling_result = tf.keras.layers.Lambda(lambda x: tf.expand_dims(x, axis=3))(inputs) + pooling_result = tf.expand_dims(inputs, axis=3) new_feature_list = [] for i in range(1, len(self.filters) + 1): - filters = self.filters[i - 1] - width = self.kernel_width[i - 1] new_filters = self.new_maps[i - 1] - pooling_width = self.pooling_width[i - 1] - conv_result = tf.keras.layers.Conv2D(filters=filters, kernel_size=(width, 1), strides=(1, 1), - padding='same', - activation='tanh', use_bias=True, )(pooling_result) - pooling_result = tf.keras.layers.MaxPooling2D(pool_size=(pooling_width, 1))(conv_result) - flatten_result = tf.keras.layers.Flatten()(pooling_result) - new_result = tf.keras.layers.Dense(pooling_result.shape[1].value * embedding_size * new_filters, - activation='tanh', use_bias=True)(flatten_result) + + conv_result = self.conv_layers[i - 1](pooling_result) + + pooling_result = self.pooling_layers[i - 1](conv_result) + + flatten_result = self.flatten(pooling_result) + + new_result = self.dense_layers[i - 1](flatten_result) + new_feature_list.append( - tf.keras.layers.Reshape((pooling_result.shape[1].value * new_filters, embedding_size))(new_result)) + tf.reshape(new_result, (-1, pooling_result.shape[1].value * new_filters, embedding_size))) + new_features = concat_fun(new_feature_list, axis=1) return new_features @@ -832,3 +855,28 @@ def get_config(self, ): 'pooling_width': self.pooling_width} base_config = super(FGCNNLayer, self).get_config() return dict(list(base_config.items()) + list(config.items())) + + def _conv_output_shape(self, input_shape, kernel_size): + # channels_last + space = input_shape[1:-1] + new_space = [] + for i in range(len(space)): + new_dim = utils.conv_output_length( + space[i], + kernel_size[i], + padding='same', + stride=1, + dilation=1) + new_space.append(new_dim) + return ([input_shape[0]] + new_space + [self.filters]) + + def _pooling_output_shape(self, input_shape, pool_size): + # channels_last + + rows = input_shape[1] + cols = input_shape[2] + rows = utils.conv_output_length(rows, pool_size[0], 'valid', + pool_size[0]) + cols = utils.conv_output_length(cols, pool_size[1], 'valid', + pool_size[1]) + return [input_shape[0], rows, cols, input_shape[3]] diff --git a/deepctr/layers/sequence.py b/deepctr/layers/sequence.py index b00054d2..32bfe194 100644 --- a/deepctr/layers/sequence.py +++ b/deepctr/layers/sequence.py @@ -379,6 +379,9 @@ def __init__(self, att_embedding_size=1, head_num=8, dropout_rate=0.0, use_posit def build(self, input_shape): embedding_size = input_shape[0][-1].value + if self.num_units != embedding_size: + raise ValueError( + "att_embedding_size * head_num must equal the last dimension size of inputs,got %d * %d != %d" % (self.att_embedding_size,self.head_num,embedding_size)) self.seq_len_max = input_shape[0][-2].value self.W_Query = self.add_weight(name='query', shape=[embedding_size, self.att_embedding_size * self.head_num], dtype=tf.float32, @@ -507,47 +510,6 @@ def get_config(self, ): base_config = super(Transformer, self).get_config() return dict(list(base_config.items()) + list(config.items())) - -class Position_Embedding(Layer): - - def __init__(self, size=None, scale=False, mode='sum', **kwargs): - self.size = size # must be even - self.scale = scale - self.mode = mode - super(Position_Embedding, self).__init__(**kwargs) - self.supports_masking = True - - def call(self, x, mask=None): - if (self.size == None) or (self.mode == 'sum'): - self.size = int(x.shape[-1]) - - position_j = 1. / \ - K.pow(10000., 2 * K.arange(self.size / 2, dtype='float32') / self.size) - position_j = K.expand_dims(position_j, 0) - - position_i = tf.cumsum(K.ones_like(x[:, :, 0]), 1) - 1 - position_i = K.expand_dims(position_i, 2) - position_ij = K.dot(position_i, position_j) - outputs = K.concatenate( - [K.cos(position_ij), K.sin(position_ij)], 2) - - if self.mode == 'sum': - if self.scale: - outputs = outputs * self.size ** 0.5 - return x + outputs - elif self.mode == 'concat': - return K.concatenate([outputs, x], 2) - - def compute_mask(self, inputs, mask=None): - return None - - def compute_output_shape(self, input_shape): - if self.mode == 'sum': - return input_shape - elif self.mode == 'concat': - return (input_shape[0], input_shape[1], input_shape[2] + self.size) - - def positional_encoding(inputs, pos_embedding_trainable=True, zero_pad=False, diff --git a/deepctr/models/__init__.py b/deepctr/models/__init__.py index f81be93c..9eda00de 100644 --- a/deepctr/models/__init__.py +++ b/deepctr/models/__init__.py @@ -13,6 +13,7 @@ from .wdl import WDL from .xdeepfm import xDeepFM from .fgcnn import FGCNN +from .dsin import DSIN __all__ = ["AFM", "CCPM","DCN", "MLR", "DeepFM", - "MLR", "NFM", "DIN", "DIEN", "FNN", "PNN", "WDL", "xDeepFM", "AutoInt", "NFFM","FGCNN"] + "MLR", "NFM", "DIN", "DIEN", "FNN", "PNN", "WDL", "xDeepFM", "AutoInt", "NFFM","FGCNN","DSIN"] diff --git a/deepctr/models/dien.py b/deepctr/models/dien.py index 2bb1bbe4..566cf77e 100644 --- a/deepctr/models/dien.py +++ b/deepctr/models/dien.py @@ -139,7 +139,7 @@ def DIEN(feature_dim_dict, seq_feature_list, embedding_size=8, hist_len_max=16, gru_type="GRU", use_negsampling=False, alpha=1.0, use_bn=False, dnn_hidden_units=(200, 80), dnn_activation='relu', att_hidden_units=(64, 16), att_activation="dice", att_weight_normalization=True, - l2_reg_dnn=0, l2_reg_embedding=1e-5, dnn_dropout=0, init_std=0.0001, seed=1024, task='binary'): + l2_reg_dnn=0, l2_reg_embedding=1e-6, dnn_dropout=0, init_std=0.0001, seed=1024, task='binary'): """Instantiates the Deep Interest Evolution Network architecture. :param feature_dim_dict: dict,to indicate sparse field (**now only support sparse feature**)like {'sparse':{'field_1':4,'field_2':3,'field_3':2},'dense':[]} diff --git a/deepctr/models/dsin.py b/deepctr/models/dsin.py new file mode 100644 index 00000000..94dc26ab --- /dev/null +++ b/deepctr/models/dsin.py @@ -0,0 +1,170 @@ +# coding: utf-8 +""" +Author: + Weichen Shen,wcshen1994@163.com + +Reference: + [1] Feng Y, Lv F, Shen W, et al. Deep Session Interest Network for Click-Through Rate Prediction[J]. arXiv preprint arXiv:1905.06482, 2019.(https://arxiv.org/abs/1905.06482) + +""" + +from collections import OrderedDict + +from tensorflow.python.keras.initializers import RandomNormal +from tensorflow.python.keras.layers import (Concatenate, Dense, Embedding, + Flatten, Input) +from tensorflow.python.keras.models import Model +from tensorflow.python.keras.regularizers import l2 + +from ..input_embedding import (create_singlefeat_inputdict, + get_embedding_vec_list, get_inputs_list) +from ..layers.core import DNN, PredictionLayer +from ..layers.sequence import (AttentionSequencePoolingLayer, BiasEncoding, + BiLSTM, Transformer) +from ..layers.utils import NoMask, concat_fun +from ..utils import check_feature_config_dict + + +def DSIN(feature_dim_dict, sess_feature_list, embedding_size=8, sess_max_count=5, sess_len_max=10, bias_encoding=False, + att_embedding_size=1, att_head_num=8, dnn_hidden_units=(200, 80), dnn_activation='sigmoid', dnn_dropout=0, + dnn_use_bn=False, l2_reg_dnn=0, l2_reg_embedding=1e-6, init_std=0.0001, seed=1024, task='binary', + ): + """Instantiates the Deep Session Interest Network architecture. + + :param feature_dim_dict: dict,to indicate sparse field (**now only support sparse feature**)like {'sparse':{'field_1':4,'field_2':3,'field_3':2},'dense':[]} + :param sess_feature_list: list,to indicate session feature sparse field (**now only support sparse feature**),must be a subset of ``feature_dim_dict["sparse"]`` + :param embedding_size: positive integer,sparse feature embedding_size. + :param sess_max_count: positive int, to indicate the max number of sessions + :param sess_len_max: positive int, to indicate the max length of each session + :param bias_encoding: bool. Whether use bias encoding or postional encoding + :param att_embedding_size: positive int, the embedding size of each attention head + :param att_head_num: positive int, the number of attention head + :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of deep net + :param dnn_activation: Activation function to use in deep net + :param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate. + :param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in deep net + :param l2_reg_dnn: float. L2 regularizer strength applied to DNN + :param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector + :param init_std: float,to use as the initialize std of embedding vector + :param seed: integer ,to use as random seed. + :param task: str, ``"binary"`` for binary logloss or ``"regression"`` for regression loss + :return: A Keras model instance. + + """ + check_feature_config_dict(feature_dim_dict) + + if (att_embedding_size * att_head_num != len(sess_feature_list) * embedding_size): + raise ValueError( + "len(session_feature_lsit) * embedding_size must equal to att_embedding_size * att_head_num ,got %d * %d != %d *%d" % ( + len(sess_feature_list), embedding_size, att_embedding_size, att_head_num)) + + sparse_input, dense_input, user_behavior_input_dict, _, user_sess_length = get_input( + feature_dim_dict, sess_feature_list, sess_max_count, sess_len_max) + + sparse_embedding_dict = {feat.name: Embedding(feat.dimension, embedding_size, + embeddings_initializer=RandomNormal( + mean=0.0, stddev=init_std, seed=seed), + embeddings_regularizer=l2( + l2_reg_embedding), + name='sparse_emb_' + + str(i) + '-' + feat.name, + mask_zero=(feat.name in sess_feature_list)) for i, feat in + enumerate(feature_dim_dict["sparse"])} + + query_emb_list = get_embedding_vec_list(sparse_embedding_dict, sparse_input, feature_dim_dict["sparse"], + sess_feature_list, sess_feature_list) + + query_emb = concat_fun(query_emb_list) + + deep_input_emb_list = get_embedding_vec_list(sparse_embedding_dict, sparse_input, feature_dim_dict["sparse"], + mask_feat_list=sess_feature_list) + deep_input_emb = concat_fun(deep_input_emb_list) + deep_input_emb = Flatten()(NoMask()(deep_input_emb)) + + tr_input = sess_interest_division(sparse_embedding_dict, user_behavior_input_dict, feature_dim_dict['sparse'], + sess_feature_list, sess_max_count, bias_encoding=bias_encoding) + + Self_Attention = Transformer(att_embedding_size, att_head_num, dropout_rate=0, use_layer_norm=False, + use_positional_encoding=(not bias_encoding), seed=seed, supports_masking=True, + blinding=True) + sess_fea = sess_interest_extractor( + tr_input, sess_max_count, Self_Attention) + + interest_attention_layer = AttentionSequencePoolingLayer(att_hidden_units=(64, 16), weight_normalization=True, + supports_masking=False)( + [query_emb, sess_fea, user_sess_length]) + + lstm_outputs = BiLSTM(len(sess_feature_list) * embedding_size, + layers=2, res_layers=0, dropout_rate=0.2, )(sess_fea) + lstm_attention_layer = AttentionSequencePoolingLayer(att_hidden_units=(64, 16), weight_normalization=True)( + [query_emb, lstm_outputs, user_sess_length]) + + deep_input_emb = Concatenate()( + [deep_input_emb, Flatten()(interest_attention_layer), Flatten()(lstm_attention_layer)]) + if len(dense_input) > 0: + deep_input_emb = Concatenate()( + [deep_input_emb] + list(dense_input.values())) + + output = DNN(dnn_hidden_units, dnn_activation, l2_reg_dnn, + dnn_dropout, dnn_use_bn, seed)(deep_input_emb) + output = Dense(1, use_bias=False, activation=None)(output) + output = PredictionLayer(task)(output) + + sess_input_list = [] + # sess_input_length_list = [] + for i in range(sess_max_count): + sess_name = "sess_" + str(i) + sess_input_list.extend(get_inputs_list( + [user_behavior_input_dict[sess_name]])) + # sess_input_length_list.append(user_behavior_length_dict[sess_name]) + + model_input_list = get_inputs_list([sparse_input, dense_input]) + sess_input_list + [ + user_sess_length] + + model = Model(inputs=model_input_list, outputs=output) + + return model + + +def get_input(feature_dim_dict, seq_feature_list, sess_max_count, seq_max_len): + sparse_input, dense_input = create_singlefeat_inputdict(feature_dim_dict) + user_behavior_input = {} + for idx in range(sess_max_count): + sess_input = OrderedDict() + for i, feat in enumerate(seq_feature_list): + sess_input[feat] = Input( + shape=(seq_max_len,), name='seq_' + str(idx) + str(i) + '-' + feat) + + user_behavior_input["sess_" + str(idx)] = sess_input + + user_behavior_length = {"sess_" + str(idx): Input(shape=(1,), name='seq_length' + str(idx)) for idx in + range(sess_max_count)} + user_sess_length = Input(shape=(1,), name='sess_length') + + return sparse_input, dense_input, user_behavior_input, user_behavior_length, user_sess_length + + +def sess_interest_division(sparse_embedding_dict, user_behavior_input_dict, sparse_fg_list, sess_feture_list, + sess_max_count, + bias_encoding=True): + tr_input = [] + for i in range(sess_max_count): + sess_name = "sess_" + str(i) + keys_emb_list = get_embedding_vec_list(sparse_embedding_dict, user_behavior_input_dict[sess_name], + sparse_fg_list, sess_feture_list, sess_feture_list) + # [sparse_embedding_dict[feat](user_behavior_input_dict[sess_name][feat]) for feat in + # sess_feture_list] + keys_emb = concat_fun(keys_emb_list) + tr_input.append(keys_emb) + if bias_encoding: + tr_input = BiasEncoding(sess_max_count)(tr_input) + return tr_input + + +def sess_interest_extractor(tr_input, sess_max_count, TR): + tr_out = [] + for i in range(sess_max_count): + tr_out.append(TR( + [tr_input[i], tr_input[i]])) + sess_fea = concat_fun(tr_out, axis=1) + return sess_fea diff --git a/deepctr/models/fgcnn.py b/deepctr/models/fgcnn.py index eb5e7c4f..d537a931 100644 --- a/deepctr/models/fgcnn.py +++ b/deepctr/models/fgcnn.py @@ -51,7 +51,8 @@ def unstack(input_tensor): def FGCNN(feature_dim_dict, embedding_size=8, conv_kernel_width=(7, 7, 7, 7), conv_filters=(14, 16, 18, 20), new_maps=(3, 3, 3, 3), - pooling_width=(2, 2, 2, 2), dnn_hidden_units=(128,), l2_reg_embedding=1e-5, l2_reg_dnn=0, dnn_dropout=0, init_std=0.0001, seed=1024, + pooling_width=(2, 2, 2, 2), dnn_hidden_units=(128,), l2_reg_embedding=1e-5, l2_reg_dnn=0, dnn_dropout=0, + init_std=0.0001, seed=1024, task='binary', ): """Instantiates the Feature Generation by Convolutional Neural Network architecture. diff --git a/deepctr/utils.py b/deepctr/utils.py index 2dbcb00f..ebaff686 100644 --- a/deepctr/utils.py +++ b/deepctr/utils.py @@ -47,13 +47,14 @@ def check(version): releases = j.get('releases', []) for release in releases: ver = parse(release) - if not ver.is_prerelease: - latest_version = max(latest_version, ver) + if ver.is_prerelease or ver.is_postrelease: + continue + latest_version = max(latest_version, ver) if latest_version > version: logging.warning( '\nDeepCTR version {0} detected. Your version is {1}.\nUse `pip install -U deepctr` to upgrade.Changelog: https://github.com/shenweichen/DeepCTR/releases/tag/v{0}'.format( latest_version, version)) - except Exception: + except Exception as e: return Thread(target=check, args=(version,)).start() diff --git a/docs/pics/DSIN.png b/docs/pics/DSIN.png new file mode 100644 index 0000000000000000000000000000000000000000..117c6db64fa6cbc3896c1125f5fce215347f919a GIT binary patch literal 222853 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/source/Features.md b/docs/source/Features.md index 5d3ccf4a..2a72bd90 100644 --- a/docs/source/Features.md +++ b/docs/source/Features.md @@ -143,6 +143,7 @@ User's interest are represented by weighted sum of user behaviors. user's interest vector and other embedding vectors are concatenated and fed into a MLP to get the prediction. [**DIN Model API**](./deepctr.models.din.html) + [DIN example](https://github.com/shenweichen/DeepCTR/tree/master/examples/run_din.py) ![DIN](../pics/DIN.png) @@ -153,7 +154,8 @@ user's interest vector and other embedding vectors are concatenated and fed into Deep Interest Evolution Network (DIEN) uses interest extractor layer to capture temporal interests from history behavior sequence. At this layer, an auxiliary loss is proposed to supervise interest extracting at each step. As user interests are diverse, especially in the e-commerce system, interest evolving layer is proposed to capture interest evolving process that is relative to the target item. At interest evolving layer, attention mechanism is embedded into the sequential structure novelly, and the effects of relative interests are strengthened during interest evolution. -[**DIEN Model API**](./deepctr.models.dien.html) +[**DIEN Model API**](./deepctr.models.dien.html) + [DIEN example](https://github.com/shenweichen/DeepCTR/tree/master/examples/run_dien.py) ![DIEN](../pics/DIEN.png) @@ -210,6 +212,18 @@ FGCNN models with two components: Feature Generation and Deep Classifier. Featur [Liu B, Tang R, Chen Y, et al. Feature Generation by Convolutional Neural Network for Click-Through Rate Prediction[J]. arXiv preprint arXiv:1904.04447, 2019.](https://arxiv.org/pdf/1904.04447) +### DSIN(Deep Session Interest Network) + +Deep Session Interest Network (DSIN) extracts users' multiple historical sessions in their behavior sequences. First it uses self-attention mechanism with bias encoding to extract users' interests in each session. Then apply Bi-LSTM to model how users' interests evolve and interact among sessions. Finally, local activation unit is used to adaptively learn the influences of various session interests on the target item. + +[**DSIN Model API**](./deepctr.models.dsin.html) + +[DSIN example](https://github.com/shenweichen/DeepCTR/tree/master/examples/run_dsin.py) + +![DSIN](../pics/DSIN.png) + +[Feng Y, Lv F, Shen W, et al. Deep Session Interest Network for Click-Through Rate Prediction[J]. arXiv preprint arXiv:1905.06482, 2019.](https://arxiv.org/abs/1905.06482) + ## Layers The models of deepctr are modular, diff --git a/docs/source/History.md b/docs/source/History.md index 7739ec12..88578a43 100644 --- a/docs/source/History.md +++ b/docs/source/History.md @@ -1,4 +1,5 @@ # History +- 05/19/2019 : [v0.4.1](https://github.com/shenweichen/DeepCTR/releases/tag/v0.4.1) released.Add [DSIN](./Features.html#dsin-deep-session-interest-network). - 05/04/2019 : [v0.4.0](https://github.com/shenweichen/DeepCTR/releases/tag/v0.4.0) released.Support [feature hashing on the fly](./Examples.html#classification-criteo-with-feature-hashing-on-the-fly) and python2.7. - 04/27/2019 : [v0.3.4](https://github.com/shenweichen/DeepCTR/releases/tag/v0.3.4) released.Add [FGCNN](./Features.html#fgcnn-feature-generation-by-convolutional-neural-network) and `FGCNNLayer`. - 04/21/2019 : [v0.3.3](https://github.com/shenweichen/DeepCTR/releases/tag/v0.3.3) released.Add [CCPM](./Features.html#ccpm-convolutional-click-prediction-model). diff --git a/docs/source/Quick-Start.md b/docs/source/Quick-Start.md index 4a9c017e..1602a26a 100644 --- a/docs/source/Quick-Start.md +++ b/docs/source/Quick-Start.md @@ -1,19 +1,18 @@ # Quick-Start ## Installation Guide -`deepctr` is available for `python 2.7`and `python 3.4-3.6`。 +Now `deepctr` is available for python `2.7 `and `3.4, 3.5, 3.6`. +`deepctr` depends on tensorflow, you can specify to install the cpu version or gpu version through `pip`. ### CPU version -Install `deepctr` package is through `pip` + ```bash -$ pip install deepctr +$ pip install deepctr[cpu] ``` ### GPU version -If you have a `tensorflow-gpu` on your local machine,make sure its version is -**`tensorflow-gpu>=1.4.0,!=1.7.*,!=1.8.*,<=1.13.1`** -Then,use the following command to install + ```bash -$ pip install deepctr --no-deps +$ pip install deepctr[gpu] ``` ## Getting started: 4 steps to DeepCTR diff --git a/docs/source/conf.py b/docs/source/conf.py index b3dcc8b8..75067f1c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,7 +26,7 @@ # The short X.Y version version = '' # The full version, including alpha/beta/rc tags -release = '0.4.0' +release = '0.4.1' # -- General configuration --------------------------------------------------- diff --git a/docs/source/deepctr.models.dsin.rst b/docs/source/deepctr.models.dsin.rst new file mode 100644 index 00000000..041ba701 --- /dev/null +++ b/docs/source/deepctr.models.dsin.rst @@ -0,0 +1,7 @@ +deepctr.models.dsin module +========================== + +.. automodule:: deepctr.models.dsin + :members: + :no-undoc-members: + :no-show-inheritance: diff --git a/docs/source/deepctr.models.rst b/docs/source/deepctr.models.rst index 369b0dff..913d0912 100644 --- a/docs/source/deepctr.models.rst +++ b/docs/source/deepctr.models.rst @@ -13,6 +13,7 @@ Submodules deepctr.models.deepfm deepctr.models.dien deepctr.models.din + deepctr.models.dsin deepctr.models.fgcnn deepctr.models.fnn deepctr.models.mlr diff --git a/docs/source/index.rst b/docs/source/index.rst index 276ac560..998afd23 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -35,12 +35,12 @@ You can read the latest code at https://github.com/shenweichen/DeepCTR News ----- +05/19/2019 : Add `DSIN <./Features.html#dsin-deep-session-interest-network>`_ . `Changelog `_ + 05/04/2019 : Support `feature hashing on the fly <./Examples.html#classification-criteo-with-feature-hashing-on-the-fly>`_ and python2.7. `Changelog `_ 04/27/2019 : Add `FGCNN <./Features.html#fgcnn-feature-generation-by-convolutional-neural-network>`_ and ``FGCNNLayer``. `Changelog `_ -04/21/2019 : Add `CCPM <./Features.html#ccpm-convolutional-click-prediction-model>`_ . `Changelog `_ - .. toctree:: :maxdepth: 2 :caption: Home: diff --git a/examples/run_all.sh b/examples/run_all.sh index 92de2f9b..76d7cdaf 100755 --- a/examples/run_all.sh +++ b/examples/run_all.sh @@ -3,7 +3,7 @@ function run_py(){ code_path=./ - for file in `ls` + for file in $(ls) do if [[ $file =~ .py ]] then @@ -20,21 +20,23 @@ function run_py(){ } -#python2 -python_version=python2 -cd .. -pip install deepctr -e . -cd ./examples -run_py -echo "all examples run succeed in python2.7" ## python3 python_version=python3 source activate py36 cd .. -pip install deepctr -e . +pip install deepctr -U -e . +cd ./examples +run_py + +#python2 +python_version=python2 +cd .. +pip install deepctr -U -e . cd ./examples run_py +echo "all examples run succeed in python2.7" + echo "all examples run succeed in python3.6" diff --git a/examples/run_dsin.py b/examples/run_dsin.py new file mode 100644 index 00000000..3f6f2e8a --- /dev/null +++ b/examples/run_dsin.py @@ -0,0 +1,49 @@ +import numpy as np + +from deepctr.models import DSIN +from deepctr.utils import SingleFeat + + +def get_xy_fd(hash_flag=False): + feature_dim_dict = {"sparse": [SingleFeat('user', 3, hash_flag), SingleFeat( + 'gender', 2, hash_flag), SingleFeat('item', 3 + 1, hash_flag), SingleFeat('item_gender', 2 + 1, hash_flag)], + "dense": [SingleFeat('score', 0)]} + behavior_feature_list = ["item", "item_gender"] + uid = np.array([0, 1, 2]) + ugender = np.array([0, 1, 0]) + iid = np.array([1, 2, 3]) # 0 is mask value + igender = np.array([1, 2, 1]) # 0 is mask value + score = np.array([0.1, 0.2, 0.3]) + + sess1_iid = np.array([[1, 2, 3, 0], [1, 2, 3, 0], [0, 0, 0, 0]]) + sess1_igender = np.array([[1, 1, 2, 0], [2, 1, 1, 0], [0, 0, 0, 0]]) + + sess2_iid = np.array([[1, 2, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) + sess2_igender = np.array([[1, 1, 2, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) + + sess_number = np.array([2, 1, 0]) + + feature_dict = {'user': uid, 'gender': ugender, 'item': iid, 'item_gender': igender, + 'sess1_item': sess1_iid, 'sess1_item_gender': sess1_igender, 'score': score, + 'sess2_item': sess2_iid, 'sess2_item_gender': sess2_igender, } + + x = [feature_dict[feat.name] for feat in feature_dim_dict["sparse"]] + [feature_dict[feat.name] for feat in + feature_dim_dict["dense"]] + [ + feature_dict['sess1_' + feat] for feat in behavior_feature_list] + [ + feature_dict['sess2_' + feat] for feat in behavior_feature_list] + + x += [sess_number] + + y = [1, 0, 1] + return x, y, feature_dim_dict, behavior_feature_list + +if __name__ == "__main__": + x, y, feature_dim_dict, behavior_feature_list = get_xy_fd(True) + + model = DSIN(feature_dim_dict, behavior_feature_list, sess_max_count=2, sess_len_max=4, embedding_size=4, + dnn_hidden_units=[4, 4, 4], dnn_dropout=0.5, ) + + model.compile('adam', 'binary_crossentropy', + metrics=['binary_crossentropy']) + history = model.fit(x, y, verbose=1, epochs=10, validation_split=0.5) + diff --git a/setup.py b/setup.py index 4855dbf1..68813562 100644 --- a/setup.py +++ b/setup.py @@ -4,13 +4,13 @@ long_description = fh.read() REQUIRED_PACKAGES = [ - 'tensorflow>=1.4.0,!=1.7.*,!=1.8.*,<=1.13.1', + #'tensorflow>=1.4.0,!=1.7.*,!=1.8.*,<=1.13.1', 'h5py' ] setuptools.setup( name="deepctr", - version="0.4.0", + version="0.4.1", author="Weichen Shen", author_email="wcshen1994@163.com", description="Easy-to-use,Modular and Extendible package of deep learning based CTR(Click Through Rate) prediction models with tensorflow.", @@ -23,8 +23,8 @@ python_requires=">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", # '>=3.4', # 3.4.6 install_requires=REQUIRED_PACKAGES, extras_require={ - "tf": ['tensorflow>=1.4.0,!=1.7.*,!=1.8.*,<=1.12.0'], - "tf_gpu": ['tensorflow-gpu>=1.4.0,!=1.7.*,!=1.8.*,<=1.12.0'], + "cpu": ["tensorflow>=1.4.0,!=1.7.*,!=1.8.*,<=1.13.1"], + "gpu": ["tensorflow-gpu>=1.4.0,!=1.7.*,!=1.8.*,<=1.13.1"], }, entry_points={ }, diff --git a/tests/models/DSIN_test.py b/tests/models/DSIN_test.py new file mode 100755 index 00000000..d8b66e94 --- /dev/null +++ b/tests/models/DSIN_test.py @@ -0,0 +1,53 @@ +import numpy as np + +from deepctr.models.dsin import DSIN +from deepctr.utils import SingleFeat +from ..utils import check_model + + +def get_xy_fd(hash_flag=False): + feature_dim_dict = {"sparse": [SingleFeat('user', 3, hash_flag), SingleFeat( + 'gender', 2, hash_flag), SingleFeat('item', 3 + 1, hash_flag), SingleFeat('item_gender', 2 + 1, hash_flag)], + "dense": [SingleFeat('score', 0)]} + behavior_feature_list = ["item", "item_gender"] + uid = np.array([0, 1, 2]) + ugender = np.array([0, 1, 0]) + iid = np.array([1, 2, 3]) # 0 is mask value + igender = np.array([1, 2, 1]) # 0 is mask value + score = np.array([0.1, 0.2, 0.3]) + + sess1_iid = np.array([[1, 2, 3, 0], [1, 2, 3, 0], [0, 0, 0, 0]]) + sess1_igender = np.array([[1, 1, 2, 0], [2, 1, 1, 0], [0, 0, 0, 0]]) + + sess2_iid = np.array([[1, 2, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) + sess2_igender = np.array([[1, 1, 2, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) + + sess_number = np.array([2, 1, 0]) + + feature_dict = {'user': uid, 'gender': ugender, 'item': iid, 'item_gender': igender, + 'sess1_item': sess1_iid, 'sess1_item_gender': sess1_igender, 'score': score, + 'sess2_item': sess2_iid, 'sess2_item_gender': sess2_igender, } + + x = [feature_dict[feat.name] for feat in feature_dim_dict["sparse"]] + [feature_dict[feat.name] for feat in + feature_dim_dict["dense"]] + [ + feature_dict['sess1_' + feat] for feat in behavior_feature_list] + [ + feature_dict['sess2_' + feat] for feat in behavior_feature_list] + + x += [sess_number] + + y = [1, 0, 1] + return x, y, feature_dim_dict, behavior_feature_list + + +def test_DSIN(): + model_name = "DSIN" + + x, y, feature_dim_dict, behavior_feature_list = get_xy_fd(True) + + model = DSIN(feature_dim_dict, behavior_feature_list, sess_max_count=2, sess_len_max=4, embedding_size=4, + dnn_hidden_units=[4, 4, 4], dnn_dropout=0.5, ) + check_model(model, model_name, x, y) + + +if __name__ == "__main__": + pass diff --git a/tests/models/FGCNN_test.py b/tests/models/FGCNN_test.py index 738ee96f..23a7372a 100644 --- a/tests/models/FGCNN_test.py +++ b/tests/models/FGCNN_test.py @@ -17,7 +17,8 @@ def test_FGCNN(sparse_feature_num, dense_feature_num): sample_size, sparse_feature_num, dense_feature_num) model = FGCNN(feature_dim_dict, conv_kernel_width=(3, 2), conv_filters=(2, 1), new_maps=( - 2, 2), pooling_width=(2, 2), dnn_hidden_units=[32, ], dnn_dropout=0.5, ) + 2, 2), pooling_width=(2, 2), dnn_hidden_units=(32, ), dnn_dropout=0.5, ) + # TODO: add model_io check check_model(model, model_name, x, y, check_model_io=False) @@ -27,7 +28,7 @@ def test_FGCNN(sparse_feature_num, dense_feature_num): ] ) def test_FGCNN_without_seq(sparse_feature_num, dense_feature_num): - model_name = "FGCNN" + model_name = "FGCNN_noseq" sample_size = SAMPLE_SIZE x, y, feature_dim_dict = get_test_data(