From 353aa0679dc1171e27a4aa62b426a2f1da4396db Mon Sep 17 00:00:00 2001 From: Jason Zan Date: Wed, 5 May 2021 18:29:27 +0800 Subject: [PATCH 1/4] Add IFM and DIFM model (#353) Add IFM and DIFM model --- README.md | 2 + deepctr/feature_column.py | 11 ++++- deepctr/layers/__init__.py | 19 ++++---- deepctr/layers/interaction.py | 5 ++- deepctr/models/__init__.py | 4 +- deepctr/models/difm.py | 83 +++++++++++++++++++++++++++++++++++ deepctr/models/ifm.py | 74 +++++++++++++++++++++++++++++++ tests/models/DIFM_test.py | 22 ++++++++++ tests/models/IFM_test.py | 24 ++++++++++ 9 files changed, 231 insertions(+), 13 deletions(-) create mode 100644 deepctr/models/difm.py create mode 100644 deepctr/models/ifm.py create mode 100644 tests/models/DIFM_test.py create mode 100644 tests/models/IFM_test.py diff --git a/README.md b/README.md index 7404a224..a9e8a1f5 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,9 @@ Let's [**Get Started!**](https://deepctr-doc.readthedocs.io/en/latest/Quick-Star | FiBiNET | [RecSys 2019][FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction](https://arxiv.org/pdf/1905.09433.pdf) | | FLEN | [arxiv 2019][FLEN: Leveraging Field for Scalable CTR Prediction](https://arxiv.org/pdf/1911.04690.pdf) | | BST | [DLP-KDD 2019][Behavior sequence transformer for e-commerce recommendation in Alibaba](https://arxiv.org/pdf/1905.06874.pdf) | +| IFM | [IJCAI 2019][An Input-aware Factorization Machine for Sparse Prediction](https://www.ijcai.org/Proceedings/2019/0203.pdf) | | DCN V2 | [arxiv 2020][DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems](https://arxiv.org/abs/2008.13535) | +| DIFM | [IJCAI 2020][A Dual Input-aware Factorization Machine for CTR Prediction](https://www.ijcai.org/Proceedings/2020/0434.pdf) | ## Citation diff --git a/deepctr/feature_column.py b/deepctr/feature_column.py index 69f55b09..cb54713b 100644 --- a/deepctr/feature_column.py +++ b/deepctr/feature_column.py @@ -1,9 +1,10 @@ +import tensorflow as tf from collections import namedtuple, OrderedDict from copy import copy from itertools import chain from tensorflow.python.keras.initializers import RandomNormal, Zeros -from tensorflow.python.keras.layers import Input +from tensorflow.python.keras.layers import Input, Lambda from .inputs import create_embedding_matrix, embedding_lookup, get_dense_input, varlen_embedding_lookup, \ get_varlen_pooling_list, mergeDict @@ -145,7 +146,7 @@ def build_input_features(feature_columns, prefix=''): def get_linear_logit(features, feature_columns, units=1, use_bias=False, seed=1024, prefix='linear', - l2_reg=0): + l2_reg=0, sparse_feat_refine_weight=None): linear_feature_columns = copy(feature_columns) for i in range(len(linear_feature_columns)): if isinstance(linear_feature_columns[i], SparseFeat): @@ -166,9 +167,15 @@ def get_linear_logit(features, feature_columns, units=1, use_bias=False, seed=10 if len(linear_emb_list[i]) > 0 and len(dense_input_list) > 0: sparse_input = concat_func(linear_emb_list[i]) dense_input = concat_func(dense_input_list) + if sparse_feat_refine_weight is not None: + sparse_input = Lambda(lambda x: x[0] * tf.expand_dims(x[1], axis=1))( + [sparse_input, sparse_feat_refine_weight]) linear_logit = Linear(l2_reg, mode=2, use_bias=use_bias, seed=seed)([sparse_input, dense_input]) elif len(linear_emb_list[i]) > 0: sparse_input = concat_func(linear_emb_list[i]) + if sparse_feat_refine_weight is not None: + sparse_input = Lambda(lambda x: x[0] * tf.expand_dims(x[1], axis=1))( + [sparse_input, sparse_feat_refine_weight]) linear_logit = Linear(l2_reg, mode=0, use_bias=use_bias, seed=seed)(sparse_input) elif len(dense_input_list) > 0: dense_input = concat_func(dense_input_list) diff --git a/deepctr/layers/__init__.py b/deepctr/layers/__init__.py index 9617a8f8..8899aae8 100644 --- a/deepctr/layers/__init__.py +++ b/deepctr/layers/__init__.py @@ -8,9 +8,9 @@ FieldWiseBiInteraction, FwFMLayer) from .normalization import LayerNormalization from .sequence import (AttentionSequencePoolingLayer, BiasEncoding, BiLSTM, - KMaxPooling, SequencePoolingLayer,WeightedSequenceLayer, + KMaxPooling, SequencePoolingLayer, WeightedSequenceLayer, Transformer, DynamicGRU) -from .utils import NoMask, Hash,Linear,Add,combined_dnn_input +from .utils import NoMask, Hash, Linear, Add, combined_dnn_input, softmax custom_objects = {'tf': tf, 'InnerProductLayer': InnerProductLayer, @@ -36,12 +36,13 @@ 'KMaxPooling': KMaxPooling, 'FGCNNLayer': FGCNNLayer, 'Hash': Hash, - 'Linear':Linear, + 'Linear': Linear, 'DynamicGRU': DynamicGRU, - 'SENETLayer':SENETLayer, - 'BilinearInteraction':BilinearInteraction, - 'WeightedSequenceLayer':WeightedSequenceLayer, - 'Add':Add, - 'FieldWiseBiInteraction':FieldWiseBiInteraction, - 'FwFMLayer': FwFMLayer + 'SENETLayer': SENETLayer, + 'BilinearInteraction': BilinearInteraction, + 'WeightedSequenceLayer': WeightedSequenceLayer, + 'Add': Add, + 'FieldWiseBiInteraction': FieldWiseBiInteraction, + 'FwFMLayer': FwFMLayer, + 'softmax': softmax, } diff --git a/deepctr/layers/interaction.py b/deepctr/layers/interaction.py index fa32f047..9e9311b6 100644 --- a/deepctr/layers/interaction.py +++ b/deepctr/layers/interaction.py @@ -700,13 +700,14 @@ class InteractingLayer(Layer): - [Song W, Shi C, Xiao Z, et al. AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks[J]. arXiv preprint arXiv:1810.11921, 2018.](https://arxiv.org/abs/1810.11921) """ - def __init__(self, att_embedding_size=8, head_num=2, use_res=True, seed=1024, **kwargs): + def __init__(self, att_embedding_size=8, head_num=2, use_res=True, scaling=False, seed=1024, **kwargs): if head_num <= 0: raise ValueError('head_num must be a int > 0') self.att_embedding_size = att_embedding_size self.head_num = head_num self.use_res = use_res self.seed = seed + self.scaling = scaling super(InteractingLayer, self).__init__(**kwargs) def build(self, input_shape): @@ -748,6 +749,8 @@ def call(self, inputs, **kwargs): inner_product = tf.matmul( querys, keys, transpose_b=True) # head_num None F F + if self.scaling: + inner_product /= self.att_embedding_size ** 0.5 self.normalized_att_scores = softmax(inner_product) result = tf.matmul(self.normalized_att_scores, diff --git a/deepctr/models/__init__.py b/deepctr/models/__init__.py index 217b357b..dd3fdf19 100644 --- a/deepctr/models/__init__.py +++ b/deepctr/models/__init__.py @@ -4,6 +4,8 @@ from .dcn import DCN from .dcnmix import DCNMix from .deepfm import DeepFM +from .ifm import IFM +from .difm import DIFM from .dien import DIEN from .din import DIN from .fnn import FNN @@ -20,5 +22,5 @@ from .fwfm import FwFM from .bst import BST -__all__ = ["AFM", "CCPM", "DCN", "DCNMix", "MLR", "DeepFM", "MLR", "NFM", "DIN", "DIEN", "FNN", "PNN", +__all__ = ["AFM", "CCPM", "DCN", "IFM", "DIFM", "DCNMix", "MLR", "DeepFM", "MLR", "NFM", "DIN", "DIEN", "FNN", "PNN", "WDL", "xDeepFM", "AutoInt", "ONN", "FGCNN", "DSIN", "FiBiNET", 'FLEN', "FwFM", "BST"] diff --git a/deepctr/models/difm.py b/deepctr/models/difm.py new file mode 100644 index 00000000..8b04977a --- /dev/null +++ b/deepctr/models/difm.py @@ -0,0 +1,83 @@ +# -*- coding:utf-8 -*- +""" +Author: + zanshuxun, zanshuxun@aliyun.com +Reference: + [1] Lu W, Yu Y, Chang Y, et al. A Dual Input-aware Factorization Machine for CTR Prediction[C] + //IJCAI. 2020: 3139-3145.(https://www.ijcai.org/Proceedings/2020/0434.pdf) +""" + +import tensorflow as tf + +from ..feature_column import build_input_features, get_linear_logit, input_from_feature_columns, SparseFeat, \ + VarLenSparseFeat +from ..layers.core import PredictionLayer, DNN +from ..layers.interaction import FM, InteractingLayer +from ..layers.utils import concat_func, add_func, combined_dnn_input + + +def DIFM(linear_feature_columns, dnn_feature_columns, + att_embedding_size=8, att_head_num=8, att_res=True, dnn_hidden_units=(128, 128), + l2_reg_linear=0.00001, l2_reg_embedding=0.00001, l2_reg_dnn=0, seed=1024, dnn_dropout=0, + dnn_activation='relu', dnn_use_bn=False, task='binary'): + """Instantiates the DIFM Network architecture. + + :param linear_feature_columns: An iterable containing all the features used by linear part of the model. + :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. + :param att_embedding_size: integer, the embedding size in multi-head self-attention network. + :param att_head_num: int. The head number in multi-head self-attention network. + :param att_res: bool. Whether or not use standard residual connections before output. + :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN + :param l2_reg_linear: float. L2 regularizer strength applied to linear part + :param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector + :param l2_reg_dnn: float. L2 regularizer strength applied to DNN + :param seed: integer ,to use as random seed. + :param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate. + :param dnn_activation: Activation function to use in DNN + :param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN + :param task: str, ``"binary"`` for binary logloss or ``"regression"`` for regression loss + :return: A Keras model instance. + """ + + if not len(dnn_hidden_units) > 0: + raise ValueError("dnn_hidden_units is null!") + + features = build_input_features( + linear_feature_columns + dnn_feature_columns) + + sparse_feat_num = len(list(filter(lambda x: isinstance(x, SparseFeat) or isinstance(x, VarLenSparseFeat), + dnn_feature_columns))) + inputs_list = list(features.values()) + + sparse_embedding_list, _ = input_from_feature_columns(features, dnn_feature_columns, + l2_reg_embedding, seed) + + if not len(sparse_embedding_list) > 0: + raise ValueError("there are no sparse features") + + att_input = concat_func(sparse_embedding_list, axis=1) + att_out = InteractingLayer(att_embedding_size, att_head_num, att_res, scaling=True)(att_input) + att_out = tf.keras.layers.Flatten()(att_out) + m_vec = tf.keras.layers.Dense( + sparse_feat_num, use_bias=False, kernel_initializer=tf.keras.initializers.glorot_normal(seed=seed))(att_out) + + dnn_input = combined_dnn_input(sparse_embedding_list, []) + dnn_output = DNN(dnn_hidden_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input) + m_bit = tf.keras.layers.Dense( + sparse_feat_num, use_bias=False, kernel_initializer=tf.keras.initializers.glorot_normal(seed=seed))(dnn_output) + + input_aware_factor = add_func([m_vec, m_bit]) # the complete input-aware factor m_x + + linear_logit = get_linear_logit(features, linear_feature_columns, seed=seed, prefix='linear', + l2_reg=l2_reg_linear, sparse_feat_refine_weight=input_aware_factor) + + fm_input = concat_func(sparse_embedding_list, axis=1) + refined_fm_input = tf.keras.layers.Lambda(lambda x: x[0] * tf.expand_dims(x[1], axis=-1))( + [fm_input, input_aware_factor]) + fm_logit = FM()(refined_fm_input) + + final_logit = add_func([linear_logit, fm_logit]) + + output = PredictionLayer(task)(final_logit) + model = tf.keras.models.Model(inputs=inputs_list, outputs=output) + return model diff --git a/deepctr/models/ifm.py b/deepctr/models/ifm.py new file mode 100644 index 00000000..68db0bd0 --- /dev/null +++ b/deepctr/models/ifm.py @@ -0,0 +1,74 @@ +# -*- coding:utf-8 -*- +""" +Author: + zanshuxun, zanshuxun@aliyun.com +Reference: + [1] Yu Y, Wang Z, Yuan B. An Input-aware Factorization Machine for Sparse Prediction[C]//IJCAI. 2019: 1466-1472. + (https://www.ijcai.org/Proceedings/2019/0203.pdf) +""" + +import tensorflow as tf +from tensorflow.python.keras.layers import Lambda + +from ..feature_column import build_input_features, get_linear_logit, input_from_feature_columns, SparseFeat, \ + VarLenSparseFeat +from ..layers.core import PredictionLayer, DNN +from ..layers.interaction import FM +from ..layers.utils import concat_func, add_func, combined_dnn_input, softmax + + +def IFM(linear_feature_columns, dnn_feature_columns, dnn_hidden_units=(128, 128), + l2_reg_linear=0.00001, l2_reg_embedding=0.00001, l2_reg_dnn=0, seed=1024, dnn_dropout=0, + dnn_activation='relu', dnn_use_bn=False, task='binary'): + """Instantiates the IFM Network architecture. + + :param linear_feature_columns: An iterable containing all the features used by linear part of the model. + :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. + :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN + :param l2_reg_linear: float. L2 regularizer strength applied to linear part + :param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector + :param l2_reg_dnn: float. L2 regularizer strength applied to DNN + :param seed: integer ,to use as random seed. + :param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate. + :param dnn_activation: Activation function to use in DNN + :param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN + :param task: str, ``"binary"`` for binary logloss or ``"regression"`` for regression loss + :return: A Keras model instance. + """ + + if not len(dnn_hidden_units) > 0: + raise ValueError("dnn_hidden_units is null!") + + features = build_input_features( + linear_feature_columns + dnn_feature_columns) + + sparse_feat_num = len(list(filter(lambda x: isinstance(x, SparseFeat) or isinstance(x, VarLenSparseFeat), + dnn_feature_columns))) + inputs_list = list(features.values()) + + sparse_embedding_list, _ = input_from_feature_columns(features, dnn_feature_columns, + l2_reg_embedding, seed) + if not len(sparse_embedding_list) > 0: + raise ValueError("there are no sparse features") + + dnn_input = combined_dnn_input(sparse_embedding_list, []) + dnn_output = DNN(dnn_hidden_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input) + # here, dnn_output is the m'_{x} + dnn_output = tf.keras.layers.Dense( + sparse_feat_num, use_bias=False, kernel_initializer=tf.keras.initializers.glorot_normal(seed=seed))(dnn_output) + # input_aware_factor m_{x,i} + input_aware_factor = Lambda(lambda x: tf.cast(tf.shape(x)[-1], tf.float32) * softmax(x, dim=1))(dnn_output) + + linear_logit = get_linear_logit(features, linear_feature_columns, seed=seed, prefix='linear', + l2_reg=l2_reg_linear, sparse_feat_refine_weight=input_aware_factor) + + fm_input = concat_func(sparse_embedding_list, axis=1) + refined_fm_input = Lambda(lambda x: x[0] * tf.expand_dims(x[1], axis=-1))( + [fm_input, input_aware_factor]) + fm_logit = FM()(refined_fm_input) + + final_logit = add_func([linear_logit, fm_logit]) + + output = PredictionLayer(task)(final_logit) + model = tf.keras.models.Model(inputs=inputs_list, outputs=output) + return model diff --git a/tests/models/DIFM_test.py b/tests/models/DIFM_test.py new file mode 100644 index 00000000..4a46a036 --- /dev/null +++ b/tests/models/DIFM_test.py @@ -0,0 +1,22 @@ +import pytest + +from deepctr.models import DIFM +from ..utils import check_model, get_test_data, SAMPLE_SIZE + + +@pytest.mark.parametrize( + 'att_head_num,dnn_hidden_units,sparse_feature_num', + [(1, (4,), 2), (2, (4, 4,), 2), (1, (4,), 1)] +) +def test_DIFM(att_head_num, dnn_hidden_units, sparse_feature_num): + model_name = "DIFM" + sample_size = SAMPLE_SIZE + x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=sparse_feature_num, + dense_feature_num=sparse_feature_num) + + model = DIFM(feature_columns, feature_columns, dnn_hidden_units=dnn_hidden_units, dnn_dropout=0.5) + check_model(model, model_name, x, y) + + +if __name__ == "__main__": + pass diff --git a/tests/models/IFM_test.py b/tests/models/IFM_test.py new file mode 100644 index 00000000..63ebd21d --- /dev/null +++ b/tests/models/IFM_test.py @@ -0,0 +1,24 @@ +import pytest + +from deepctr.models import IFM +from ..utils import check_model, get_test_data, SAMPLE_SIZE + + +@pytest.mark.parametrize( + 'hidden_size,sparse_feature_num', + [((2,), 1), + ((3,), 2) + ] +) +def test_IFM(hidden_size, sparse_feature_num): + model_name = "IFM" + sample_size = SAMPLE_SIZE + x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=sparse_feature_num, + dense_feature_num=sparse_feature_num) + + model = IFM(feature_columns, feature_columns, dnn_hidden_units=hidden_size, dnn_dropout=0.5) + check_model(model, model_name, x, y) + + +if __name__ == "__main__": + pass From c98a78383771235eaa97efe94f9f0065fc21ee19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E6=A2=A6?= Date: Wed, 5 May 2021 20:49:24 +0800 Subject: [PATCH 2/4] fix error when linear_feature_columns is empty in tf1.12 --- deepctr/feature_column.py | 5 ++--- examples/run_classification_criteo.py | 10 +++++----- tests/models/DCN_test.py | 12 ++++++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/deepctr/feature_column.py b/deepctr/feature_column.py index cb54713b..cebf099f 100644 --- a/deepctr/feature_column.py +++ b/deepctr/feature_column.py @@ -180,9 +180,8 @@ def get_linear_logit(features, feature_columns, units=1, use_bias=False, seed=10 elif len(dense_input_list) > 0: dense_input = concat_func(dense_input_list) linear_logit = Linear(l2_reg, mode=1, use_bias=use_bias, seed=seed)(dense_input) - else: - # raise NotImplementedError - return add_func([]) + else: #empty feature_columns + return Lambda(lambda x: tf.constant([[0.0]]))(features.values()[0]) linear_logit_list.append(linear_logit) return concat_func(linear_logit_list) diff --git a/examples/run_classification_criteo.py b/examples/run_classification_criteo.py index d2e7c6a0..366b9e11 100644 --- a/examples/run_classification_criteo.py +++ b/examples/run_classification_criteo.py @@ -25,9 +25,9 @@ # 2.count #unique features for each sparse field,and record dense feature field name - fixlen_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].max() + 1,embedding_dim=4 ) - for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,) - for feat in dense_features] + fixlen_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].max() + 1, embedding_dim=4) + for i, feat in enumerate(sparse_features)] + [DenseFeat(feat, 1, ) + for feat in dense_features] dnn_feature_columns = fixlen_feature_columns linear_feature_columns = fixlen_feature_columns @@ -37,8 +37,8 @@ # 3.generate input data for model train, test = train_test_split(data, test_size=0.2, random_state=2020) - train_model_input = {name:train[name] for name in feature_names} - test_model_input = {name:test[name] for name in feature_names} + train_model_input = {name: train[name] for name in feature_names} + test_model_input = {name: test[name] for name in feature_names} # 4.Define Model,train,predict and evaluate model = DeepFM(linear_feature_columns, dnn_feature_columns, task='binary') diff --git a/tests/models/DCN_test.py b/tests/models/DCN_test.py index 772fccc9..20d68ba3 100644 --- a/tests/models/DCN_test.py +++ b/tests/models/DCN_test.py @@ -25,6 +25,18 @@ def test_DCN(cross_num, hidden_size, sparse_feature_num, cross_parameterization) check_model(model, model_name, x, y) +def test_DCN_2(): + model_name = "DCN" + + sample_size = SAMPLE_SIZE + x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=3, + dense_feature_num=2) + + model = DCN([], feature_columns, cross_num=1, cross_parameterization=cross_parameterization, + dnn_hidden_units=8, dnn_dropout=0.5) + check_model(model, model_name, x, y) + + @pytest.mark.parametrize( 'cross_num,hidden_size,sparse_feature_num', [(1, (8,), 3) From ef3eff6855a210f52cbd8bea193bcd64eaa005b3 Mon Sep 17 00:00:00 2001 From: Harshit Pande Date: Sat, 12 Jun 2021 09:36:10 -0400 Subject: [PATCH 3/4] FEFM/DeepFEFM (#364) add FEFM and DeepFEFM Co-authored-by: Harshit Pande --- README.md | 1 + deepctr/estimator/models/__init__.py | 1 + deepctr/estimator/models/deepfefm.py | 92 ++++++++++++++++++++++++ deepctr/feature_column.py | 2 +- deepctr/layers/__init__.py | 7 +- deepctr/layers/interaction.py | 85 ++++++++++++++++++++++ deepctr/models/__init__.py | 3 +- deepctr/models/deepfefm.py | 102 +++++++++++++++++++++++++++ examples/run_deepfefm.py | 54 ++++++++++++++ tests/layers/interaction_test.py | 7 ++ tests/models/DCN_test.py | 3 +- tests/models/DeepFEFM_test.py | 54 ++++++++++++++ 12 files changed, 405 insertions(+), 6 deletions(-) create mode 100644 deepctr/estimator/models/deepfefm.py create mode 100644 deepctr/models/deepfefm.py create mode 100644 examples/run_deepfefm.py create mode 100644 tests/models/DeepFEFM_test.py diff --git a/README.md b/README.md index a9e8a1f5..655fb592 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Let's [**Get Started!**](https://deepctr-doc.readthedocs.io/en/latest/Quick-Star | IFM | [IJCAI 2019][An Input-aware Factorization Machine for Sparse Prediction](https://www.ijcai.org/Proceedings/2019/0203.pdf) | | DCN V2 | [arxiv 2020][DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems](https://arxiv.org/abs/2008.13535) | | DIFM | [IJCAI 2020][A Dual Input-aware Factorization Machine for CTR Prediction](https://www.ijcai.org/Proceedings/2020/0434.pdf) | +| FEFM and DeepFEFM | [arxiv 2020][Field-Embedded Factorization Machines for Click-through rate prediction](https://arxiv.org/abs/2009.09931) | ## Citation diff --git a/deepctr/estimator/models/__init__.py b/deepctr/estimator/models/__init__.py index 1b6d2541..9bc1e120 100644 --- a/deepctr/estimator/models/__init__.py +++ b/deepctr/estimator/models/__init__.py @@ -10,3 +10,4 @@ from .pnn import PNNEstimator from .wdl import WDLEstimator from .xdeepfm import xDeepFMEstimator +from .deepfefm import DeepFEFMEstimator diff --git a/deepctr/estimator/models/deepfefm.py b/deepctr/estimator/models/deepfefm.py new file mode 100644 index 00000000..08df778b --- /dev/null +++ b/deepctr/estimator/models/deepfefm.py @@ -0,0 +1,92 @@ +# -*- coding:utf-8 -*- +""" +Author: + Harshit Pande + +Reference: + [1] Field-Embedded Factorization Machines for Click-through Rate Prediction] + (https://arxiv.org/abs/2009.09931) + +""" + +import tensorflow as tf + +from ..feature_column import get_linear_logit, input_from_feature_columns +from ..utils import DNN_SCOPE_NAME, deepctr_model_fn, variable_scope +from ...layers.core import DNN +from ...layers.interaction import FEFMLayer +from ...layers.utils import concat_func, add_func, combined_dnn_input, reduce_sum + + +def DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, embedding_size=48, + dnn_hidden_units=(1024, 1024, 1024), l2_reg_linear=0.000001, l2_reg_embedding_feat=0.00001, + l2_reg_embedding_field=0.0000001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.2, + dnn_activation='relu', dnn_use_bn=False, task='binary', model_dir=None, + config=None, linear_optimizer='Ftrl', dnn_optimizer='Adagrad', training_chief_hooks=None): + """Instantiates the DeepFEFM Network architecture or the shallow FEFM architecture (Ablation support not provided + as estimator is meant for production, Ablation support provided in DeepFEFM implementation in models + + :param linear_feature_columns: An iterable containing all the features used by linear part of the model. + :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. + :param embedding_size: positive integer,sparse feature embedding_size + :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN + :param l2_reg_linear: float. L2 regularizer strength applied to linear part + :param l2_reg_embedding_feat: float. L2 regularizer strength applied to embedding vector of features + :param l2_reg_embedding_field: float, L2 regularizer to field embeddings + :param l2_reg_dnn: float. L2 regularizer strength applied to DNN + :param seed: integer ,to use as random seed. + :param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate. + :param dnn_activation: Activation function to use in DNN + :param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN + :param task: str, ``"binary"`` for binary logloss or ``"regression"`` for regression loss + :param model_dir: Directory to save model parameters, graph and etc. This can + also be used to load checkpoints from the directory into a estimator + to continue training a previously saved model. + :param config: tf.RunConfig object to configure the runtime settings. + :param linear_optimizer: An instance of `tf.Optimizer` used to apply gradients to + the linear part of the model. Defaults to FTRL optimizer. + :param dnn_optimizer: An instance of `tf.Optimizer` used to apply gradients to + the deep part of the model. Defaults to Adagrad optimizer. + :param training_chief_hooks: Iterable of `tf.train.SessionRunHook` objects to + run on the chief worker during training. + :return: A Tensorflow Estimator instance. + """ + + def _model_fn(features, labels, mode, config): + train_flag = (mode == tf.estimator.ModeKeys.TRAIN) + + linear_logits = get_linear_logit(features, linear_feature_columns, l2_reg_linear=l2_reg_linear) + final_logit_components = [linear_logits] + + with variable_scope(DNN_SCOPE_NAME): + sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns, + l2_reg_embedding=l2_reg_embedding_feat) + + fefm_interaction_embedding = FEFMLayer(num_fields=len(sparse_embedding_list), embedding_size=embedding_size, + regularizer=l2_reg_embedding_field)(concat_func(sparse_embedding_list, axis=1)) + + fefm_logit = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(fefm_interaction_embedding) + + final_logit_components.append(fefm_logit) + + if dnn_hidden_units: + dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list) + dnn_input = concat_func([dnn_input, fefm_interaction_embedding], axis=1) + + dnn_output = DNN(dnn_hidden_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)( + dnn_input, training=train_flag) + + dnn_logit = tf.keras.layers.Dense( + 1, use_bias=False, kernel_initializer=tf.keras.initializers.glorot_normal(seed))(dnn_output) + + final_logit_components.append(dnn_logit) + + logits = add_func(final_logit_components) + + return deepctr_model_fn(features, mode, logits, labels, task, linear_optimizer, dnn_optimizer, + training_chief_hooks=training_chief_hooks) + + return tf.estimator.Estimator(_model_fn, model_dir=model_dir, config=config) + + + diff --git a/deepctr/feature_column.py b/deepctr/feature_column.py index cebf099f..ba08151b 100644 --- a/deepctr/feature_column.py +++ b/deepctr/feature_column.py @@ -181,7 +181,7 @@ def get_linear_logit(features, feature_columns, units=1, use_bias=False, seed=10 dense_input = concat_func(dense_input_list) linear_logit = Linear(l2_reg, mode=1, use_bias=use_bias, seed=seed)(dense_input) else: #empty feature_columns - return Lambda(lambda x: tf.constant([[0.0]]))(features.values()[0]) + return Lambda(lambda x: tf.constant([[0.0]]))(list(features.values())[0]) linear_logit_list.append(linear_logit) return concat_func(linear_logit_list) diff --git a/deepctr/layers/__init__.py b/deepctr/layers/__init__.py index 8899aae8..5199ce4e 100644 --- a/deepctr/layers/__init__.py +++ b/deepctr/layers/__init__.py @@ -5,12 +5,13 @@ from .interaction import (CIN, FM, AFMLayer, BiInteractionPooling, CrossNet, CrossNetMix, InnerProductLayer, InteractingLayer, OutterProductLayer, FGCNNLayer, SENETLayer, BilinearInteraction, - FieldWiseBiInteraction, FwFMLayer) + FieldWiseBiInteraction, FwFMLayer, FEFMLayer) from .normalization import LayerNormalization from .sequence import (AttentionSequencePoolingLayer, BiasEncoding, BiLSTM, KMaxPooling, SequencePoolingLayer, WeightedSequenceLayer, Transformer, DynamicGRU) -from .utils import NoMask, Hash, Linear, Add, combined_dnn_input, softmax + +from .utils import NoMask, Hash, Linear, Add, combined_dnn_input, softmax, reduce_sum custom_objects = {'tf': tf, 'InnerProductLayer': InnerProductLayer, @@ -45,4 +46,6 @@ 'FieldWiseBiInteraction': FieldWiseBiInteraction, 'FwFMLayer': FwFMLayer, 'softmax': softmax, + 'FEFMLayer': FEFMLayer, + 'reduce_sum': reduce_sum } diff --git a/deepctr/layers/interaction.py b/deepctr/layers/interaction.py index 9e9311b6..44dd7c55 100644 --- a/deepctr/layers/interaction.py +++ b/deepctr/layers/interaction.py @@ -1409,3 +1409,88 @@ def get_config(self): 'regularizer': self.regularizer }) return config + + +class FEFMLayer(Layer): + """Field-Embedded Factorization Machines + + Input shape + - 3D tensor with shape: ``(batch_size,field_size,embedding_size)``. + + Output shape + - 2D tensor with shape: + ``(batch_size, (num_fields * (num_fields-1))/2)`` # concatenated FEFM interaction embeddings + + Arguments + - **num_fields** : integer for number of fields + - **embedding_size** : integer for embedding dimension + - **regularizer** : L2 regularizer weight for the field pair matrix embeddings parameters of FEFM + + References + - [Field-Embedded Factorization Machines for Click-through Rate Prediction] + https://arxiv.org/pdf/2009.09931.pdf + """ + + def __init__(self, num_fields, embedding_size, regularizer, **kwargs): + self.num_fields = num_fields + self.embedding_size = embedding_size + self.regularizer = regularizer + super(FEFMLayer, self).__init__(**kwargs) + + def build(self, input_shape): + if len(input_shape) != 3: + raise ValueError("Unexpected inputs dimensions % d,\ + expect to be 3 dimensions" % (len(input_shape))) + + if input_shape[1] != self.num_fields: + raise ValueError("Mismatch in number of fields {} and \ + concatenated embeddings dims {}".format(self.num_fields, input_shape[2])) + + self.field_embeddings = {} + + for fi, fj in itertools.combinations(range(self.num_fields), 2): + field_pair_id = str(fi) + "-" + str(fj) + self.field_embeddings[field_pair_id] = self.add_weight(name='field_embeddings' + field_pair_id, + shape=(self.embedding_size, self.embedding_size), + initializer=TruncatedNormal(), + regularizer=l2(self.regularizer), + trainable=True) + + super(FEFMLayer, self).build(input_shape) # Be sure to call this somewhere! + + def call(self, inputs, **kwargs): + if K.ndim(inputs) != 3: + raise ValueError( + "Unexpected inputs dimensions %d, expect to be 3 dimensions" + % (K.ndim(inputs))) + + if inputs.shape[1] != self.num_fields: + raise ValueError("Mismatch in number of fields {} and \ + concatenated embeddings dims {}".format(self.num_fields, inputs.shape[1])) + + pairwise_inner_prods = [] + for fi, fj in itertools.combinations(range(self.num_fields), 2): + field_pair_id = str(fi) + "-" + str(fj) + feat_embed_i = tf.squeeze(inputs[0:, fi:fi + 1, 0:], axis=1) + feat_embed_j = tf.squeeze(inputs[0:, fj:fj + 1, 0:], axis=1) + field_pair_embed_ij = self.field_embeddings[field_pair_id] + + feat_embed_i_tr = tf.matmul(feat_embed_i, field_pair_embed_ij + tf.transpose(field_pair_embed_ij)) + + f = batch_dot(feat_embed_i_tr, feat_embed_j, axes=1) + pairwise_inner_prods.append(f) + + concat_vec = tf.concat(pairwise_inner_prods, axis=1) + return concat_vec + + def compute_output_shape(self, input_shape): + return (None, (self.num_fields * (self.num_fields-1))/2) + + def get_config(self): + config = super(FEFMLayer, self).get_config().copy() + config.update({ + 'num_fields': self.num_fields, + 'regularizer': self.regularizer, + 'embedding_size': self.embedding_size + }) + return config diff --git a/deepctr/models/__init__.py b/deepctr/models/__init__.py index dd3fdf19..139e587b 100644 --- a/deepctr/models/__init__.py +++ b/deepctr/models/__init__.py @@ -21,6 +21,7 @@ from .flen import FLEN from .fwfm import FwFM from .bst import BST +from .deepfefm import DeepFEFM __all__ = ["AFM", "CCPM", "DCN", "IFM", "DIFM", "DCNMix", "MLR", "DeepFM", "MLR", "NFM", "DIN", "DIEN", "FNN", "PNN", - "WDL", "xDeepFM", "AutoInt", "ONN", "FGCNN", "DSIN", "FiBiNET", 'FLEN', "FwFM", "BST"] + "WDL", "xDeepFM", "AutoInt", "ONN", "FGCNN", "DSIN", "FiBiNET", 'FLEN', "FwFM", "BST", "DeepFEFM"] diff --git a/deepctr/models/deepfefm.py b/deepctr/models/deepfefm.py new file mode 100644 index 00000000..4ee7d20f --- /dev/null +++ b/deepctr/models/deepfefm.py @@ -0,0 +1,102 @@ +# -*- coding:utf-8 -*- +""" +Author: + Harshit Pande + +Reference: + [1] Field-Embedded Factorization Machines for Click-through Rate Prediction] + (https://arxiv.org/pdf/2009.09931.pdf) + + this file also supports all the possible Ablation studies for reproducibility + +""" + +from itertools import chain + +import tensorflow as tf + +from ..feature_column import input_from_feature_columns, get_linear_logit, build_input_features, DEFAULT_GROUP_NAME +from ..layers.core import PredictionLayer, DNN +from ..layers.interaction import FEFMLayer +from ..layers.utils import concat_func, combined_dnn_input, reduce_sum + + +def DeepFEFM(linear_feature_columns, dnn_feature_columns, embedding_size=48, use_fefm=True, + dnn_hidden_units=(1024, 1024, 1024), l2_reg_linear=0.000001, l2_reg_embedding_feat=0.00001, + l2_reg_embedding_field=0.0000001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.2, exclude_feature_embed_in_dnn=False, + use_linear=True, use_fefm_embed_in_dnn=True, dnn_activation='relu', dnn_use_bn=False, task='binary'): + """Instantiates the DeepFEFM Network architecture or the shallow FEFM architecture (Ablation studies supported) + + :param linear_feature_columns: An iterable containing all the features used by linear part of the model. + :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. + :param fm_group: list, group_name of features that will be used to do feature interactions. + :param embedding_size: positive integer,sparse feature embedding_size + :param use_fefm: bool,use FEFM logit or not (doesn't effect FEFM embeddings in DNN, controls only the use of final FEFM logit) + :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN + :param l2_reg_linear: float. L2 regularizer strength applied to linear part + :param l2_reg_embedding_feat: float. L2 regularizer strength applied to embedding vector of features + :param l2_reg_embedding_field: float, L2 regularizer to field embeddings + :param l2_reg_dnn: float. L2 regularizer strength applied to DNN + :param seed: integer ,to use as random seed. + :param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate. + :param exclude_feature_embed_in_dnn: bool, used in ablation studies for removing feature embeddings in DNN + :param use_linear: bool, used in ablation studies + :param use_fefm_embed_in_dnn: bool, True if FEFM interaction embeddings are to be used in FEFM (set False for Ablation) + :param dnn_activation: Activation function to use in DNN + :param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN + :param task: str, ``"binary"`` for binary logloss or ``"regression"`` for regression loss + :return: A Keras model instance. + """ + + features = build_input_features(linear_feature_columns + dnn_feature_columns) + + inputs_list = list(features.values()) + + linear_logit = get_linear_logit(features, linear_feature_columns, l2_reg=l2_reg_linear, seed=seed, prefix='linear') + + group_embedding_dict, dense_value_list = input_from_feature_columns(features, dnn_feature_columns, + l2_reg_embedding_feat, + seed, support_group=True) + + fefm_interaction_embedding = concat_func([FEFMLayer(num_fields=len(v), embedding_size=embedding_size, + regularizer=l2_reg_embedding_field)(concat_func(v, axis=1)) + for k, v in group_embedding_dict.items() if k in [DEFAULT_GROUP_NAME]], axis=1) + + dnn_input = combined_dnn_input(list(chain.from_iterable(group_embedding_dict.values())), dense_value_list) + + # if use_fefm_embed_in_dnn is set to False it is Ablation4 (Use false only for Ablation) + if use_fefm_embed_in_dnn: + if exclude_feature_embed_in_dnn: + # Ablation3: remove feature vector embeddings from the DNN input + dnn_input = fefm_interaction_embedding + else: + # No ablation + dnn_input = concat_func([dnn_input, fefm_interaction_embedding], axis=1) + + dnn_out = DNN(dnn_hidden_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input) + + dnn_logit = tf.keras.layers.Dense( + 1, use_bias=False, kernel_initializer=tf.keras.initializers.glorot_normal(seed))(dnn_out) + + fefm_logit = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(fefm_interaction_embedding) + + if len(dnn_hidden_units) == 0 and use_fefm is False and use_linear is True: # only linear + final_logit = linear_logit + elif len(dnn_hidden_units) == 0 and use_fefm is True and use_linear is True: # linear + FEFM + final_logit = tf.keras.layers.add([linear_logit, fefm_logit]) + elif len(dnn_hidden_units) > 0 and use_fefm is False and use_linear is True: # linear + Deep # Ablation1 + final_logit = tf.keras.layers.add([linear_logit, dnn_logit]) + elif len(dnn_hidden_units) > 0 and use_fefm is True and use_linear is True: # linear + FEFM + Deep + final_logit = tf.keras.layers.add([linear_logit, fefm_logit, dnn_logit]) + elif len(dnn_hidden_units) == 0 and use_fefm is True and use_linear is False: # only FEFM (shallow) + final_logit = fefm_logit + elif len(dnn_hidden_units) > 0 and use_fefm is False and use_linear is False: # only Deep + final_logit = dnn_logit + elif len(dnn_hidden_units) > 0 and use_fefm is True and use_linear is False: # FEFM + Deep # Ablation2 + final_logit = tf.keras.layers.add([fefm_logit, dnn_logit]) + else: + raise NotImplementedError + + output = PredictionLayer(task)(final_logit) + model = tf.keras.models.Model(inputs=inputs_list, outputs=output) + return model diff --git a/examples/run_deepfefm.py b/examples/run_deepfefm.py new file mode 100644 index 00000000..f1c9122f --- /dev/null +++ b/examples/run_deepfefm.py @@ -0,0 +1,54 @@ +import pandas as pd +from sklearn.metrics import log_loss, roc_auc_score +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import LabelEncoder, MinMaxScaler + +from deepctr.models import DeepFEFM +from deepctr.feature_column import SparseFeat, DenseFeat, get_feature_names + +if __name__ == "__main__": + data = pd.read_csv('./criteo_sample.txt') + + sparse_features = ['C' + str(i) for i in range(1, 27)] + dense_features = ['I' + str(i) for i in range(1, 14)] + + data[sparse_features] = data[sparse_features].fillna('-1', ) + data[dense_features] = data[dense_features].fillna(0, ) + target = ['label'] + + # 1.Label Encoding for sparse features,and do simple Transformation for dense features + for feat in sparse_features: + lbe = LabelEncoder() + data[feat] = lbe.fit_transform(data[feat]) + mms = MinMaxScaler(feature_range=(0, 1)) + data[dense_features] = mms.fit_transform(data[dense_features]) + + # 2.count #unique features for each sparse field,and record dense feature field name + + fixlen_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 = fixlen_feature_columns + linear_feature_columns = fixlen_feature_columns + + feature_names = get_feature_names(linear_feature_columns + dnn_feature_columns) + + # 3.generate input data for model + + train, test = train_test_split(data, test_size=0.2, random_state=2020) + train_model_input = {name: train[name] for name in feature_names} + test_model_input = {name: test[name] for name in feature_names} + + # 4.Define Model,train,predict and evaluate + model = DeepFEFM(linear_feature_columns, dnn_feature_columns, dnn_hidden_units=(128, 128), use_fefm=True, + use_fefm_embed_in_dnn=True, embedding_size=4, task='binary') + + model.compile("adam", "binary_crossentropy", + metrics=['binary_crossentropy'], ) + + history = model.fit(train_model_input, train[target].values, + batch_size=256, epochs=10, verbose=2, validation_split=0.2, ) + pred_ans = model.predict(test_model_input, batch_size=256) + print("test LogLoss", round(log_loss(test[target].values, pred_ans), 4)) + print("test AUC", round(roc_auc_score(test[target].values, pred_ans), 4)) diff --git a/tests/layers/interaction_test.py b/tests/layers/interaction_test.py index 8f7657d8..cf57a623 100644 --- a/tests/layers/interaction_test.py +++ b/tests/layers/interaction_test.py @@ -17,6 +17,13 @@ EMBEDDING_SIZE = 3 SEQ_LENGTH = 10 + +def test_FEFMLayer(): + with CustomObjectScope({'FEFMLayer': layers.FEFMLayer}): + layer_test(layers.FEFMLayer, kwargs={'num_fields': FIELD_SIZE, 'embedding_size': EMBEDDING_SIZE, + 'regularizer': 0.000001}, + input_shape=(BATCH_SIZE, FIELD_SIZE, EMBEDDING_SIZE)) + @pytest.mark.parametrize( 'reg_strength', [0.000001] diff --git a/tests/models/DCN_test.py b/tests/models/DCN_test.py index 20d68ba3..45f713f7 100644 --- a/tests/models/DCN_test.py +++ b/tests/models/DCN_test.py @@ -32,8 +32,7 @@ def test_DCN_2(): x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=3, dense_feature_num=2) - model = DCN([], feature_columns, cross_num=1, cross_parameterization=cross_parameterization, - dnn_hidden_units=8, dnn_dropout=0.5) + model = DCN([], feature_columns, cross_num=1, dnn_hidden_units=(8,), dnn_dropout=0.5) check_model(model, model_name, x, y) diff --git a/tests/models/DeepFEFM_test.py b/tests/models/DeepFEFM_test.py new file mode 100644 index 00000000..e952948e --- /dev/null +++ b/tests/models/DeepFEFM_test.py @@ -0,0 +1,54 @@ +import pytest +import tensorflow as tf + +from deepctr.estimator import DeepFEFMEstimator +from deepctr.models import DeepFEFM +from ..utils import check_model, get_test_data, SAMPLE_SIZE, get_test_data_estimator, check_estimator, \ + Estimator_TEST_TF1 + +@pytest.mark.parametrize( + 'hidden_size,sparse_feature_num,use_fefm,use_linear,use_fefm_embed_in_dnn', + [((2,), 1, True, True, True), + ((2,), 1, True, True, False), + ((2,), 1, True, False, True), + ((2,), 1, False, True, True), + ((2,), 1, True, False, False), + ((2,), 1, False, True, False), + ((2,), 1, False, False, True), + ((2,), 1, False, False, False), + ((), 1, True, True, True) + ] +) +def test_DeepFEFM(hidden_size, sparse_feature_num, use_fefm, use_linear, use_fefm_embed_in_dnn): + model_name = "DeepFEFM" + sample_size = SAMPLE_SIZE + x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=sparse_feature_num, + dense_feature_num=sparse_feature_num) + model = DeepFEFM(feature_columns, feature_columns, embedding_size=4, dnn_hidden_units=hidden_size, dnn_dropout=0.5, + use_linear=use_linear, use_fefm=use_fefm, use_fefm_embed_in_dnn=use_fefm_embed_in_dnn) + + check_model(model, model_name, x, y) + + +@pytest.mark.parametrize( + 'hidden_size,sparse_feature_num', + [((2,), 2), + ((), 2), + ] +) +def test_DeepFEFMEstimator(hidden_size, sparse_feature_num): + if not Estimator_TEST_TF1 and tf.__version__ < "2.2.0": + return + sample_size = SAMPLE_SIZE + linear_feature_columns, dnn_feature_columns, input_fn = get_test_data_estimator(sample_size, + sparse_feature_num=sparse_feature_num, + dense_feature_num=sparse_feature_num) + + model = DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, embedding_size=4, + dnn_hidden_units=hidden_size, dnn_dropout=0.5) + + check_estimator(model, input_fn) + + +if __name__ == "__main__": + pass From d5f664784bfc8be7fbb0e91fbec883403c7da2af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E6=A2=A6?= Date: Mon, 14 Jun 2021 17:12:10 +0800 Subject: [PATCH 4/4] Dev swc (#377) - enhance the compatibility for tf 2.5 - add training param to activation layer - add PositionEncoding Layer --- .github/ISSUE_TEMPLATE/bug_report.md | 8 +- .github/ISSUE_TEMPLATE/question.md | 4 +- .github/workflows/ci.yml | 8 +- README.md | 6 +- deepctr/__init__.py | 2 +- deepctr/estimator/models/deepfefm.py | 17 +- deepctr/estimator/utils.py | 21 ++- deepctr/feature_column.py | 2 +- deepctr/layers/__init__.py | 5 +- deepctr/layers/core.py | 7 +- deepctr/layers/interaction.py | 23 +-- deepctr/layers/sequence.py | 147 ++++++++++++------ deepctr/models/bst.py | 2 +- deepctr/models/deepfefm.py | 15 +- deepctr/models/dien.py | 1 + docs/pics/DIFM.jpg | Bin 0 -> 123144 bytes docs/pics/DeepFEFM.jpg | Bin 0 -> 220530 bytes docs/pics/IFM.jpg | Bin 0 -> 100224 bytes docs/source/Features.md | 29 ++++ docs/source/History.md | 1 + docs/source/Models.rst | 3 + docs/source/conf.py | 2 +- .../deepctr.estimator.models.deepfefm.rst | 7 + docs/source/deepctr.models.deepfefm.rst | 7 + docs/source/deepctr.models.difm.rst | 7 + docs/source/deepctr.models.ifm.rst | 7 + docs/source/deepctr.models.rst | 3 + docs/source/index.rst | 6 +- examples/run_deepfefm.py | 54 ------- examples/run_din.py | 2 +- setup.py | 2 +- tests/layers/interaction_test.py | 9 +- tests/layers/sequence_test.py | 44 ++++-- tests/models/AFM_test.py | 1 - tests/models/DeepFEFM_test.py | 9 +- tests/models/PNN_test.py | 2 +- 36 files changed, 276 insertions(+), 187 deletions(-) create mode 100644 docs/pics/DIFM.jpg create mode 100644 docs/pics/DeepFEFM.jpg create mode 100644 docs/pics/IFM.jpg create mode 100644 docs/source/deepctr.estimator.models.deepfefm.rst create mode 100644 docs/source/deepctr.models.deepfefm.rst create mode 100644 docs/source/deepctr.models.difm.rst create mode 100644 docs/source/deepctr.models.ifm.rst delete mode 100644 examples/run_deepfefm.py diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b5d3b712..3a09ec50 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,7 +8,7 @@ assignees: '' --- **Describe the bug(问题描述)** -A clear and concise description of what the bug is. +A clear and concise description of what the bug is.Better with standalone code to reproduce the issue. **To Reproduce(复现步骤)** Steps to reproduce the behavior: @@ -18,9 +18,9 @@ Steps to reproduce the behavior: 4. See error **Operating environment(运行环境):** - - python version [e.g. 3.5, 3.7] - - tensorflow version [e.g. 1.4.0, 1.15.0, 2.4.0] - - deepctr version [e.g. 0.8.3,] + - python version [e.g. 3.6, 3.7] + - tensorflow version [e.g. 1.4.0, 1.15.0, 2.5.0] + - deepctr version [e.g. 0.8.6,] **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md index 7f4dec64..c762300a 100644 --- a/.github/ISSUE_TEMPLATE/question.md +++ b/.github/ISSUE_TEMPLATE/question.md @@ -16,5 +16,5 @@ Add any other context about the problem here. **Operating environment(运行环境):** - python version [e.g. 3.6] - - tensorflow version [e.g. 1.4.0, 1.5.0, 2.4.0] - - deepctr version [e.g. 0.8.3,] + - tensorflow version [e.g. 1.4.0, 1.15.0, 2.5.0] + - deepctr version [e.g. 0.8.6,] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 64ef108c..8849c4e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,15 +14,17 @@ jobs: build: runs-on: ubuntu-latest - timeout-minutes: 120 + timeout-minutes: 180 strategy: matrix: python-version: [3.6,3.7] - tf-version: [1.4.0,1.15.0,2.1.0,2.4.0] + tf-version: [1.4.0,1.15.0,2.1.0,2.5.0] exclude: - python-version: 3.7 tf-version: 1.4.0 + - python-version: 3.7 + tf-version: 1.15.0 steps: @@ -40,7 +42,7 @@ jobs: pip install -q requests pip install -e . - name: Test with pytest - timeout-minutes: 120 + timeout-minutes: 180 run: | pip install -q pytest pip install -q pytest-cov diff --git a/README.md b/README.md index 655fb592..31820f38 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![Documentation Status](https://readthedocs.org/projects/deepctr-doc/badge/?version=latest)](https://deepctr-doc.readthedocs.io/) ![CI status](https://github.com/shenweichen/deepctr/workflows/CI/badge.svg) -[![Coverage Status](https://coveralls.io/repos/github/shenweichen/DeepCTR/badge.svg?branch=master)](https://coveralls.io/github/shenweichen/DeepCTR?branch=master) +[![codecov](https://codecov.io/gh/shenweichen/DeepCTR/branch/master/graph/badge.svg)](https://codecov.io/gh/shenweichen/DeepCTR) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/d4099734dc0e4bab91d332ead8c0bdd0)](https://www.codacy.com/gh/shenweichen/DeepCTR?utm_source=github.com&utm_medium=referral&utm_content=shenweichen/DeepCTR&utm_campaign=Badge_Grade) [![Disscussion](https://img.shields.io/badge/chat-wechat-brightgreen?style=flat)](./README.md#DisscussionGroup) [![License](https://img.shields.io/github/license/shenweichen/deepctr.svg)](https://github.com/shenweichen/deepctr/blob/master/LICENSE) @@ -81,7 +81,7 @@ If you find this code useful in your research, please cite it using the followin ## DisscussionGroup - [Discussions](https://github.com/shenweichen/DeepCTR/discussions) -- 公众号:**浅梦的学习笔记** +- 公众号:**浅梦学习笔记** - wechat ID: **deepctrbot** ![wechat](./docs/pics/code.png) @@ -115,7 +115,7 @@ If you find this code useful in your research, please cite it using the followin ​ pic
- LeoCai + Tan Tingyi

Chongqing University
of Posts and
Telecommunications

​ diff --git a/deepctr/__init__.py b/deepctr/__init__.py index b3b93e89..7c97d7aa 100644 --- a/deepctr/__init__.py +++ b/deepctr/__init__.py @@ -1,4 +1,4 @@ from .utils import check_version -__version__ = '0.8.5' +__version__ = '0.8.6' check_version(__version__) diff --git a/deepctr/estimator/models/deepfefm.py b/deepctr/estimator/models/deepfefm.py index 08df778b..10711316 100644 --- a/deepctr/estimator/models/deepfefm.py +++ b/deepctr/estimator/models/deepfefm.py @@ -18,9 +18,9 @@ from ...layers.utils import concat_func, add_func, combined_dnn_input, reduce_sum -def DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, embedding_size=48, - dnn_hidden_units=(1024, 1024, 1024), l2_reg_linear=0.000001, l2_reg_embedding_feat=0.00001, - l2_reg_embedding_field=0.0000001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.2, +def DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, + dnn_hidden_units=(128, 128), l2_reg_linear=0.00001, l2_reg_embedding_feat=0.00001, + l2_reg_embedding_field=0.00001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.0, dnn_activation='relu', dnn_use_bn=False, task='binary', model_dir=None, config=None, linear_optimizer='Ftrl', dnn_optimizer='Adagrad', training_chief_hooks=None): """Instantiates the DeepFEFM Network architecture or the shallow FEFM architecture (Ablation support not provided @@ -28,7 +28,6 @@ def DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, embedding_siz :param linear_feature_columns: An iterable containing all the features used by linear part of the model. :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. - :param embedding_size: positive integer,sparse feature embedding_size :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN :param l2_reg_linear: float. L2 regularizer strength applied to linear part :param l2_reg_embedding_feat: float. L2 regularizer strength applied to embedding vector of features @@ -62,10 +61,11 @@ def _model_fn(features, labels, mode, config): sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns, l2_reg_embedding=l2_reg_embedding_feat) - fefm_interaction_embedding = FEFMLayer(num_fields=len(sparse_embedding_list), embedding_size=embedding_size, - regularizer=l2_reg_embedding_field)(concat_func(sparse_embedding_list, axis=1)) + fefm_interaction_embedding = FEFMLayer( + regularizer=l2_reg_embedding_field)(concat_func(sparse_embedding_list, axis=1)) - fefm_logit = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(fefm_interaction_embedding) + fefm_logit = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))( + fefm_interaction_embedding) final_logit_components.append(fefm_logit) @@ -87,6 +87,3 @@ def _model_fn(features, labels, mode, config): training_chief_hooks=training_chief_hooks) return tf.estimator.Estimator(_model_fn, model_dir=model_dir, config=config) - - - diff --git a/deepctr/estimator/utils.py b/deepctr/estimator/utils.py index fc71eb98..5d722515 100644 --- a/deepctr/estimator/utils.py +++ b/deepctr/estimator/utils.py @@ -44,27 +44,29 @@ def _eval_metric_ops(self, _summary_key(self._name, "prediction/mean"): metrics.mean(predictions, weights=weights), _summary_key(self._name, "label/mean"): metrics.mean(labels, weights=weights), } - tf.summary.scalar("prediction/mean", metric_ops[_summary_key(self._name, "prediction/mean")][1]) - tf.summary.scalar("label/mean", metric_ops[_summary_key(self._name, "label/mean")][1]) + + summary_scalar("prediction/mean", metric_ops[_summary_key(self._name, "prediction/mean")][1]) + summary_scalar("label/mean", metric_ops[_summary_key(self._name, "label/mean")][1]) + mean_loss = losses.compute_weighted_loss( unweighted_loss, weights=1.0, reduction=losses.Reduction.MEAN) if self._task == "binary": metric_ops[_summary_key(self._name, "LogLoss")] = metrics.mean(mean_loss, weights=weights, ) - tf.summary.scalar("LogLoss", mean_loss) + summary_scalar("LogLoss", mean_loss) metric_ops[_summary_key(self._name, "AUC")] = metrics.auc(labels, predictions, weights=weights) - tf.summary.scalar("AUC", metric_ops[_summary_key(self._name, "AUC")][1]) + summary_scalar("AUC", metric_ops[_summary_key(self._name, "AUC")][1]) else: metric_ops[_summary_key(self._name, "MSE")] = metrics.mean_squared_error(labels, predictions, weights=weights) - tf.summary.scalar("MSE", mean_loss) + summary_scalar("MSE", mean_loss) metric_ops[_summary_key(self._name, "MAE")] = metrics.mean_absolute_error(labels, predictions, weights=weights) - tf.summary.scalar("MAE", metric_ops[_summary_key(self._name, "MAE")][1]) + summary_scalar("MAE", metric_ops[_summary_key(self._name, "MAE")][1]) return metric_ops @@ -206,3 +208,10 @@ def to_float(x, name="ToFloat"): return tf.to_float(x, name) except AttributeError: return tf.compat.v1.to_float(x, name) + + +def summary_scalar(name, data): + try: + tf.summary.scalar(name, data) + except AttributeError: # tf version 2.5.0+:AttributeError: module 'tensorflow._api.v2.summary' has no attribute 'scalar' + tf.compat.v1.summary.scalar(name, data) \ No newline at end of file diff --git a/deepctr/feature_column.py b/deepctr/feature_column.py index ba08151b..cb04ce1d 100644 --- a/deepctr/feature_column.py +++ b/deepctr/feature_column.py @@ -9,7 +9,7 @@ from .inputs import create_embedding_matrix, embedding_lookup, get_dense_input, varlen_embedding_lookup, \ get_varlen_pooling_list, mergeDict from .layers import Linear -from .layers.utils import concat_func, add_func +from .layers.utils import concat_func DEFAULT_GROUP_NAME = "default_group" diff --git a/deepctr/layers/__init__.py b/deepctr/layers/__init__.py index 5199ce4e..324f4040 100644 --- a/deepctr/layers/__init__.py +++ b/deepctr/layers/__init__.py @@ -9,7 +9,7 @@ from .normalization import LayerNormalization from .sequence import (AttentionSequencePoolingLayer, BiasEncoding, BiLSTM, KMaxPooling, SequencePoolingLayer, WeightedSequenceLayer, - Transformer, DynamicGRU) + Transformer, DynamicGRU,PositionEncoding) from .utils import NoMask, Hash, Linear, Add, combined_dnn_input, softmax, reduce_sum @@ -47,5 +47,6 @@ 'FwFMLayer': FwFMLayer, 'softmax': softmax, 'FEFMLayer': FEFMLayer, - 'reduce_sum': reduce_sum + 'reduce_sum': reduce_sum, + 'PositionEncoding':PositionEncoding } diff --git a/deepctr/layers/core.py b/deepctr/layers/core.py index 6ee4b77b..9ee5e248 100644 --- a/deepctr/layers/core.py +++ b/deepctr/layers/core.py @@ -189,8 +189,11 @@ def call(self, inputs, training=None, **kwargs): if self.use_bn: fc = self.bn_layers[i](fc, training=training) - - fc = self.activation_layers[i](fc) + try: + fc = self.activation_layers[i](fc, training=training) + except TypeError as e: # TypeError: call() got an unexpected keyword argument 'training' + print("make sure the activation function use training flag properly", e) + fc = self.activation_layers[i](fc) fc = self.dropout_layers[i](fc, training=training) deep_input = fc diff --git a/deepctr/layers/interaction.py b/deepctr/layers/interaction.py index 44dd7c55..3be2acb4 100644 --- a/deepctr/layers/interaction.py +++ b/deepctr/layers/interaction.py @@ -1422,8 +1422,6 @@ class FEFMLayer(Layer): ``(batch_size, (num_fields * (num_fields-1))/2)`` # concatenated FEFM interaction embeddings Arguments - - **num_fields** : integer for number of fields - - **embedding_size** : integer for embedding dimension - **regularizer** : L2 regularizer weight for the field pair matrix embeddings parameters of FEFM References @@ -1431,9 +1429,7 @@ class FEFMLayer(Layer): https://arxiv.org/pdf/2009.09931.pdf """ - def __init__(self, num_fields, embedding_size, regularizer, **kwargs): - self.num_fields = num_fields - self.embedding_size = embedding_size + def __init__(self, regularizer, **kwargs): self.regularizer = regularizer super(FEFMLayer, self).__init__(**kwargs) @@ -1442,16 +1438,14 @@ def build(self, input_shape): raise ValueError("Unexpected inputs dimensions % d,\ expect to be 3 dimensions" % (len(input_shape))) - if input_shape[1] != self.num_fields: - raise ValueError("Mismatch in number of fields {} and \ - concatenated embeddings dims {}".format(self.num_fields, input_shape[2])) + self.num_fields = int(input_shape[1]) + embedding_size = int(input_shape[2]) self.field_embeddings = {} - for fi, fj in itertools.combinations(range(self.num_fields), 2): field_pair_id = str(fi) + "-" + str(fj) self.field_embeddings[field_pair_id] = self.add_weight(name='field_embeddings' + field_pair_id, - shape=(self.embedding_size, self.embedding_size), + shape=(embedding_size, embedding_size), initializer=TruncatedNormal(), regularizer=l2(self.regularizer), trainable=True) @@ -1464,10 +1458,6 @@ def call(self, inputs, **kwargs): "Unexpected inputs dimensions %d, expect to be 3 dimensions" % (K.ndim(inputs))) - if inputs.shape[1] != self.num_fields: - raise ValueError("Mismatch in number of fields {} and \ - concatenated embeddings dims {}".format(self.num_fields, inputs.shape[1])) - pairwise_inner_prods = [] for fi, fj in itertools.combinations(range(self.num_fields), 2): field_pair_id = str(fi) + "-" + str(fj) @@ -1484,13 +1474,12 @@ def call(self, inputs, **kwargs): return concat_vec def compute_output_shape(self, input_shape): - return (None, (self.num_fields * (self.num_fields-1))/2) + num_fields = int(input_shape[1]) + return (None, (num_fields * (num_fields - 1)) / 2) def get_config(self): config = super(FEFMLayer, self).get_config().copy() config.update({ - 'num_fields': self.num_fields, 'regularizer': self.regularizer, - 'embedding_size': self.embedding_size }) return config diff --git a/deepctr/layers/sequence.py b/deepctr/layers/sequence.py index 4160fb11..5c4b5b50 100644 --- a/deepctr/layers/sequence.py +++ b/deepctr/layers/sequence.py @@ -493,13 +493,12 @@ def build(self, input_shape): self.fw2 = self.add_weight('fw2', shape=[4 * self.num_units, self.num_units], dtype=tf.float32, initializer=tf.keras.initializers.glorot_uniform(seed=self.seed)) - # if self.use_positional_encoding: - # - # self.kpe = Position_Embedding(input_shape[0][-1].value) - # self.qpe = Position_Embedding(input_shape[1][-1].value) self.dropout = tf.keras.layers.Dropout( self.dropout_rate, seed=self.seed) self.ln = LayerNormalization() + if self.use_positional_encoding: + self.query_pe = PositionEncoding() + self.key_pe = PositionEncoding() # Be sure to call this somewhere! super(Transformer, self).build(input_shape) @@ -521,8 +520,8 @@ def call(self, inputs, mask=None, training=None, **kwargs): key_masks = tf.squeeze(key_masks, axis=1) if self.use_positional_encoding: - queries = positional_encoding(queries) - keys = positional_encoding(queries) + queries = self.query_pe(queries) + keys = self.key_pe(queries) querys = tf.tensordot(queries, self.W_Query, axes=(-1, 0)) # None T_q D*head_num @@ -545,7 +544,7 @@ def call(self, inputs, mask=None, training=None, **kwargs): outputs = tf.tanh(tf.nn.bias_add(querys_reshaped + keys_reshaped, self.b)) outputs = tf.squeeze(tf.tensordot(outputs, tf.expand_dims(self.v, axis=-1), axes=[-1, 0]), axis=-1) else: - NotImplementedError + raise ValueError("attention_type must be scaled_dot_product or additive") key_masks = tf.tile(key_masks, [self.head_num, 1]) @@ -620,54 +619,62 @@ def get_config(self, ): return dict(list(base_config.items()) + list(config.items())) -def positional_encoding(inputs, - pos_embedding_trainable=True, - zero_pad=False, - scale=True, - ): - '''Sinusoidal Positional_Encoding. +class PositionEncoding(Layer): + def __init__(self, pos_embedding_trainable=True, + zero_pad=False, + scale=True, **kwargs): + self.pos_embedding_trainable = pos_embedding_trainable + self.zero_pad = zero_pad + self.scale = scale + super(PositionEncoding, self).__init__(**kwargs) - Args: + def build(self, input_shape): + # Create a trainable weight variable for this layer. + _, T, num_units = input_shape.as_list() # inputs.get_shape().as_list() + # First part of the PE function: sin and cos argument + position_enc = np.array([ + [pos / np.power(10000, 2. * i / num_units) + for i in range(num_units)] + for pos in range(T)]) - - inputs: A 2d Tensor with shape of (N, T). - - num_units: Output dimensionality - - zero_pad: Boolean. If True, all the values of the first row (id = 0) should be constant zero - - scale: Boolean. If True, the output will be multiplied by sqrt num_units(check details from paper) - - scope: Optional scope for `variable_scope`. - - reuse: Boolean, whether to reuse the weights of a previous layer by the same name. + # Second part, apply the cosine to even columns and sin to odds. + position_enc[:, 0::2] = np.sin(position_enc[:, 0::2]) # dim 2i + position_enc[:, 1::2] = np.cos(position_enc[:, 1::2]) # dim 2i+1 - Returns: + self.lookup_table = self.add_weight("lookup_table", (T, num_units), + initializer=tf.initializers.identity(position_enc), + trainable=self.pos_embedding_trainable) - - A 'Tensor' with one more rank than inputs's, with the dimensionality should be 'num_units' - ''' + # Be sure to call this somewhere! + super(PositionEncoding, self).build(input_shape) - _, T, num_units = inputs.get_shape().as_list() - # with tf.variable_scope(scope, reuse=reuse): - position_ind = tf.expand_dims(tf.range(T), 0) - # First part of the PE function: sin and cos argument - position_enc = np.array([ - [pos / np.power(10000, 2. * i / num_units) - for i in range(num_units)] - for pos in range(T)]) + def call(self, inputs, mask=None): + _, T, num_units = inputs.get_shape().as_list() + position_ind = tf.expand_dims(tf.range(T), 0) - # Second part, apply the cosine to even columns and sin to odds. - position_enc[:, 0::2] = np.sin(position_enc[:, 0::2]) # dim 2i - position_enc[:, 1::2] = np.cos(position_enc[:, 1::2]) # dim 2i+1 + if self.zero_pad: + self.lookup_table = tf.concat((tf.zeros(shape=[1, num_units]), + self.lookup_table[1:, :]), 0) - # Convert to a tensor + outputs = tf.nn.embedding_lookup(self.lookup_table, position_ind) - if pos_embedding_trainable: - lookup_table = K.variable(position_enc, dtype=tf.float32) + if self.scale: + outputs = outputs * num_units ** 0.5 + return outputs + inputs - if zero_pad: - lookup_table = tf.concat((tf.zeros(shape=[1, num_units]), - lookup_table[1:, :]), 0) + def compute_output_shape(self, input_shape): - outputs = tf.nn.embedding_lookup(lookup_table, position_ind) + return input_shape - if scale: - outputs = outputs * num_units ** 0.5 - return outputs + inputs + def compute_mask(self, inputs, mask=None): + return mask + + def get_config(self, ): + + config = {'pos_embedding_trainable': self.pos_embedding_trainable, 'zero_pad': self.zero_pad, + 'scale': self.scale} + base_config = super(PositionEncoding, self).get_config() + return dict(list(base_config.items()) + list(config.items())) class BiasEncoding(Layer): @@ -743,7 +750,7 @@ def build(self, input_shape): self.gru_cell = VecAttGRUCell(self.num_units) else: try: - self.gru_cell = tf.nn.rnn_cell.GRUCell(self.num_units) + self.gru_cell = tf.nn.rnn_cell.GRUCell(self.num_units) # tf.keras.layers.GRUCell except: self.gru_cell = tf.compat.v1.nn.rnn_cell.GRUCell(self.num_units) @@ -839,3 +846,53 @@ def get_config(self, ): config = {'k': self.k, 'axis': self.axis} base_config = super(KMaxPooling, self).get_config() return dict(list(base_config.items()) + list(config.items())) + + +# def positional_encoding(inputs, +# pos_embedding_trainable=True, +# zero_pad=False, +# scale=True, +# ): +# '''Sinusoidal Positional_Encoding. +# +# Args: +# +# - inputs: A 2d Tensor with shape of (N, T). +# - num_units: Output dimensionality +# - zero_pad: Boolean. If True, all the values of the first row (id = 0) should be constant zero +# - scale: Boolean. If True, the output will be multiplied by sqrt num_units(check details from paper) +# - scope: Optional scope for `variable_scope`. +# - reuse: Boolean, whether to reuse the weights of a previous layer by the same name. +# +# Returns: +# +# - A 'Tensor' with one more rank than inputs's, with the dimensionality should be 'num_units' +# ''' +# +# _, T, num_units = inputs.get_shape().as_list() +# # with tf.variable_scope(scope, reuse=reuse): +# position_ind = tf.expand_dims(tf.range(T), 0) +# # First part of the PE function: sin and cos argument +# position_enc = np.array([ +# [pos / np.power(10000, 2. * i / num_units) +# for i in range(num_units)] +# for pos in range(T)]) +# +# # Second part, apply the cosine to even columns and sin to odds. +# position_enc[:, 0::2] = np.sin(position_enc[:, 0::2]) # dim 2i +# position_enc[:, 1::2] = np.cos(position_enc[:, 1::2]) # dim 2i+1 +# +# # Convert to a tensor +# +# if pos_embedding_trainable: +# lookup_table = K.variable(position_enc, dtype=tf.float32) +# +# if zero_pad: +# lookup_table = tf.concat((tf.zeros(shape=[1, num_units]), +# lookup_table[1:, :]), 0) +# +# outputs = tf.nn.embedding_lookup(lookup_table, position_ind) +# +# if scale: +# outputs = outputs * num_units ** 0.5 +# return outputs + inputs diff --git a/deepctr/models/bst.py b/deepctr/models/bst.py index ba5a8bb8..d4fe8a02 100644 --- a/deepctr/models/bst.py +++ b/deepctr/models/bst.py @@ -82,7 +82,7 @@ def BST(dnn_feature_columns, history_feature_list, transformer_num=1, att_head_n hist_emb = concat_func(hist_emb_list) transformer_output = hist_emb - for i in range(transformer_num): + for _ in range(transformer_num): att_embedding_size = transformer_output.get_shape().as_list()[-1] // att_head_num transformer_layer = Transformer(att_embedding_size=att_embedding_size, head_num=att_head_num, dropout_rate=dnn_dropout, use_positional_encoding=True, use_res=True, diff --git a/deepctr/models/deepfefm.py b/deepctr/models/deepfefm.py index 4ee7d20f..ac03e973 100644 --- a/deepctr/models/deepfefm.py +++ b/deepctr/models/deepfefm.py @@ -21,16 +21,16 @@ from ..layers.utils import concat_func, combined_dnn_input, reduce_sum -def DeepFEFM(linear_feature_columns, dnn_feature_columns, embedding_size=48, use_fefm=True, - dnn_hidden_units=(1024, 1024, 1024), l2_reg_linear=0.000001, l2_reg_embedding_feat=0.00001, - l2_reg_embedding_field=0.0000001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.2, exclude_feature_embed_in_dnn=False, +def DeepFEFM(linear_feature_columns, dnn_feature_columns, use_fefm=True, + dnn_hidden_units=(128, 128), l2_reg_linear=0.00001, l2_reg_embedding_feat=0.00001, + l2_reg_embedding_field=0.00001, l2_reg_dnn=0, seed=1024, dnn_dropout=0.0, + exclude_feature_embed_in_dnn=False, use_linear=True, use_fefm_embed_in_dnn=True, dnn_activation='relu', dnn_use_bn=False, task='binary'): """Instantiates the DeepFEFM Network architecture or the shallow FEFM architecture (Ablation studies supported) :param linear_feature_columns: An iterable containing all the features used by linear part of the model. :param dnn_feature_columns: An iterable containing all the features used by deep part of the model. :param fm_group: list, group_name of features that will be used to do feature interactions. - :param embedding_size: positive integer,sparse feature embedding_size :param use_fefm: bool,use FEFM logit or not (doesn't effect FEFM embeddings in DNN, controls only the use of final FEFM logit) :param dnn_hidden_units: list,list of positive integer or empty list, the layer number and units in each layer of DNN :param l2_reg_linear: float. L2 regularizer strength applied to linear part @@ -58,9 +58,10 @@ def DeepFEFM(linear_feature_columns, dnn_feature_columns, embedding_size=48, use l2_reg_embedding_feat, seed, support_group=True) - fefm_interaction_embedding = concat_func([FEFMLayer(num_fields=len(v), embedding_size=embedding_size, - regularizer=l2_reg_embedding_field)(concat_func(v, axis=1)) - for k, v in group_embedding_dict.items() if k in [DEFAULT_GROUP_NAME]], axis=1) + fefm_interaction_embedding = concat_func([FEFMLayer( + regularizer=l2_reg_embedding_field)(concat_func(v, axis=1)) + for k, v in group_embedding_dict.items() if k in [DEFAULT_GROUP_NAME]], + axis=1) dnn_input = combined_dnn_input(list(chain.from_iterable(group_embedding_dict.values())), dense_value_list) diff --git a/deepctr/models/dien.py b/deepctr/models/dien.py index 98ce9f1d..a06250a1 100644 --- a/deepctr/models/dien.py +++ b/deepctr/models/dien.py @@ -213,4 +213,5 @@ def DIEN(dnn_feature_columns, history_feature_list, tf.keras.backend.get_session().run(tf.global_variables_initializer()) except: tf.compat.v1.keras.backend.get_session().run(tf.compat.v1.global_variables_initializer()) + tf.compat.v1.experimental.output_all_intermediates(True) return model diff --git a/docs/pics/DIFM.jpg b/docs/pics/DIFM.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c672dd4369b561d44ccf9b4e05d6cafe06aae60d GIT binary patch literal 123144 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
FaeqE^yW1RF=;rMwK>()5=wxFttiZj#H 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 bj8{Jf@{ER~MCf0v4><`y|In!bAkH12 z{+s6-ct1*DX@Bzkb*IXs`iFxSkq7+;Lu-y$DVu<*she+*Z=jp6pV&FMGk~g&p)vJQ ziD3GJkN<(}<045jslYqxwMd4i8$=x>1JOCp=`__&lK-Cp zPABI;M^JcMko}HRprbd4KL7yrb4R~`AON5}qDzDZ`5oa%5OW8B4FvI%BkcMYE;+(? z{=&_Fc+AaoL7vZGmoPgx1h@hK>lctN7UJj%mcvR0@fjZ{cOL*?lL4`&qnm>hh>zMX z-%_JyZSf%j*Gj#A&9}zLKWs7WM~dzeh@!&4%EBx zH&0%Gui4*qQPsHw=xYB>?{f$M(O-3a4fecwL_aG3r<=3k-{nJD!`;j+K{_JQ9-!}n+{`b77}O86%hBOa`$1WtpPhZQ|JDgK#5wTRQQJU%syZj< zOL`y%Wrwah``kQ|_oy7AUy#mGU0_~nMnA7V?+Hk!7I*eCIHHS#STQi<#@~6VErJ5f zkLX}Ksa^bnOpkO3wv#&C!{Lf4h{5(yKLV}-y1*qs3_{(7Ph zH~;~FE8q;s{!RHOhvlCqKH%pKARO2Pd_bPSfAi`5dFl*=fb@fZsek2_1zi3-4f&J9 z6Icdo@CJ+kFYtRXh@HVa|I}syd;=-&|9=0cb_cLbN3gwK;C1x;|C;^}^*@~2puAWA z&Kvwsjbd#72KwFOR-}USN>0Q@< zYcu=P9#61e-2dhIN8Y0zKdSR+d<32;JF|9%{8uSK&S62|cm{NR{q6?1ySfF5X@jeS zvzVceqnwPG!Wo6L0C2R{9Pt3aFWx_E2!!|Je`qn_JFekFp-`ItLo?b3fSP0A>%aIP zn$##bO@Q-sUz%fZK*(R^Q6JrCz*&L~eA5H~Q9uGX3Cg1YC<7OOi+~<*1uy~30V}{B z9ItNRI1d0q0R#{Q!~%)nYMcRN18CqSPy&<#?|^!s8E6N3fKR|@U;>x}N6&X)9l!wu zfCPa+=pZZ*E{FgG200FqhA2Q(A({|9$W@3L#0qj7;tKJB1Va#z7)T-{9g+>nhm=C9 zAnzgVkbcMrWCntPtU-Q4_Nky$%v9V|B2*`+; z23>@1Kz~!yQgcy@QOklO_%iiPYDa2+Y9w_MbvAVgbscpV^%ymV8b^Id!$KoWBTaLj z#*pR~jVnzkO)O0&%`2K(nr`r2`c6ZjrKRPim7-Mv-$g50584RYB-$6Wm9!sdM`)L5 zcj@Tp1n8vcH0Vs|9O#1RV(FgIy`gKP8>RbBN2F(>htVt0>(g7)`_MZ>1ll zU!f;4urnNIIL~0h;KXp3A(f$!p^;&j;X4C~k%Li+QG?N((StFH@hM{kV>ja$#$QZK zOyW#xOxKy*nIf5?UhpEjQ}Up!w0-zeW6zYzaLerNs!{!0D{{(S*40X+dvfi!`7fq6k{!PA1*1w#dM z1-k_|gt&z+2ssKR2)z@U6{ZqCEo>$nA^cK!KzLU~RK!5UPvn_Mr^tpVujoZl578&0 zt)go%E|@0F9rgs)2Kyn#Bc?6pCH7RTOAL2R_}JxR!N>BC4ILwiONrkUj~1^KpO;{i zP?d0zcp}jufs=$u8cQN1%Oq!yGaOev?sh!uc<=GO6H+HEPsE+5Kd~ysFJ&kdE>$M= z!oqCKU0%JbBVQ=d;$omM*Sb~@+uur!slvb4MO3+WLV8W}YiADIG~ zDOqM&ZP^gnGFglquiRC+Xt{d1EqO_KYxy+!Uirf_N@u*z6rPzo%X#+7+32&4XMZZ3 zR&Z3vQ5ZkRa!&so>RiJ)yrQ(Cvtq8|v=Wz+u~M8;hth$vigJK*h4Pw;q{?lT=PFaG z+^VLkNveHnG-^6(D79v_-{+Oj2c3U+e*1##1^=|5A>wVQ1*LT$~)5jSo8AKR-xJ+}|=yKZSDMJxMN5fJ>+!d88_pWpqF&o`5 z$~MAYJ$*IcYNIig@fG98#$T=-zvgqT-UKi)GzbRETc+EFyRLh-JKp262ijxL z)5Npblj3FRRq0LdecSuJ52uf(PnWN#ZU$q6BbT7*`IafJDV4ct9_H~#KQxPEw11a*XCLh>nBbJ~G4V`dW+FMsG3jIS+2p6mloXegp;YD6+()#Jd>&1vX{D8< zbEJo-FFiJXT=zumNy3wz40uL=reY>Ki!m!WYw_vTrwz{}pFMg;&UVY5$kEBEd@lSv z{`uYurx&BS7jrAnBIrc)ex7^YbiP4;UBQWh%$Kw;LtZWyS`_vcsTP&K5`2~T>Y&)C zc(KH+q^ne=wDh&`>(nx;vf#3{H@0s+mtQJxsF1D5ujH*vd<(n{e*2^9cGcuNqjw$E zs?`-W$7`O~a@8i(LF(?-;p*M$7aOb^M&4g}-_dxXv9?LBskr%Ab509SOKK})>-|!hR9F*12`a(c>kYH`|W zdUeKY20t4zOPY)PLh~hIo_#*^tMJ!?g;NWai^_{Fm`j)e><#SPlH=0)x4>`Y@AsEk zmNQpiE2XOntIccrYoCAE{P@1^w@%uK-Q?JOzIAe|X8Ypy0PYsF!s8H-WU5KolUB{8s(lyKlL_LJB3*k)Ix%I%qsJI{ZTMrcnGG0v!I>0!RC9 zDi?5<{<9bWSgZhm>oaIS*!;B@{KEnHYyS#j$luoy`G4TQ_KQakKpO(60B=WTyzU18 zcne-9BEho3>&S#RzX(vBJNNGeQjSuf%Q=NV0KyyqnkGaF<(CKm&@}?UK>&q9dO@Ka z6oUJS836d;|JNS$h?|xj0P-}B&;-9zdRDYy>BH?oL2710ydVzkuNJ6H+Hn zomNy*R#8*^ccH+FP(b@%l4^?w{48=sh*nx2`(V3)pqUtU>V z`+@)YYiF0RNBq5iBo_pL{w3DGlKl_4I6%3msHvgUbVqVQs6xRD%0W$Y>?|#(_H{Z3 ze=c!_D0*(4wEU`e28nZKIG#HJBaFO~ikRd0Bhmgy_Ww+<=>ILr{uS&$a?OEeH`Sj6 zrJ{n;K%r0?S{g9X(t}nSEiFAG{h!46cVhmNSdS9hzlj1C0s+gQrlzI?f7zKBnArbc zC(1nNpmL+k0?bedIGCUufEI8-E=V{D6c!akGM)slE7m80|BvwhANqh&K7+lNp7~eL zojT?Ar|14Z!vC#4%8u_o$ue;i>GBR_r&(fUD$!uD&l3b{^^~67G&&1F(oM7zVrPF$ z{ye5p*st#NNPu7Ac|=kIP^EWV7T~_F2XLF2eTL|9n?n8&ZdhfQSF;1(9)C9Htq;li zoS1WJ6nkP7|29~4PkH)@V3wpP$0>}J>Q+pz1M)bIW>xM=bX}GV0SBCIdr#IKIzj(Ls?aa_)H!p4( zE;0g{2?+w2_wiD7Y0e4S89~RMq?#Jg7Ufa>Rb>Kjvhe83$^Q*PH-Msy{I8RPc(z+P z_U?+muz&QxfFF;6WO@W6d6t+@0cdFI-cHGpHE_P2?pW0gCpYH_UpbbRoXc^{VtNL5 z%|)4bwIBJX#n_jT!ov1$;NsfP6}ScFcy9CBcfPut5Yni9;_5*0I6$`qe?+LOBUp@B z&5EV)o1Z?pNF&U6z!XK)$#odEVPB98diP^E3oG;Umc4aQRx<^F?nGeFWNy(56727)2FFa;n_djkKI@C6#xXaFY zC8Y4b3_n8`v*9t1v_kf@9&dU}93z=~SSS6mvstqjcehXum@`uhIUSWkcWvVL%&ycA zZ=T;boI%wZ;3&XDvdp0jPQGKCgP8E?s=?!1*dpGg;Y2Gn zdXe=7Nhi$m$^^ow(36U%wrZ@rd3`V2Wm?>=)8UHd%^@sA#2C1zYY0ap84sF{Hxjcj z+p#FVRsl~qYX!n~Swnnzw;-D-{`^Kra;rXJMFelR(Azc#>s+8~4s^ifbbRF>Z@#zG zL_*b40Oz$U=!W`!$V%EYb-ysP=$UH@3J}6g%f`mqs`~UTf>V7oyVbX}Xz`LCRw;n! za@z?C;D(+H?P*NiXu`Ij+H`ro>sn%C z5aFO6s{D(kU-GI5e|Q;lv}VSgHnmoP!*L40bjTZKvdGtYAk{gW5f`f|Ijhu~5gMpq zM6lvc<387_?V2_O;n^|hfz29SBpTs`Fe@D^qgzVJzF6M8%tr=3=J#@0=A7O?_8;o| z^*F`h1lLPRB@`54dOgC6t+s~>{*e$a2d*?PQfARgWMMR;dDrW=UxseZGjDLN*n zR35S=&BSy`!B~BWQ}uJOOmC!gJTVj>gURZCDldl=4oey9;#k{~Xi$D*^U1M~<DQCAWTLq9KZ44B^ zl>$U7i=J#I-Yg+XSxvaqjVd09@{4;O_*|C7I%l6rjYcHv1*2lWo|ro3zEe2fTq@SA*MB;_tBV0xafg|yeri2+IE_4sLnYU?(S|`6 z_u|z(5Q;hrUps|E>LQ=8k>b*-mAQY_1Y;vLzZX`18cu4f`xVwn(3(WbAoxB9$F{sz zIq%&G&VBpG2QFKEe}0ammL4jdYjS1bAQR;Y6ZE72)!%y)4#kPmRu9x+828}#+Qe$M zj548HpBmykT?0!boiAb|wG7=VU#K4=U0OxT9XxNtyp-MPUmT--to+7nx-`e>>@!9u zk@sSEn&)f}YMQ0;4nNMKHm?Wf&)20PWrwFT9uJ$;XbxQq!QIVct34%+k$(WMSB}HW z*#&l4<}yu?l@?h}5814$8*1=wSr@$p<;H$W5pV!Zm(4CLfk1a=?$I<#J1iEnvle3#$2`=VCD%?Yh z@3)g~DB3w1<9SmZD_6(L2V;wX&ID@^SqqP|musnuXyTV2xS<=&>?mV)Ye<34%Te7GY_5Pct?{0(`Fp%4J)!znEBB-Nr!aSk zR|*VyZ1aOE=3`2U*CPt;I`8>(Magi=lw5hv@!n8av=-T>P61rBlC&VL{K(#7?5hVf z6dd#!6BpZS9r`Cn1?=iUr$9YzuQ?Lo(#@-m7n(m#?i`0jB9UY!5a^R zH2S;`ds`zbIrB4Vq%8BH>NhU5{WDPH*!(35KjIlD5tbXT6ni=K! z@}17_kt`M4d%5~!)5XvB)WjHy{FC1%89YC*n-|{uW;-IMpMT;;VM{*-n zadNeIA#2?J-NrV8nN)_$%h#EXzb@0^7M*Y`z`bV$#PtqQ@hK%Z^J;hvUt>iqM!tN> ztKX+L&wsY@Bl!WSH3UL;R8tx`3WKSm^5?$H%&haJ4Lq9f{cdZJDPYCU6-yVb;JN$b z|85&WHt?MdBxFqlim;UuV&P-7z?JQz+31Cr!Y%i#m*J(8AfkC;*=k1z_PKnW8@L(H$~5QUL7w;K@8To#ul=Ee|12wJn2` z^8R=M{J{&@1#PW`%87+YQJE?AV4QD9t}I@rOtZ9fmO)NZZ~6^sCV;R03iKor( z3SjF*0X`ceyOAHYe)=5JQh-XfgOVM{j_h$+Zoo3mv#qA`g9-DGy>QyLrEu=Kv zav7u`OKGeEw?f2rEBz}!EJW2Wyt`Sv2_fmS&Fa-WXz}H_4AyD3@iOckqn8y7F9YI zW;#0rS323~-CE^w&dW`{JQ=NavYdvlou5Q$H{1Kw@!5p7*>i*!c;8OYX0R6~^5ASb zIfzYIsdzEZ?pQ3U+S+QSjOW}{jO~)dR@C#ruaTOQm6AjoeDw!7|0}$(DE<3P3|YG5 zQ_;fRw2iqyRu!6W-y)_4;82u@Z+v!Y&-%hl6X7AQs4^DeB12p3;9qQ8+nupn5mIHm znpAX)V<`yyVL+${3ije)6SPH=7 zc1VY7EnQ+`?{gSajJPXTA)=41x}5BJS$yXPN0$FB?zy z38!51AG}8*QBi>Y=ZI6_xH^wo?agDWT&*02&Dsz;h{?FXC3Nf|6KKXtkxw*cB?SF0 zs*Y77XQ^DdXt!bhx+^a;WP@(Wyp;nv*(Ttvsc{QA46j*;E?1X-Lrj=8Di__m_Fjdz zUi4Of($-Be!th>0k6IqvNaJ^e`x1%~aRIkEm8kAr+Fj_*dr_dmMN%9(rb>O7f#>T& zC&B8)!&1A(5NClESWy)V+o}o%d?ZgNioETN|zF#H+W}+SHH?hm%@D za$0Uou$gs2Do&&LK`okNdKgt`;t=E`{>Y}sIShST&HP3tT?MUL-xp#U-jT3`;vuH6 z-Ctm=$;S**-Mv%)ej-@L)+3&SgfkFikHY_qbJ)HJyJsY0s_*<_QqlfsJGf=6CSs@i zlGZ|iS~yxm4=IEEtW|5$wVjH3i=Y5pts-IJvL~eT1KqLgQx#c)5jN=$%4gW`<~;R( zQ7oc&Plcp_xOz~axIHr+_7YneTeGeqe+k!;Je2Iuvi`*cQR-Ew^ubApNz6jMUh=>V zx^vpfFwgraqeu3_+m-jCF!8OnR^L&|r{j37SZ5+d9`~27QNHhad zGpyL~AmdP+Y)+KIEnKZ>!L=pso~)=Tb9cJg82!ayT_K=gRAnGi?FisjNfJc zB$PFgu!K>0pb1$sC1!P_*e^GX%N9K;a91`()XS=wcAfEh*bY@)5#ZUsJo->JY42)@ zgz=~fE{VBnpApDSAU7uxnh#!S%G(lix?$A@oyiw0aas?2PSlfJO2cus9sxG4gEnrX z%8c6lLODF6pj}s=K9B64P2JR69Awa{RqQXQc|W>Uc){WQuSo{ezOqb4!_$7}QlcZZ z4A!La+ud-SDQs5dLpX0dzNrUIH+79@^u~ny$}&#GT=y)MTDEMyd8_`oRB5}zWL>TN zTsla_eCzzyo{vmW0Vkm*)A>xo$P8Q?3tBK>W04o+mBlg0`7~Epcj5 ziw$vWM3c!QRG~PYtnIW%NTdHHq%HKcUp|-hyZW6Lk2b+JuWgaAHq74UIzs1I zKhwz+jo~~8b6zaOL~V17niI0GZ3xfVrvRI9{5saPYk`NzM7W7lMpv%2(xiFsYQQa< zJ>8Bs-8QVRzm(kX5Us*V8y7!qqGBs$1h=v!e}!Co z#_{Z3TGuBDN;i%9PH|+atdHLn5X${Qm3MN!7bDgl7kB5V8Z?oE^2Vs{`Tw&E+`}Qwh zxi#AQem^MKGXJfsECk$BQ}=)VnQj4GJ~WlWm=;If%));BFuI8s`RP6xA+gYiy?R?z zpH9Ow#3VkKDzSG2A@|s(9?mo9<1==x|5rARfP9i8|6XM$dbS!{zbT7lV@F8fLN{q} zKj%92nvGq-Eu{ONK6du%yBKJ6-kZdQ+z89nikD0CRPu9shQu($@jLtFy|J&F1lL?h zcf?~zk2JSNRfnws(z^um)3*opD0le71rFpf#A%`|u5rp{oXl5lKcjRoI1}A3D~ooD z7#g*9XRQCI3Z+w@szq=e)R!Z?aT2{~u2ym4y=IL{#M$?a?NeK zR9=H#L!SX45z^ZP5T2xf!|6kI;=MeCM;p;Ge~u{MJ!Lw(_G9*bY9PaVnPZ;GRk!IF zubB&nZoZgewH@Dlos+CTGk4kffk=;E%E!Va$8;JX#Qeyw^`r*$ zX@Pz%LnA$ar!TCm7s-vYduc~ZG))h5Ej1OCxPq6IG2%(9@_ShdaMeU@7>qWnlg@Nu)&eo5fo-3@H>sXu zHn#R#E@DC>)}{#iMGsnEdZJH!=e_jhOvu~5zOsy;xiKV-LH~jo6Rr4NCU?mP0tEvx z4iXu?+2`*`uayg3JM0_v+No5l(Cp{bTh{t|FGeWE@Y{iBnS9q&Nu@Pf?!{Q!Z$ZrK z@$|hV-)F^ociB=~xzWNuKL3cZZ5&fCxsSA^iGI!*5YqT-&~E`Z6n7XquY0)vm;$6s z2IIp@21`sEw+FH?cRVcKz*NK!Fd+pQriPDChXSh zZMZah_`RIaEoay1xhIusX>kI>SF&#n*rc1~J1;y#J$h+h?S3AWpz$%m@zsvgkP4O7 z`QIJBGv5Xk(ukOSq8rNubUCK+ZS*-tLud)Zc>UVp zELwh0tM6;F;YTvQe&}0G1{QgasEn|yG_F8(=-zc$eqH&P!!O3Imp{!w>&kZ&=7q@t zOJm%@t`r3jsqknRuzq|!KN!?`+LQH3PJoL{ zMXl^e4brwdfjs{^M1Xv1q~}hNVzJJrHU(6kPOZym#szuv2%h7zJnJG+@JA>vnZq+= zkAoJ3A|eR%%-~ZG1?d zsnavb9~XyDwB9+$Z)LV6^Blx$%DZK0%1rlf@6}WE*O-m zR!DR$RMTzx;w7-Xo$!ZR9J?k|tNn{F^yDP6F4>gGxg;%}ImDk?O3et6PRFzKRJxPg z56Ah=vpb?-F*{4V!!78yC;U^rKGTgYaBBH3%w$feUthf3d|kr6-TSV~RGLlStQb8DKjWC$-yN2i=A!_( zYxKKp>{e@8XYJf)-!#^CPp6{h?pJ&Na`Js<3laSqm=r!$K>^z3EDeIPagtESwHhKrtqp zl_X8FBmN?_>@*&ndlBNj!NoE2b7U>q&5_#_!M7 z#mE(vB&G$0eDFJVHcl$(Zd5pay&K%*@1!!UQUFnu%UyM-x3?=c1n-iYAd_}|?y5rN z^IQ6Asr>yK)u3VPhq!%EdB}j^!o$eNT4l%OwrcU5*9d~ag;{~UTuEgOrT}%sq<%4e z0b|gMni=jnJcDCPS{~gg^FF^N-J(CMAg|bStKao!4)x`jN9TslPemiNiF0_N9<7?; zhe)QwAx#?G{6c&U6Mylf(lGn`cxAstL7B6L(lk;c{^a!~wrFSG7$ON4{63^Yf$uVghu1?LXJ88I=ndS z^s)OEw-u)Mq@L#%ex_l2NC7y>9Js8GdV57;%&Y}~6;2y^Ys2GQRpz%c z0_@`HQm^fHTZ2PbN6WdajdpnHWV7kq?FQagALiN!@h_r|@qP&iqh3+v|F%Na>W8b0 zMw|k->crEimCAA#1QXE`w}m2}V(Ssg zNoAY)7&Is+U3N3G^_N4MjKBC5mOkUjbPZEo_hTChW|Fm%@fQ*hutp5*cY zOZtxvxnJR@9&#T0ZX#^CBEMls@>Rw-X zha}j4!&)S8JxJ7kRP@_v%@Nt<@Kg%6B~x>xSOtmHazDo&95ny|8U; z7Teub;COrEwe##&SO7|(#;=*w1$QPH&Psk5&U703L7Ky6ZM2hY$$mJ4*dW;mQ=)Gn z5vAYwuC=Oply{54F+rS>zR>OCW^nIR3b-!}T?z%a$cY3*O%)nzU*RpMq%ZC6PVKER zP6~gLeD}kyYUPkO-_l+TQWfl7Jx$SdIEzw$WsozjW!#c?b6Mw3gVoa~nY?wQSr?6&aBL{{qDg+YPU=)74%a( z-Uaxl6ud$9gu@>+8k;1!2^{By z=?5r4sM>l`YB;$q@z9jC1S7E;Q-I==o@=SIa~R9cHWpO7s$&oUdR>P^L_hxR9* zTzH}NnYPrcBRdUAQ+%AyPm68; zKt{LTCEg&pAlQk$*y(0I3{%t2xX;VG<;L?#b$C1dr(Ztzbu!axZ`y%fjeBfNT){bZ z!I*YsZQW3F*WdWfD=QcN2o*bhWs5q=Q3==E&X$PcZ>1x<<5V_kNd{pz^jaDwWF_lx z3lDb?&P%n|%x=v?OHa0)V|l3xs7M0${PC8AK_Uwd)wR9Y#^o`^m;JqwK~7e2-CbU? z4m6y&=Tx;99-}?JAvF*-ICwW|x)&>z+RDFfRI)a@S|24RCX*_h&|C(3ZbNx~H<6^= zQ8g@lvrK=+Tt3G1J?7yR|Luj^2>UeBd9wZi8s(Ha zt1yRUEi1G)!rI*3E~p*JzTxfm)#mqW-kWAkiO{5wJT}l=aIH*0f`7n8;zg)~^Lp33 zx8k6}luqs4t%_UK=QuuySWV{w0!pKZGY7Sr5QG)pOOy_`Rq5|qZXZ3Fx&PozX6z~} zE{orbuv^)0lIn}~Or6OhXpAaOy-U5;)H2#Basx&1v`zZ0^UL*w==LW3I&qi)Kd3;S zBL2cuCN@XB4r9`bX}4}E-)-JMJ>MQE>DIY-#qP{vYU6tW)#XUdb#Me(Ab5!kDEERe zlI3I4o!^MQAd;%}^4cR5U*-$C@r2*Lg!|yK6$|{;&Uh*b5n zbfKqyPAT65a`eN`}Q%;%GIyuW(>JzO#EIuMfiR573zemBHeq%Gr>Omr^MQo-1uh7U7CoIOAmfZNvI#tr{Zis!P~)%K^3kIw!o_7equc6k>K*jAH4PNlNmk)B$L%7(Bb>yZ89|nLPoe=GLOn9 z+`*f0gmvZpTVHyq9**iHHgJ|jJ&*LYTSOWf0XsYeF;DaHd?HsTc-W(^DE(KD%#{qSRc zt;QDji>%*Ohf4<4{^lc{1kWst58k3Sl>8|`fm7wwm0!bbWGP}G#%7!22U7I2te0G~ z-6^z1x@3EET9n!7emVosZwG?G$~KwnlkwOBf$8)lIPVm-)~+C4?x9;AA-*>I4t)1#gw??Cs1bJDDF~jhNp#sqsVV(gD@w)?^$y zN&PG?=a4ZJZ-GiY|Dg2&Ut&y3I2<4&cOO$a5@G2|e) zxmH7HfHRa)O?C&yXEDuTApZQlDduYdEi@r$?n5fF7;%cFMvEIE?Tm$0x%Ndo?NqAr1Yh_Bqs@3DT*uK@qa>$8LCTbN9=OfPHc8lY@GHy2TJ}$X@L#Mb{Eh-!(k*a?!F!L|?-ds}kd- zRIYz~HcO$GwAh-{!zx`(48)aT7CJOIn$>Vq7i)2Z?CoVm<YA1H| z^-?#oIN}mLm`?&bA9nKC1`f0q*`k{*@n}q2BH5dCO+IyZo@&dg#)f%DaZIslS=H;7XN%Y$4nT%!sR zxMV`L)>zS?yw#W~)3ixy!tYhhDMEg8k1q@#qQ_2c$u8TfXb!}9x=W7eAWsL1qr`F8aVsZQ64YNt408ziU zb1(ZH|CUo-s(ZRZdjgDL1b|^xnQbgu?y%@X0kCQpW6Zp3x3cMaeBM{LC1cJqxYCmT z$Y~~j(g3ekSjCrsYtpIs1}m+_N18kq0v6{@#rB1w;IAJc`?RX{>K|^aTd{Sv91jLV z2F?xT^ifwmVP6qZ`0#wnKNu&E5!vp{LER6v=Y5yePRNC4yi!E1u6-Bj2Lm3Qz<8W* z6kv9{Bm7l939>H87QM-s<4rsApyge_?UdtRUcamqDO-X;5h^%z58F(t?ij*|WR)n- zu;4~`Ywxyq%8|Y1=gXU(E(R|oMQu)*`Y}P$9tFbRUtgO%>%LZGK*gk(bV9 z!%i>HFQt_YW0Ex7^IcfV3Z^c7>Rq2p;5Uq@PGED1>d?Is=u|5k5pIZscMLNUZM4Tz zs$RJ_1~*$wB>^hz8?C81(9MfG03e-QLv&meg2C*_X4NCI1$evNyejl{a|&=defo?)hws)FurwQ~ zrHNX6O2`D?w?q|BMusAM@Xw}Ap=Y|v5RJ>C8S-Q|y{@C@$Un4bqyHP)-Jz={mM{DwI+d0(Y^M#*|f|UosQxsrF&2v`{OYf7HK8c}D zyILe-qVwjA_I?6ZT>#exo-%e0Gxjg0(zu1pYCbsiwDvhe-3b-yX9`-gGJzLiQGEMy z@5@l_Cl!s7g+D$5BY;TGJCBN=j#wM0fBfma#q;c%hCf`#V}Z7r3!jCNi*a8Xp8e)w z&)39zL(f5BI^XaSMA(5EdvW#J7w^8E$|)EVLWX#Ev64=ubDL?EHyafP8=Q9#cI@+2 z&3t@1fE63y*;BJUT}-eV4PGT16_Zs*^IK!DD|(6lHZu*SyEz1PiPY33W;pm3q1rE@ zTs9RZ9Rq1{V_tU(7r%)YiMr|A#XO}!5+Yy1@pZsKPeG04gI1Y!3wt3v%TP_$$fr^h zk@{I#4tSvc&qw^sF_DHE2DwDG$80;?*^{->&TqJjA>hIL%-F_;9`&4Wm?BL)UTj-hMh z6PuaDhx0wGqd$4dxH%e1$esC72#p!{hgSrzXfhv7PMEL7C7$5^>U(bd-Pf;=k7tfN z94KS&pzSRRSNgw*?*8v^Z}_li{N65{#9)tFovd8-Y0EX{+Wyf--~i(zM#?V=J*jzO zO2cAvs2z&l?J+r^p4zb7C<0fY?M2^xaM7Dhg{NfKlcTq_)|1ft43*PuGe(ET3m+DC z!68vA8mal<=ua;y!LXp|VGOEs8%7R1DDpvgV%9Z0jNtrVB#ndF9~GnNLB!D}NYpnokMkDK%I1WOtw*K%gx&;-_Z8!A z>j7Y#^8ixtAXW*Unwj0!&c@@ZsesSTDZbi){b5s<7!l$9@k&kg#RUG$k0oBa*k(G6 zYgFwv=z^+7Z=x25nY+e3!c*gS*-j{uh8)t>5=w;AZ_-0skn^jpJh4pTB?mIdUT+_suj^az7g&>-)|nVpxVZv{X7YG?~`h z9;U6{SmP6gMfU{yd*LM*T+$NgCsjZ5IW|d*l_MV@KeYXHg)xHepS+_Op~_cS9O^!% zDf>`Fa8S-i+e(rbALkc9@0j%b+sb5Jxy+`F?91w^2eOL~y)Q4BK79EZ@*$6{mu+@z zi8c-=eaOgytHi3rZ&Xz5M2PU2rfke!8tbP%*LBDJqnzR87+*vHw=i_{MIhdw6IKV? z9K*H2iDE93&9XS`WW)=DTO{?*Ht{wJGGZSe&PXvut7(A7@ke~+#yVDu2RW_DNW}fL zGQw1{t(|}HV4`Nmy)dH0TC#)Zw59Bj$(8+2`ncsN%yc#jopJrxl1~AB<{4zuMR15f zzLKqQmdUMR2y6K4I+iV-d;u%MW!_jjqJFmUH;%zOOZ*sH23Nd_DDCB8+r{MqBAiPX z+$dz?Yh;BVJ!u<<7;1CM$vt;yU+v7_t6a#bq$gUCuG`(&GpNb^9excbVF;d)a%9&j zvaonLjnSfgWR{QT!cHOTWC9FrZ>Qe{tq&TKPToBj;kYFjT$!s4uJlju6(K)bc+F}) z_9tBTcVqOB-Se8~D7*=+ZB!fp2v%#>T{S$(|n@)L$Ul-n0 z^&T*5?O)5-4-76^tDoZC3(ZV3(I}N=>Pr|DQ0FX6N+MnN2cLw7?Cn{k83%ec^=FJ& zEzP&jb~(AWo`n7~S_K+W!9`Qn?;maYmW zJ#w=b8dWE%lbnaz84^xWC-nkOk%7;bvJdvMjK*AB<8EY6N;TCpR}J*Ny2R4X*yRLW zpski8OJMADuN&Kw3~Cx$Qn!XB=||a!90GZ4?Ws|@u!-7K;_=F^19|;bzWdK;ic2?E5_LxwL2=(ngSidqH@; zis?P9*LpJ}IafvL`}dDJRULe-cO}E2@S4mJ-t)n)Z%y0udVBL9yOT^MM)&xEaOj&~ z7&NO={dA5|t@5ES`up!w)q{tJUmQc*tbxOOZLX;dVN(QN;>@CNBAmBonl28hZ1c%G zSn)cHm~KBmAQj8}tM(SpQp)e1PV}mTeHG|dis`gY$#Fje-;_4YPq`Q-8svO43T8X; z=|JMj#IckGv+CF%C!d~|sVaN@Zb$5lszenJ;`HkWrr^J`Ie#ZoD+d*+DR7X56rBmn z!VGU(VpBOm_grr3YrFSRJ{6mra^8gjX16Y#=_`)vA68pZ+JX1NnaK>FwHBY{DxwLY zo@>ogsFHSZW8}Lx)tBq5;{1-MC{LTrAJ^AI4*WP|#-+3=d|3}yda=_NAnL}c-?t~0 zJ@Qy*It;Zq}HzwU9aT+58B>4s;RHt8V!OV&7f3iQ9)2?D!m3oDIx|eR3R!L zB|t<(0t7;l-UI~{6hx#cMWjkeq=SecRYFNZP^3f>!MKGa-tF&u&$;LQ?it^`-yQe< zl`%5*SbOhht-aQ><}>G9`a6$ix9#}8)Uw3*Em?-sw!gz|DRU7~9D@!J|53Apdu|9Y z#$8A2`Vk9iQO_294ctq-LFCa}c(|hf`-^mUcwYH?3q6`mWT|id(^jINPL`YLixU}_ z9qk;8A+e_n?f9t8v`7Zh3Q*a>U=IWFiz+g0^Ge-aH5$TC)QocJ#uJ_8o>!kH_fa=& zC-BFCOU!3&~e#STF@8O=SG=pd!)}j2kzh_xlPB^M-!6#h3 zM3<;7xJTXV#|PIJ$!_iSlef(b5#{F+E$E~~mZ6OKvy~>|ZT+D=hn;?eZ#D>x@@)>1 zLF|hMxWedOY>xQ@K^fzEOm-7GrfyC&6wJC76hz4ExaRuqol4N>KIJJ?RBn$%4AbMt zj_J4?8yVqIPn00X z0z!maIt#__r-e)KOrRTK z0F6ed{19cOp{--T-~rYw?6`#Jh~~q6Rd&zRdrp$?)C4c`7!cxcHxVGKpGqG0p1cE1 z%wCafZMgf*6I1;_Xp9Cs?_IYRGaU7`o4mn4J9pKsv&6Yyo0yX`wQyogW!D~$3^Sfs z!>MwnL#{t>wm(JZTpJIs_K(<%xSJ<4{q6WD<+Q9FXY4Wdv!CENcZUIHYST&n4IBHN z-R4()eT{T(X{EhE%!>+qJYrbC3XF3J+ zvg{A0L8$jXb65PV_9*imj?#8$Oj>xkF6xgwafl=L`J-_K_ofVof2#$k-#J$Y+ca8* zZOdU_Q3k*JZZu`D ze8_I_dFdHE`6y=amo^#JkOx9v*BR5~<>aUXzPcxYs13InWg;~Vax?AA`Cp zKGsPFqB{W5S;#etH^w3u*;xHi?*@G0g%0}q>(6Q*a3Qu!wnu%g3Ua{jo4PH6@5TAbsBLo!WiH+ltSE4nl%6yYMN`qfHcm;GI2K4IqRnr_fgiJm?|L zPsJP`_Sjoe*)YX86*+dvhm;x4tX5%SfyfuE>kLF6;P4eGg6aCW(8pH1uU&5*AeDT& zzxiN}l+lyvma$R3nTps2!tOj=(S=kp}=CKG>zg#DqvaLWSt;^9Z$s-vDf%J0gmq4O>on^}V z$Q$(eRIOW=lgvOI#A>A6Z|7`D`e)6fsvZ0X6jl(=py^Q>QQbv+91WHkF8SAVJ|VH) zELfzut>x2(ZE@?ppr-T32K&R?$nejZ_ z@zy~h`$AZ4txU9$=_;!) zLG|a4qBPuYjywxP_g~-zvdSX~wpmk`kIyP4T>dz7I4HYHv$OUImTQNbr9y|LY}Ja_ zCSws*gT>Zgoo11%nQ9GZgoFpg(Ea}TJJ~4^hOH!7Ipz*5ojB6JCK~bw!f(=6R+DoJ z98a8&*{UV}5w~S-X9SPsb^U>GwF^^VsS8TL%!`7OMGf&;OJ9uQLoNBM{<8kI&*E}q zm!@C4FU+hoJwUFC_M-xJ-0G@jwb+Vo?LM zF)aPm#~`H-TpgA&;X&>Xz*?O~4E`wV5H2?Ah^~3}8*?F^&ZE{$*ZY^2k6U1tQ<$ws zxf$lnejq?1dFM1%9}i@b)k6DleC^uL1*PDxX~geeRqn}Lo(prrau0snvodT3Y5@*Y zudr*hG7oS*E{HM^vG@Zk#Nhs_r&0O=)f>t;&Q-T-%B>6B*UZ>s%&Wp2{-k)ZrZ{HZ z;_RMe>Gkx}F`tD5Ae+e4B7T+{<5j1wJ2xZZYH#_xf%RAC57!Fy6+TW`^I9orlZ*Bc zZb0u5_^}~q#&JWoM-NBg&Am?F;Hm`~kajVTEp7<7p{Hz=vUB*&&j7T=Xh81fRYDvh z*3v20CRsw!7xukE-BdMVZ&|d7DNww_kCg^;s0D;%o#}AGJ=WQZXbp8On{J}91{O?95caCCD(QCV4`&d$qZznah(BhWIk#lYf2R0Np9Z~yK_Cm|Wx8A>LO+3Bl z`hClTDIpN-N=?)doR5W|TiO8Ji)se8mR;N0?GDTYXZTq0kEo^Oqq0^V<{tD~B>?x& zhYn3`Kuh*7B1G5r1L2E?1%fEH{nw@xt4F6KY)hi{Y#?vjo5B=WA?(yBC@Y+CwmGA5 zdE$x>5Qy90m|7YPDq^QnuCz%tyP%|+ zjLzx7C~js%s*JZ^+EK?IW;AzJtB{c?TEEfl`p?gb-3=VOvC4bzx}voy<(=}ADDkbc zVqEm;ZXBRYdPhhsJTcxL6ckhiyt?@5!W~96Nqb2rvECxyRLD@4BffDFyPK|BBs&bx zVL~Txq0NSMq>zX!AX)kU`AYmR-9DK6{~7;xZM(oZmlSJCs=R;7V-AD+_b5-prOOFi z50_x)LjIi<{g3?rztW`tKm7v`OvHR56U%r&5hNPZpFSLmh3)E3L*PA4}HCRjd z_6#~w3xtyH;lACS`UBahb#5U2z$(8* z0iD!oU>Vbp?3q7e5p5|D@{;CagbkAL9(fNqe(paAGRa9%UWUX|{-MnyCn zwr&nL(L=ntfq&rTc(Lk~)U^~qlZsdur&AYY^9)FFFwVa8n>Vih_Rx8w&)LFtgG**F z=J(`zPoL)4l-rwN4X3CC<8hDDI+Nzn^V3@ZKIfv#UT#HFQlk19+p^b!v7|cxKzgS?z=Z!m$VK36O>2jF z@%2cbn~t{2fi5g>mc--^G%fs^2~FIsw#Ay6b}Map4^;+$irFxYGl9d#!Lv4B=+xHe?=0?ppo>Nv&qr zpji(&zj0Y#A}zZK+x*}PMs7v29{;cIAo}+XX)u->=09IT@Lw-+2iMIV^#Mf3xmv+% z;=%Wmv}_#y1IaETY5agqU=2aU?Fo`22tuZVg@d5JQ-%)Zq{zpC^>Y~f4#tcdJW`X4ff&64}3q|gOa@5<=f7=3A-)Fo3)z&}J!Tq1nDItCZpA)f> z_ZzxuA_s~_FKB=pc96TeG~x-yJN2KyT=_&?FQ{?Gkr!MLUJUqh_KpRm2)a8Z^7OKmH-AKq`k zXt4f9Bk`YTfJz%MveKGl7+cI3Y@Ao;59B|(7kuWwV-))KU!#ndoe%%U4NmHDf<<7D zp$h&$j==HAC5;Lo^bf>LkHGpX+=5>b=KWnwK}8a$_-l#-``K}zrM~|1GrEtVD|zZi>YWS z4BWbK`f>x0rNRQ@c=~*l;|*cd=`!Ds9WM?IO?`B1p1XAuqt4?Lp2?TgYtV#!d3ojN z+dFNS0#r6UR#MKnsC>@}W1_ElMKH-{3y&Jnx3ntTd(5@RQB7|D?f*kI|`I@1ZnD|5HQ z)R*?PuSVVYk}>*OZ^bd{aMVYn9L@(Cx9t#5g{3cux6obL**|8g8wRRl70TNIn#c=vGySGKb9P`T6;7GQ+`-=UZ z0MA^*$l^1ocRug-kZ9bd@t4eAT`BL$sZw~W+YB3`(K4P4R{iKM+<#V6p^!4Jx9HQx?! zWN@EDCFO2I<<`!P=I%1f;)iLthp}GegBOGW{oV5WkeN;LN)yk5BAN(fXwA80K6^9X(@23S46K9Pa-{Bx3k%mZi7Tj+bW&P;t zj5}%dV)tS8w1vZ=n61NjHanfA9Z<~a=7^+rPT3RvBo|=06rpq6)?upXM8(@qP5Nu5 z2RIxfBLm}RtjvHaw&vSm?3XVfwW$6G}ZsZtY)TdEO{l(nrAR8Yu-uzN(?z}z(|^PhJDXSWycJYN5^;bBF zlG0V_tB#T=g@M~QLoa@i^@cEO$Nz5CjR^JqoyBB6hA|-}2VGMpsS_vi%KDIcim|zT z##EKetR6BtJ(w={x`Gm21(%{umHZqaTR<3i)u-%GNx+`*}j zherP%AIuPBrcJ4<9?ITEA0WB3e~2C!-Q{HAS~FKKduM494Jg&#W9h=;qx2Wb3Lq^l zjNE!J#X^@2luz=^KE02<3!mk9L4vm=Bb3S)i`R?l!5ab(=-&Ylj!sC#?4#R%`V{3E zqIbNzMf->3`WJ8^gaSwC&CEzTH2&vMq|3IP;DzSK$q*IPF|YbJPaj2RTZzSn(el6I zybpcBbsCw#T`YU-Q0_{X?LS=(!$SRjBIBYofJ0E0C@)jDecWM;)YZ(~zIV<;m|dc% z{<5Y6`}O`axnDP;O_+=g+97%zWu(go)Pp{7PsXZ+2?e{%o!#jUUWU$B9e=An{Fy7C zv5^38cI?6>;SI;5WJxRA&G#CsZv~DkO!I30T zWG{^sE}vg`usK_0_%zI5Y_#p>f;08jm6Eed2~vmgzd`m~Cxf(DlpZAulrJ{-A)tOD z0K&0}@Y+?)#L#)^{)rwRM!a(9H4Lb#wP8@1qks)vwAUeO*VNdrtBkWt?wIjAZJ}>l ztils-MbmhK<38%wrV?&yq~S#XDj3GyKpgnP?KY&78A_Qq-t{31 zzKqEU78F0aH3A${?zd_WRI;3izm34a%Pc|4@`f-b&zuo7@sBrj)7NH3sejm5kf<*>-1ynfug*USlQFrW}=5#L|jk<8jXL($F zGp}>yP9*`Pxi!cVMa;?u7t@`q&v@`J9Z(gDF#V=Om7n0+c8l0KkCkRWF%e*CPqtsF zT+js}Jz1UH&}IR5H~b|l`QSm>W2{>$DwJlHm@?V1Co_rY-5udIaVKIJ`+BTKThLmK zw((wwvodeG3{ww(!Zj$)(4ZYD`;3C|fXp9bmCG^eRo_|WC6-zjk9uYu*yD8#b1-9% z_IDWF-c|!Kj=jF4wczAh+TKJGX>fJ=;3rn4rhN3|rwgC@8$qoBqnSAfc+nku8Cav1 zHxuo)i{;Hbt}Cs^ujWUD@tR+)L_|ttH)r!RnL+G&6KT$PE57mt1~mUV6mZyhb0`$0 zX!pun-u=g}4dzGG=7atsNst#06599~GCf5?{#)r6e76d01ZUmu{#LaS>1>|W%u(g$ zdJ>d2Jxh2E?~3$(Cojs#Ol!YX={p_1(Ia=m*8Mx_++*d2hMPQlvPMCJ2=FQ87}L~W z-5WE@T|t=o{$Kl5LxTlTHYf}cm0CIbBFG{-I}$_fxJ>|aL0^&})}Jt~<)fvB>>}1C zQc}Ktop!Fz{?sEX!GG}7@z}lN+b$DsvY_A?U`)ElfjJKsd5+oJ*?b+w9KokdAo?J}%bP7KdGLvgD7$P4xO z=)*l@bQb&$0Np=Mxu|etV{;kp|NCeNL19jbehbw*HYM_?wW#L?b?iYj?Ot z!uS20u^pS%vEtm-16w;n4yAimu57x6h2}p8UL+h6;28RD9(`YVy`oml>LRk7E3$xT0XoE{mWiHwiif zp8{mk-|Yn#;DSB5=nC62=Z3M++lpXcoD8gv9~EAHt`hs);&h3^lb{8BKA5mCu%U?0hA%-7GyNH^ORCE(d(q%tD^xfI=$!Jq>&ClB+mg8M{bL_lW>?w7N;> zp^P;|mKh2&RJ;AXm+ynIiZ_Qpxf`7FCN#~u=IZ)(mocrR|Qu-n90p*qr;vB@j~9C!4cR|xc{3pVPdRZT;3CSy7+ z?QgI54@&R)4D#Vd~O{aBhsR{bSO~wcR^hWWIL6dNvox2QqgJU0NNYe_$3;-^0?!e?zR5R zW~k(^`+8g*@4kY&lVoJ`#ye6xLBzN5fvYvnO5)zyyT^h zdU{u5f9}}N`?w!ucfh?PpxlGvBgqYe>Nh8da|u2To1hw65&KcG0IT91PuAJ58w=8$-C^uMkn;|iu1715ezTu6e=r4tWv|XNY zcCXu$i{Cbd>546+adijy%RiCcHXx{hbA5!9)&_92sDBNmDAF5zy?o?w#XDa;nGC~4 z!o~mB?y&Gb6aN#{f2oML#>`D*hSJZrx1Kq<0K9VdPCVcI;QKLC-Qk0>4>J`qz7lvr z%B<#MQD&oa$cQvBj+4WqjHZppNyt+f381sRhCnEEoGV=NNY1H0?S=sX1&hbGPl`>Mu3Ln)9|O(B;2+ z`C&tfXr*oMo{^^^e5ht1b$4Ls~%t&bK3|cTHkDIJ-trH#`i)=jZ&#BR;e8 zR#21+uGtRVHy^ucU(kM1a@5jlQ$=fRC8X8G_iJQ45we*Eagq+O|@R*dYp(UI!N7Ox6ss;6EM7&`_KD4cR=T@nm0vrpIfQ%Z)|Ek=|RJ@dY@&u<#&gEQ6+(ci;9i zn8UlTEKL}^5LCL=_HYSWOXk{EI~#SfoMyd)1WNug{Ap^Gd32YwccR+!JiA7E57~IW zuZVxH_sizJ)I(<#k8&#!5GK2@F0X+v^we&+*w#0bL3x7Dg9e`E_qR zDh(w$TVJd(c}@V+K$M#bGrfh~ZX#(;p?O$ktcJAVgdbPWWG@`?Xt|nBG7R6BvMst8 zN;|?>onEv|0Ml0PRTthOYKvBqM!QX|pWvJKM8~v~67+@?e(ZOyW-5=Bj{{TYTn^*@Z5o`qvNhPt+jF|5Ax`^EN#+wrY1>uSC&z?y7^Z!=Y- z6tiwPKJGe}#aWGwDC}w!&zUfI0(ycPrmz&)%_fR07hnafa3}(V;^FcYyaYp{@4Uu zzS8mZvKpweFT3N|gKYfOKO%<}XFv1=y2;~#+7$U*@-XbNMBq}g=kMEw`n_S2wCg+e zEDYdA&AcZs3>cTrpbUz7Y>vgbUM(gDE}eCH^5(vS-u$oEa;BjC$|isjt2i^po1#QK?i^-0O!wTVkz?F!Xg-;8W)D+*?u|mQlZB#~CBlPbam@RkQpV zlJV`{6r{L&zgOhm3~}{4eR;Aais@gEKbTAeGnW;kPqW=eddm6t=X$J{D7BYUB>PAZ z?5(k%kx0tVxxBkXr4pUI+g?dM4qqXq@AxXZh2(#(>W)cO)f}Hr{@ueAX;T=RU)5e!5#YL^BTxS&GDisTs%jw8OWh;bmNU1 zQwK8L-XyFIt<}A_`i9NzX~!3K7VFJeU1Qd_G4fa7{Mxm`fNqz)OaGzCkh7cL%UW-Q zo~bjex-P~w;*QE=r{R2RlRz7x#-b#cAV<9hbd==CFO=4ke4n_wTaXt`bx-i=?X*YO z@y$f(FfwB3zq$-g!KbpO49l#XbMfgmBCqcAp1hh6w_}S92Xq;PPM9!We~lx@ zz{fN8S~fQmKIPoV?OV}5x|(h95Rzdv$oj@jL+^4pJo} z*nJs@ScK0)U8aqE1XfyeAC%0^zUTqJu*mD&(ZIU_z7AiYn{)Q54W}i)XtATLAecdQ ziF9}`15~rrp4ogsNDtgAdk`3Y;&8M-lfQVj`^^RMEp2jU(M7 zGN=)Bt#iL@y=yP`d;249?=O(-e7IMMDj;Ak5H$(rI4m#vW>1mWR={c2cC~EmRJ`(8IL11Np z1LfbO^LhfVtuQc8ovXxec!$LvufJ|-#E1M?hZl{SF5>2B1J4nB0N<6ujY}Csn9Ei{qfOv1SFr+^VB00#;PdV*G^nF)%zI-iesUcY}zY^2j^DFs!sqYEv;9#RfL0S9s4+zTdQ9iS?7*Z!L6DJ7zZwm`- z^b`q(Tz};>W4m;oaxN$8*|qJ(A_j_@7mXLlgcix#1i@H}(<@~&zeOI`8$C$}6#PIM zJyZG^mk^iS@4t@nUE^2;m=atheA=qE5PU^b%Lyz_@3!W@p0gK39mloX{^eT#umNI! z_WFv+5jv+WIMTbs?}YnE*|}@2R!pfE`geZstLyoj3l)@I_fa6(@PR=*VgV{ zbLYpDOgK254@!8nAMaX37+o%nko&(;XZ&yT0R9)$0r4eJ6rn(0?j-FuvSgr4#|xpN zm>TU&yB5v&YsZU)AnA{u|KOXqcdxsw9^$6{5uxO9-ND0^{i9i?VqkbOp_p+~ zJe`oT^-bGN`C@W$OH<3)>|-85u~pUgEmRiWbUFORJBNM4s|?cQ#ouPjgq>kH4^=J< z`ebw8$L2mNUapg3*0w&IXjpqx7=fxN%}{sCn#_s#VfOANfqvfyzO}#U4}>tt(c&V* zWkJXa7lUiKP+E>E61}6;I(et`2W>;GMya92Y4d4;DeQMqET`E-J4>!G!A~5U<=rlERn;YPaQDzCC$$ghyBP5%FfiF$rBGq3@Tn zqHphxj1>Nv^C45Xqv!UZlIU&5#Y*n0AS?WU6@)*ZGsV; zT|^m?mNdwDap}XpUo~9{hMOY&rUj^}c0Mvrn59j>`+%&$2TD~W&0_+pulveh%+fG* z8`6xlR%&%cwb}G~H#}9oqIX2<1m7rCYlwEb`+OYDAm@X_{aD`LPwj7GxK&L-w*(y^ z{_jk|&ciDLZ#MggBMDx0lZ{Ghp-Kf2!PoM5*o%zWLFxVTA5TT(Z`)ANU4&g&DY{!; z_eP@hjTLE$!mHhZRU-*m&4!Ye!*@-xJL-L{N&TAfw$keul=eK1+Buo=uomo@)Dyt`i}E7GMl$aw>hs_ zH#-S=;H>7rj@i49C&%y=rO%*8KrGS{gvbR+qJHw+*VU6zY6s;kznlug|&hG?&IxT<;M5qk4yw=yM77#Qt+XzwLhQy{=;S2$jNtd@!^wV zT;#$7AbhCJ`}Rg8QUIj(iz&eSc%8%;{c?r%7APJj=Nj@9V?;0UJz5Q!;xpA%t$|0ZjO` z9ewCbo!SEn3B5@ZN@}2xf6MzfV9iK-v$lH#P##(Dq>uD&JA&Q?l(oD`tz%PEgsw~a zmx;S?4!v&(8diCBJX|&i=?~JWPGE!BnI@2^(e2*6B#sggOv~?xO`^6pwd9WlOMR=M z8%T0DEd~)A@ZubhfWQ?cfXQLG()+vjeG5;^wJvWnS8bEuvzb2N^h$r^!%|@2()6gv zszGG$#FWl2dz)Z%=BXng-siXGo-KJV)PMrULgl|19Ou2fIuH}gPXF?EO)HmW$?#_109c}DEhI=Zx2)Y)2=D`fsxV5?c)BUR-6ZoqW z6mELm^6U%OzZL<~g?gc}@V!wd-7q&c`-#D%Au{cvu($0oqu0N6oBB__-FIpOtiTI; zA%fiNZ9rB$Y(M_Mn!61975)(Li%RG;B&9CMG4@$)sSNq_esH*3VKI>AFOa~UMpc*= zrx9KwI>FvjSZwY=C)WWwYm~egBWqcE-$L2etjAMlZVl_3cP$ACMe>Pnm!5@S9Q!q9 z`YF0J@fR!Gh+efLKX;FLY0eA@{g}1oNju@J82>48T<;~E2j{gBORAs8zbF#g(s*-q zjZe4PQPd_hI4EO8YyG?9gCEPXg(}~UgS0kOAB=t>bH=hSN}0g$+KBgh-9G7gYC)+8 z7wW~cK9@b(dE9bviDF@`xamGr9rXdWJA@RU5ABQ?=JUR1q#3gNOZ-F4VQ7wan_&ss zaxY0M&FY4k@{{RNF+08ltOvUQFN}?#f5}WRISSlWbDy^9tbY*E8yslL{p(WS&~fgV z7G4P1TTi?PE6Gla;==MWz~c_-ds7Y8#!iFL_iyib+n#eHumX?G5DUsUiM$MQsr%sK zglifzp;YCxK%+3Kh5(FKKrMLd|NXma??`Qa?vKNDf$J8CVE3Fw(u_A5nU3F2#6qXB z8iE)&;O-)>%r=yuEV`>eVsV4H7PBs#1=o6u_i~GaZ^Oc;% z7o%G_6vJe{9J91t)y@^p-# zjKsqBVvjM*dk9huw)$j-V`@pPn#IzHN>!zQo5wCC59w>T5Q~WEYI{?81celf+uN?f z(CvXsZn^1G7?vs5Qv`P&7}dP7gwFlFn0@7Jc<+CE_RfFDxBvIkdF(BYa{rn9ceWo~ zop z+z*a@zvC7-X1FHUb8?vHrJSP0>K^UiGm9I560(zxypm@}Pw03F+~l8YbME^z=UNt? z6ju=fbMRyBq_muJA`+a66-y^g@ZL;lbdhzqtae^|kxuEcvDCo*@dfGgb1ngH?li-B z-Ct2^=DroHp-rtyiGkDkHKm7ViKcPE)|yX_zFX#gCEu+?D1*&VDOrFq-5Vr%LrVjG zxdc?~n1}j)QL@%ti=7Srrt;B*H>!`s7sZ1t68ZM}D$4!P@ymV&531@d%3pT9e3=BT z5xhH}vfb4YC{8KO8_&~h|3W~UZ~lS6i~{qdZmb*^n>R96`BBc$p@kXxG+7^s2tA;h zEEb@`p4gpvfb6)4d`FncbN~r(M?ib)5|hK2xZXlY!Np0>x-pNjK#KxHr!K2mO1OigA60(=^{Jiu*M)9u6K#@DHn~ZCDC~khjxD`IgYMq8ip|U~=aepg>8456&6wYMpPh5|(&NKt9|WFii+w`X)}VzjTxOXC?CdHmg1*xo{-xDy zk*y@rgnx|*%*@qoPu-uVq)lqZosUD-sB-VBItBH+(JSV2I9=TCjva)X{tP+HOL@4^RB9I?$b@HwBRY;3#rVN_FoDQD zK4V11rtQn*i6^tT5|jyfFcU``+csv0$a`zO z%jXc+y?wFDEg8x_&yN(y%n83L3P$RK#_asP5I?>d#v1(~NVcFqV5mi<*?z zbr){}j+9~d*(;;@y`0`kqKtES?r6#TL#M4nt_<>}QKg2Xssf~DGmMYb^~&13QQU)1 zIRW<99|-#u+_!c=XB7A59#R0*hiEXAiCe%O5^X58O*zHTEI`#tLLAcY;YYkISEIFJ zQ2zEB)jRR$8o1SFI!&nEnSES+XGbL~_|$2dEYG`^{U@XlfP~7=12>Yn1foGZ2&uuJ zTC81W{fDFBx}Y}{a(BBu160Z7E(Gp<8*=LC1ygwXlLLa#M z8#7h5?5eWP#mmVkCpbXje%2PhKG`fA4k|tOg2DzB zWj=&^)or2;VcEH=L4z{Mpo0#_>UrL-%g}};Pj8;kax(XQ zgHgUgWV8Fz3b2a#2HjI_c&;&*`8`sJ;*lWcs~G&6{_F|CT9?ENPXU+t)DOuZ#gdiB(k1n#d=H5=r~k#)^Qbc(y!Yv4K^j%=P@ zSTaDmJG+~q%TMt9&TgL;dMkIbVS0Tp?@4=09+BJ=eRX;IhNcHh%Eh>T^FzUPMHEA2 zwy`U>tk%`l$PDGgJ8LMzyyU3^UJ~uctxO$$C+vlaFN5+7-wg@uDRy2tJMSkVen9~b z4^VjyOd|!n?t_eZ?{+^}xKk>*pU~$UV z*6{oUSh5HRA8~HZaMjm#mf3$iOL0)}p@VY8z<}HUOC>H+@N@(4?BKY+8Y8H@e*Vm1 zx0oEfrAivF5i|(dK-iB1F`pQmxRHGYK8w2K z?81irY@dvJwI0%%68Lnd^yIh>@o|G)BuX8{YQnoZA}$jeVzi+R3)ZS_;Q8V!hLD#* zS@klP!v(gcr?LDmQjOurrUYRNr{~^gp5Jv_(^!Kt8pv?ALji~X?T#+u&ab`seS^pk z+52!im5Q7ljl4lt*oGSnq^Q0_Z=hg+JPt^KupUh}!V@_M3RMF9h*F-9Lyx-Zmgj~|E@^a^{PveO?cOur;?Wt=*}C%yy1%R+*5nH^$3 zhY!X%To(cZlr7g86(95bi4&4XOL;yaX%DWizCHOQ(+|RODzf@SYd=Yih!C{0efso= z;N5+dpFe!cJLB&Sp{_h|A16b9i{2^PCc_`sjv+)rAp_2v00m@R9v~7g_db2v`@Y0I zyIR%C^CA@uKb5vUy$p*}u)?0aE)Y3!y5yTw3S{Nm^E5j?T`KgqM985(kn^@E?Acry z9Fg0lkYY4YLT`%x*b#bkEMO3pR8=H}8>p-J1DO_eg2`61yec@Ozw#~b$rHJQDMira zuWyHr7mv|8xg2@2jlXd(z^}1wY^UIUu9254ns?OFr|&IT-FWAgRo{2{+N~2Rztjo4 z;pD=6bdnZ~*hKAa-8PjuPoKE|j@jGZlw=fv2{e=Yt-UjCy8EAFfEJ-C995PY@RymQ z0OVD%u8fyXH0*S6Uq}#3>8E}1`dohG#9hV$0sU%I;hns|GJaW-uUp1J+&LSsqw zPany&Y`9S3lJCn9PD*Q^_lm&3}^mAjE5 zSQQ{8#Fp<|-FS^WY;V2Uvf2JKA8N*r9n0!GzSq!hw+3(&#DsR~Jj!T9Z;+!psDVolCPYz&^9%+dM?S4c?KQnY4u_ZdlGW>43iC1YsbKhlY|_ zOi)6fNlWxtokjiBWwIDgNj+_dMA(~=m_We=?A3|t!k>%qQ$D#bu3j~ z7$Ch-cm{qrGFr8Lqw}R$RofgEEOcH{amM1u!8K zHLxbf+sG)Ve#!Y@P!!kjjivUydg;{Zg{%J9nNcgQfh#jDw>m4h$8qG`aJjq$tUklB zo9MTP)bDBdi9pZ@4A&l{U}9GSon4(iINk2(dmTPooxALhNNaG#Q@2kn zIf{ef-2lx|+YMp8l-iY07jGiVUiCG*j4yE*QS{Z89Ec3c0?DGWNtoaslS9bZZqu>v zjSAjWn`7lWS{k}JB7JU5?ncYom}f#Tq5|_CyG#pBEC+2(IXo`DdACv98pM5#JZSaF zAE9&l7Q1sKpFV#|_nYoCB+Njysg7Wxm zXMZ_#@?=is?EBg z0&X{&lfNY2J<4-(DGqStB5TO4A?uZCZHx?3-vU2_x3Ua-u61l_4Bb$`9TIr1Py9pe z+bg?rJC_xF_4+iwnCJsGnKRSOdLW*P76JCfW^3iJM;i(~C$vWL-*0Q8RqM`41`EA9 zIG@n@QLl3(motQufTJ^sDpsGOj;l?@mjV`j)(3N^oUS5Xo#LH8c+GX_YK~wg_G^bL z`DtyZF^&@2Cu~VZcG6WWJNhBxE7pnKL}lI>ACB(eZ@~5PU)g~ zuBE?~Pb`H*hSGP;*!V5uyK7dAzbB~b*ZR7Y72Up0NEoy78sF#=-E)$!CoAxsQCte( z&6K52(=0Xmk*Ty7z$=Rc8JN_(M)JMf3txXwJWYaKZbgK=S& zJ53I@W-jWcfIQS{bHr<1iJOM~bJeP|IrgWsvQJr_-VKS!?A#!7UjiWtUqPt2t5at& z%Shr<_mRdo=D~-xcF%r%7<_1;D|f}+m`qB6H!stmNk*?+vw8XEZ*}i6-)yJoO`W5#r^Q80h{Y;-*>0cum6&QoQ^6?wpBHYgx_anOXML zv|TO2(RUxDP@;B4P2f+m3ru*G*Vh=Lpq+dTHi)9#_WE^z?gd>P$syHD#fy>8P6%i! z4@ZB7$iIl@T5;K+4O6R8OzFueW8iL|uu9*8?BpfOiE8Kb_p9elJ^vsgdcUgXWcID# zY4K$aoc#=kM&6U(Jqq{5B`I{Tkzc(^J%pnG*YD4{&bWy@zjPA!Gf|-&lGVB7D7*-p z*;(|C0WH?tRma=So?o?I+>i#cux2I&D4DCafz6lt&Ybm_v$iYEFyJ0Jx82R$1n0#N z(&t^jOh0M0RhwVZk(N$%#mGDVc;Nb7-euR!Rar(Kc%GB1#l$72PwOE*(|+!qV&rgs zu@kUrUq>}ErZlcIoJaFehSk>26|d_F4*QORbmurX+y7lPsCe8WTJ)QV@aT7z%_6Gj z^|}Jam`^XEUh!xk#m_?l6Hxtd#8kXi_gf?MZ4v-!x3946s`y2aEnL(58~c4sL8f%7Y(A) zgiutZMgc{nNfV_-`Pt&fBs_{9Hc0fzIZ@nPDJf!)B?Spr% z37XLQU8Mj704Ghg%db|hADuNz^7Fbn+@lz>F|V;TQ>qY;9A`XQ%Bpp@C!ni#Hh~-) z=)Oy~+AJY0qX6VYqO4GV2(x&yiq*V~4ebGmJw7%U@bE2dhegUf&=*RCF3WQzc=Ea% zy@}8RDoES5SwnMLWOWl2Y$n$81CQV{L039C^ee>GIBV7}8 zh1MKqznq3Nxi+eQWrxknww5urP1eMC1#(N;IM_U@skt_E{-g5A>r#(V5EIZ^?R8)# zqL0?7;d>~EC%xT3FCAbhE{C@Q%Z|6<4m~xKxTAAkMlm4tP1FCpE-W&rrg>^MGgr>w zFy%QLqwIr;2k48=;=l~)E1VJ2RzyC_*eWglUbeb>DQzvrb>`@ChIq4k*sQ>yQVxeB z3Kl+WNM_{4huPk#tn`*LNP?fZ#tXnmg+?bZt-7QQ@m5Lk3@P89r3hGi78Rt;|LG0% zP1~65#~o{!5{f5e_w6Qe2>0%O*x><~>4xsf$(*O&AUx`51f4`9!WB1pO~)HFPh}Oo zvoLMZwP617g8J!Iehig}aYmohfH~47hmq{X>kp>Z>*~U>RrY~9;j5Z#HM=5}`yi0c zMtfM~Sf|sNtL5)7KV~+(;E=%Pb3g3vH*w*^lF6KwoQS&qXfJ}0^BXDS^+}a5Y@O6R zk*x`Gnib9IOc(>%EW`L?(3yyle7%TXzSEgGWjiWMQ~w*XG}=%`yN~~AU`N(%;?IfM zq6`0Cmop?vo|0An09_V|(-$izbd3rzF7Se!HQmzQT$ce`@rY=)o#=~HjsC{^YbpUR z%FU5dq|@mO2KaYA{E82NsN=gvetZXY*}1_}=u3~W&=B;Q25I3cj<>n3FS13Zy&;%O zRGq&ejrFeu9j4C8mdzki#{(%;xCYqCDZxkS`kqubH*>4G8t@1M&|6b;>*#kSPUOyc zuyPM}0AihpH!qWBNYmo#ZQd$2DmiwzFv7L#t(Pbcfs~epxhm5)R&Odsnr_q8ng! zH05kNt|5(7A~_V6t=YQ;?Fif=(phPW|r@Obh}-{ zIM}b9PO^g=VJvrCgBvU?uTo;9a!<$ zt3Mddy64X7j5KDdT^5PmCBB{M!?q2C~NJyh?@7ydn4%-lFtoa{n0CO8A=1mPskvXvj-u%y_6UoI!N-DaP4ePwxmF)>{20n-428^u9W2bicAkuGp% z?+SyfY_r>=Xqo;!%vTX!SOy=CGSQL$R5xH#OL7WfT_;3)^?S?EEf-7 zC{3(ToO>?rcRdnTFqM>oQhM%*(Zx+g~`uOv{YVjJOI?a@p~~ z)$j-hj|J$&)O=N6SwNv*z@xF*7IJPwfUk>pEbq#Du0AHyUNCLMiedq9kup1=3$O@V zkr8ioOG%4QJLO8LxEQey)Aua?T)!S*_6tsW*w5hzBq8Qd^{)kRv0RhvEUG zlbJvjsJcHnppAcXX*(EcxR8ZzF(VtPC274}6EnU|wTKG7S8qIU8Z%Cqnj&r$kqC2- z>!2ZStbX;KV)G zLO4_sz*E`Q5Jx6LkN_r-X*?x5pR+Oi)lZ=XCp%ol_JL+t)UBR3nVVrWeQ|=L4-*__JuY3K7V;+ExGgN^+c zG~R($POR#nOB-k8!jucs;#)|HODx*(&_=6H*=n&q@*miH><7MXBP}~ zTVns3WZe~odz5e;DlS?LVOra6cAuPTg7G&f5F3pRDjEm(@h7E<%m%j;A8q~ah*|h_ zDWxT$tn(sy8Zc^w0av#}ao2%p?LiF~z-T+Nxn0QV%=Hr9HSS^+M>}hT%ZG-(K|1Zx^KZ3E^)oANx$TOs^Pngxdh~imw2NWoOEv$ z3ywTd9Tb(Btc=6n*TptQOJAU>9i4pY`Yl0MPk`0|=($`EKa?xNcnHS@6q%B$-zp{| zoauKp`I*g2;}SJ22JCKiT>wYrV`%4`kR#qEJ-FkH)kIoQ zRCFk858ZGf4Hq8zqIU^Iu-t{iyp9cXQ&TXZj0Wb~)GF zeAkiej)u&Rht{niK(hcqiK<^_*IVnDqOsK8C)ZM8Pffj_wNeYxb=388p~FU}=(7oa zdFItaRfsT+s{_Mk!A{uX<+nDn{8uNnV-|#s^?2Fp)e`qH>G&6jDLZ0Lq=p(&k8}`; zyhIdoxz{jGiY~e&io(z?@JS<0@(qkjKH-nXl~gOo@`0+fKu%oN?dfb!z{QU@+* z;DYxx;r7|Hx|$REkACbMBfRMo885Ox#m3409ckCRa8(=VU#XY1S-&i5r9M#M`LRgN zfE;U9G**w4mhB6Ob5G6aBy}w0i3a`D9T6P;x=RQRt!crWRuD}7yw(PyWQyLak0Fm9 z4gPoX?ag}Pu`yyOe?&SgE~9=Sre}%Af!Bmj?P!3>2)yN+2B(ipFxyhJ+w{u; z@zB2Kb>2ID^CIjxizT^LmxG`9llZwD%j~o=`fvV@l02s*r|RTY9#?Mh)aN39ovO|b z#s@h5>ki~Mtw%}x>z@qFOi3z_h8_)^fG}xBK^Sw}!ABs7Vc=OX!yg6k|1exv`1o4q z^y@e$$K2D39`%xSr|nnux?y*PxV0rjB8*4467Lt}p8oo^d=zqZL*-Err0K$0?1Pif zZnp9=Gb$U$8I9$1T)$e7%RF?Gc=E5e42yGi;-mt(yz4#>EZzuu!ubQwLOwtiIk01K zH=ZnM+OK+a6@f>?$=u9$_6b+W&_5T%W&e1d~fJlGx zi(&0>IIr{hXgiJ1%Kk%Em%vegN6_ufj6GIMNDCPr?girm0v?izqNMUhykc!xq{}x8 zy7fP$+^xI8eA8actOwMlgB$H}Y@WRrU{)YuoEWbf4BspWjMRqs$2F2%=Hnx`)Fgc| zeyG_U#L2GjtG}p~&sRU4?F^Z?Ex6n$7i52}^&-g$WG40_S-{MZ?N(KF+t#K!F@9}a zV}M2;GSN*Wpg!T`_iCd5t336u&NG-AnV0;GryF|z1d5(R2!;Ry)w^^a<%?S@=y+0U_L&GF74;h zaGA`j8(}>pY`%PBckB1_u#h}tzVHP`n;B_{|15@-Gr!zO?1%cTm}Pi zHT=fe+@kh_V~X86I|!st)`+`e$6eK}2Y0Bimd)K=QZ zdP}y=EL*?(ar;orV?(kNX-4Hm^~~NN|1~R5mTjF;**2|3%lrG(vE+=7UXXx?1!@`G z7WO8>Lh82)GA#ey%4f7ay>(-v-mT-*OY zWzd1a;QtRcxc_kM#{UDy4&x1tQrNz1v86N_pof#u7j^muMQuV|=zpn-Pt!j1Qr65lfZL42A_fjeOB5`C zWN=8)T4y+0kMUE`8{S)I&JKu<+&5o{x|(+?eI`8!!jNPbsD8FsQD0HlQ;$(XsG0BF zVG8vPFt%$x4l>(curLoTM^*(sWH@|bE-1zMV+;4xLXP03@_IllK?35N&FeNxLQh4dy;AGH@9?Gr^ z`h@9&jN^yk=|=qf=@#R^quVx(i8akaP+RiJa2x0LqG8$T<25(ML)(c$cmIY8aT+U_ zFb4eypTB-wfL^^lj3zzLp_#x)Y4jod-bE)oAa6v!hKmQOuCKrWAfA!}N|qSGSzvP# zn*12u@|1cPYy;nd8mqZ(IPmpI16<91NlkP~%O%E{t2c1Ua4 z$u9WCGp?xO5koHYw>xkT?u0nvR3y;&Kz_kF^EdboXbc^+gZXEESy?%(6sW^~t1$S` z-f#BRl$E1ed}>|)L2O~~+yGJ3;NMFR^2Cmd({NWq;5ulrBm+UCiF{i)5 zptOl**SO>eMuXw_SHbt-FpUbgsE8tIpdOUg+U4ASeOow88>vYZK@H+$fa5~HT`*E% zp?bJMpy1C~=21KNSQu737{^5u8pX**_XOJZ{hTPO zijo)z{8r5P-0&k0Xe>f-#0UX$7adsrldxJkWQ8{gMoIK3RCej=%2AEejX3P;TbdeQ}$w+i$`oIYMm zve5V=p>9q&m!9jl-kdGj*f@+-DzkLyp~PPF*1zjEV<>d(2X&6GbfhlD=~_cRljBEmUyXvo0sDfiKV6 zcG7urv><=-rHk}W1Nl5HftZq;;z7E1oI?>jD3DrRO%Bx%`xeNqe|pbaJb`(AcjYVt zs9N$MLiwCBidv=7?YJ|emm1@QZtS=OWICOECl+G` z?uo!%9En0j349S3OIhF^sWlNFzL$DOkzUQme+6|X6tMv0? zuxKs>t2087rvDW+i#q{k9J+H!ue{yIu>axxJ~dU>eRBA(n1?$GT_C4XOF}Y^3~hs- z03IC??vZaa+85f)BwUIjdc{s>pB`xAK|ttzXg<0$aL@+F`eYyN`6l}rS=Ut!^v)wH zt#m>bPwxGOUxOT9|J)!u&lE$`W@-ir3(*UvH3ij;e*CH>J-0;9Kl(L%Gv=?KKHLu& zI$ycqt3YdH0Rm@D=%$($Xc`(K?U?-OBlLg)G>gZk^!uf?<9JEl5tO2+eJj^1!>Y)s zbW^eZLi4Cj(m~sH1WLNz0D8tRuJv(kib1K*0gGq~qgYV>M~2%%qh}xfcXrXgHGN0~ z*?}T)oJGGuyNe^^W7!YMN*kOkWBrekrsVDfU+sS%@iwd@V7!p#0W8>)e)b7L|B9v> zw`UY}+uOl@EoBD%V$wd1vx8R>I%YT~P|8z4xJ%Bv(hlOEf$FDzP`CqQ(a)Qm_eVG8 z9YOkB;}Cn(W8fM*EW`yfCJJ@gS#Eb ztG+j4_GlDizY{f;KyC}z_SgwlSID5awib)vCG3wQk%*@Y(LyTAkf;=EXvyT38)KDVoJKKezF__?NXH(X?G zYcs$dV`Shywi5ZaW8q5CrjtckRZS0=(O^11J(xJGHvZ19bqafzafUl9H)paXSH=X`dwk8Tlu3=- zp9$p$t8d)OtfrC;${SViX?7DkMKMFCjr+9y970j2oP;^avQabx*RRvl21M-h)LSRQ zB7C-M8E; zUPL8u$X#N(ZiGkFZ_}Wklw}k$tly4|_gU6#EPVPyU;*LE(4loRkBPON(jL#R*{{#_ zpR~KMjHNk{cy!5`e)nda$4v>ONUSSwD$l{J#Yy+B?YNOK9u}`GR~dTG#LI*Asa%!O zGMYv-#UWd_koftMX%D{c-^^N{QzeGsrNLpbdNx> zuGtC!u^5_ei1Ck%6$FP^%`4pFfNr>iAUS(KXOuKuL#f-Do&Kjx{$iucRfx;s}7D|9-WP5h>0F8 zM5xw0l+sK1-PYk=<0OZiy*7n;1&CF@r~o!dfS>NCT3VK3TR+ zmV9}a>dET$ zufPk&C)_C6;e`+3w@o9z0ISnqZ&KRQ(#VR2&dtaa_BhS;Y)R$j90n}fAA~ArlUtvbPL`FWO$0QK9jos1mze$yVKN&p(%q#&eZdRmm-p(A z9wti>4_=KS`nf*{*1R#dMeIm{d{sBg$|dP~h*uF9#qxSkO`Ei!3Ao>=^kuIO{`qMB zg#Y)K5M&d1s>=D>2Mw2iz*}V~vnrf4b?upYV*p}e-R(HQ70A(c6YAv?Qt0(V$Do*; zzyxy`xPN(nwVpDV_tuWO*|M4Tw7);wpHlJ&d0}V~01I+9zdybwcDp%`)7Td0u3E2@ z`<0shr#HmvUuR)5USzhj5ukoq`rLBXQ$)g%ZahdmmYr-}C~6}xA=Q9r-qt|q{OIIF zv&&hl@~sam2j4xi(l5B*3sMs4TjZo%_A;=PMAi`T140+rrn3f)=2^DtAf4uti~@t;d1T8Am1Ce)x0r} z$!YB{27s~Il?-j4Y*6uyc(2p3rS*<{;{;gDRb@+(p+xsi0*rN8;LC!TY-0uYWqik=S!h#-XHIElK=X8;m3=n4vyEh{&V1jMS)^R9$IIg?|-Lay`I}P zJX6_M5gMk_#gc%;l$`&bT+c-P#IV35wuP!-!s0%>Ad@Id*gr@C? z`lf-D)Fclr!RyX3up&U!}vfe{e)l#1+zk{@&`B+5Sc-yr#tOJ8^%%C;CT{ zg{2N$(QSi;L9>f*;T9%*&%dY|yosLlfmyza^g_~dG|2fG>Q+s(Qwg;iRe$?WYU=l0 z`Xu4|QccVyk{E$Yv0!w?E7o|EZ7C8Krjx9C?)w{_3q*=9FbfWG5jDi6zR zjhUXgTcM-B%J59y=*camLt}E$oNN<26G%r7__D??oa27EJnZ}@7u37(`E5$L&MuDZ zfRtDfzlq7xxaNZ3QSHXXL*NHMz^`242sP`D)d8Ao>`!b`$cfKfDp0(IQ%9JzUgm)fmGXZez z5P&ws#+%|AI47qptu8dzRPPEfosegSEHE*C!U!D)D_UiiIZ*OQ5iwXc=^HoQHkQ)# zYV5Or&N@A*b>P~6B>&Y9G#a{3?}F8&1%ajxE>~&lL_;ehFm@r}i*2)0;qAqSvFi24 z%aA!**M*#dH$@wt%A74D!jTsKhu86b>U`b0SMU;xc#C*#fA}PQq_di5YN62B)Pos z>ppX_4j0FA^g4v+o5l#kQMc^oAXU7Tm;-1n0m=Dge?u}ClPO_4C)1~}y;(skvyC+! zg!6PE`b8Rbm~orQ|#UVY>KTZEK< zu>QsW;UV7H;6|9ztV`p4>0H(fZ*6aBGmt?NC>9C2mZs< zrhgQ_$m{<%#QHf1Zx|xJT4q$P)i{Po4Rk>ct~oNU5GKC8gIUKeUal1OBN^BO1Kc1K_>)b&TVpBRRS&wA_A##0d4wTOCl+8(&Ni5YW zb{ewD|5`2eljTQZIEVj9PM5{)N#}k|vUv0&$kvO#I|?%yF%ccz>n_c{x_w5=*}8+a znf~CU8?(2`s*WC0%$QDz(+!MA9^lz~FYQfVanWQ;bPxBqT-rr+1%G9Zy;3xY3*9fS z=>cm#0~;#BNOS{=_bsxvo5iIar*G`RIQ($%C~$u5)%Z}!@YeHq-Qi2${q3;wv6$DQ zU#*W6)OU>`f z?A7lNTV#x_sc`4hx)vlvK({h(c~IrmG&1fT%ddOW>sx}i_7rrt4IB9LT-e+<6g0Lt+;b9PE&R_Ub+>$^Nu^YT3_cb zwg9S!K*;K88Bg1JL}gV+P2sz;ZKPJQvu`!R+0+qP`C9B%{k3z?l0=v;h+c|N+9SN3 z2L}27z)9cT)!?ss`Hv&0S0=YOzays_wl$oTWoJ63g>j=xZ+JJsiAAf*<%kGHX&$r6 zVXq$|Rn=jN2P}fuzx<`S>tzBl#n62(AkizerCtTewuzKXZb!im`W`7G#O zrQdZj9Z#5!RAvvG^k2MF|N7(ATOHS=xuJ3E#9{Gw+el^caOLiIo6_ze`u75wM(q}N zto-P9cxy9?2)gKe(Ez>V29zy9bS~g;NGyyr0)v94{sLv_Ik5KX2vRk8r=bet_fJj3 z2?%rVzTKG}BmL3P^;l+UQ$6PR6=2-(kf~FbtmZyfPvFp+C(O9VKd5R*I-qCF&u59Q z0I2(_%Rh1eXJ`Z%Ex|s9CxKYag6@AhDd@9$BcYsgPTO`G8ET3m=xSXtV}a#N*rl+x z;LG=p=emqOVfx*tcJF47x1*tIkDD^}*=Is(Ncl1K$>P<-SCW6w|LGfS!DM$ZM_M)( z4&8^HSg+<^Jh8|ky=6B%)mvQ~|Do{SM>n07Y%o?dDqX7hq>*Bgvkn{2D$|u(AetE!{PxFI$t+Z>qhhMk?k1A#i%H+sL-@->3kCeEnS3 z^Imi;`;Dx0hp95H_Pse1e@ z58^*!c?G4L0+e@v&HS-QkLKWB;Iqlj`{Am7A~x!j{D)Uf9`5=;%(7{ZfU3{52WTeX zbxWP;*8>kAykqItn5&@E**k{6e(5*yon_eXjBB`D=tpgSvmNaH9%_d%pSHNi+~4gX zprd!d*L8qtac86tSdKTteJ}HNL0rJRYLz7=z{#xbFOr_*z@ws2&SgdZZkX_{3qPIZ8(3x@3v z^~Qw2PM{rfCW3qJH;#I3a}lQ41B{0AcN|9ZJ^8J?Jq8OuK_l_)w?bP`P=gUr70c*iL20kKm^4 z#qj{@V^mkp2|6#T6UJStCYSrxrSLey=?sKVTx~Ii+hq_bO_lenUYUc( zqRt}ifVTk)fr!o|Bc-hZdFG+hsW%7hs)LXfcW~yeA+hbCRU=@~X3I%JZ>;}wdtm1@ zI2}nqK>MuhAa+W1=F#tSA0xYGmm=<$Ds0=h$Ks##PY`sEW6Radik#Toi8Js!h8{{} z$zv>mIjs4$%tk_Q3S-g5{pH3Y(2dlNe1|a4`wj)6`2exJF*GLcC#n1N-}6FU#s}7I6^9 z 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 R*B1Tb6p6nAvp3&|{y#5zdWHZ1 literal 0 HcmV?d00001 diff --git a/docs/pics/IFM.jpg b/docs/pics/IFM.jpg new file mode 100644 index 0000000000000000000000000000000000000000..476cb8bb662887eeea993f0067a35f499dd3423d GIT binary patch literal 100224 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 BxUc{K literal 0 HcmV?d00001 diff --git a/docs/source/Features.md b/docs/source/Features.md index 4ec13c7c..2dcdd21d 100644 --- a/docs/source/Features.md +++ b/docs/source/Features.md @@ -319,6 +319,35 @@ A large-scale CTR prediction model with efficient usage of field information to [Chen W, Zhan L, Ci Y, Lin C. FLEN: Leveraging Field for Scalable CTR Prediction[J]. arXiv preprint arXiv:1911.04690, 2019.](https://arxiv.org/pdf/1911.04690.pdf) +### IFM(Input-aware Factorization Machine) + +IFM improves FMs by explicitly considering the impact of each individual input upon the representation of features, which learns a unique input-aware factor for the same feature in different instances via a neural network. + +[**IFM Model API**](./deepctr.models.ifm.html) + +![IFM](../pics/IFM.jpg) + +[Yu Y, Wang Z, Yuan B. An Input-aware Factorization Machine for Sparse Prediction[C]//IJCAI. 2019: 1466-1472.](https://www.ijcai.org/Proceedings/2019/0203.pdf) + +### DIFM(Dual Input-aware Factorization Machine) + +Dual Input-aware Factorization Machines (DIFMs) can adaptively reweight the original feature representations at the bit-wise and vector-wise levels simultaneously. +[**DIFM Model API**](./deepctr.models.difm.html) + +![DIFM](../pics/DIFM.jpg) + +[Lu W, Yu Y, Chang Y, et al. A Dual Input-aware Factorization Machine for CTR Prediction[C]//IJCAI. 2020: 3139-3145.](https://www.ijcai.org/Proceedings/2020/0434.pdf) + +### DeepFEFM(Deep Field-Embedded Factorization Machine) + +FEFM learns symmetric matrix embeddings for each field pair along with the usual single vector embeddings for each feature. FEFM has significantly lower model complexity than FFM and roughly the same complexity as FwFM. +[**DeepFEFM Model API**](./deepctr.models.deepfefm.html) + +![DeepFEFM](../pics/DeepFEFM.jpg) + +[Pande H. Field-Embedded Factorization Machines for Click-through rate prediction[J]. arXiv preprint arXiv:2009.09931, 2020.](https://arxiv.org/pdf/2009.09931) + + ## Layers The models of deepctr are modular, diff --git a/docs/source/History.md b/docs/source/History.md index 2559dccc..b0304655 100644 --- a/docs/source/History.md +++ b/docs/source/History.md @@ -1,4 +1,5 @@ # History +- 06/14/2021 : [v0.8.6](https://github.com/shenweichen/DeepCTR/releases/tag/v0.8.6) released.Add [IFM](./Features.html#ifm-input-aware-factorization-machine) [DIFM](./Features.html#difm-dual-input-aware-factorization-machine), [FEFM and DeepFEFM](./Features.html#deepfefm-deep-field-embedded-factorization-machine) model. - 03/13/2021 : [v0.8.5](https://github.com/shenweichen/DeepCTR/releases/tag/v0.8.5) released.Add [BST](./Features.html#bst-behavior-sequence-transformer) model. - 02/12/2021 : [v0.8.4](https://github.com/shenweichen/DeepCTR/releases/tag/v0.8.4) released.Fix bug in DCN-Mix. - 01/06/2021 : [v0.8.3](https://github.com/shenweichen/DeepCTR/releases/tag/v0.8.3) released.Add [DCN-Mix](./Features.html#dcn-mix-improved-deep-cross-network-with-mix-of-experts-and-matrix-kernel) model.Support `transform_fn` in `DenseFeat`. diff --git a/docs/source/Models.rst b/docs/source/Models.rst index f123dea6..164a7ba0 100644 --- a/docs/source/Models.rst +++ b/docs/source/Models.rst @@ -23,5 +23,8 @@ DeepCTR Models API FGCNN FiBiNET FLEN + IFM + DIFM + DeepFEFM \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index f36db6d8..536ff116 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.8.5' +release = '0.8.6' # -- General configuration --------------------------------------------------- diff --git a/docs/source/deepctr.estimator.models.deepfefm.rst b/docs/source/deepctr.estimator.models.deepfefm.rst new file mode 100644 index 00000000..8395999d --- /dev/null +++ b/docs/source/deepctr.estimator.models.deepfefm.rst @@ -0,0 +1,7 @@ +deepctr.estimator.models.deepfefm module +====================================== + +.. automodule:: deepctr.estimator.models.deepfefm + :members: + :no-undoc-members: + :no-show-inheritance: diff --git a/docs/source/deepctr.models.deepfefm.rst b/docs/source/deepctr.models.deepfefm.rst new file mode 100644 index 00000000..614d6fe0 --- /dev/null +++ b/docs/source/deepctr.models.deepfefm.rst @@ -0,0 +1,7 @@ +deepctr.models.deepfefm module +============================== + +.. automodule:: deepctr.models.deepfefm + :members: + :no-undoc-members: + :no-show-inheritance: diff --git a/docs/source/deepctr.models.difm.rst b/docs/source/deepctr.models.difm.rst new file mode 100644 index 00000000..fc24d0b2 --- /dev/null +++ b/docs/source/deepctr.models.difm.rst @@ -0,0 +1,7 @@ +deepctr.models.difm module +============================= + +.. automodule:: deepctr.models.difm + :members: + :no-undoc-members: + :no-show-inheritance: diff --git a/docs/source/deepctr.models.ifm.rst b/docs/source/deepctr.models.ifm.rst new file mode 100644 index 00000000..ad835759 --- /dev/null +++ b/docs/source/deepctr.models.ifm.rst @@ -0,0 +1,7 @@ +deepctr.models.ifm module +============================= + +.. automodule:: deepctr.models.ifm + :members: + :no-undoc-members: + :no-show-inheritance: diff --git a/docs/source/deepctr.models.rst b/docs/source/deepctr.models.rst index 0f1209b2..3ee25047 100644 --- a/docs/source/deepctr.models.rst +++ b/docs/source/deepctr.models.rst @@ -25,6 +25,9 @@ Submodules deepctr.models.wdl deepctr.models.xdeepfm deepctr.models.flen + deepctr.models.ifm + deepctr.models.difm + deepctr.models.deepfefm Module contents --------------- diff --git a/docs/source/index.rst b/docs/source/index.rst index f5acd97f..a8904b99 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -42,16 +42,16 @@ You can read the latest code and related projects News ----- +06/14/2021 : Add `IFM <./Features.html#ifm-input-aware-factorization-machine>`_ , `DIFM <./Features.html#difm-dual-input-aware-factorization-machine>`_ and `DeepFEFM <./Features.html#deepfefm-deep-field-embedded-factorization-machine>`_ . `Changelog `_ + 03/13/2021 : Add `BST <./Features.html#bst-behavior-sequence-transformer>`_ . `Changelog `_ 02/12/2021 : Fix bug in DCN-Mix. `Changelog `_ -01/06/2021 : Add `DCN-Mix <./Features.html#dcn-mix-improved-deep-cross-network-with-mix-of-experts-and-matrix-kernel>`_ (`中文介绍 `_) and support ``transform_fn`` in ``DenseFeat``. `Changelog `_ - DisscussionGroup ----------------------- -`Discussions `_ 公众号:**浅梦的学习笔记** wechat ID: **deepctrbot** +`Discussions `_ 公众号:**浅梦学习笔记** wechat ID: **deepctrbot** .. image:: ../pics/code.png diff --git a/examples/run_deepfefm.py b/examples/run_deepfefm.py deleted file mode 100644 index f1c9122f..00000000 --- a/examples/run_deepfefm.py +++ /dev/null @@ -1,54 +0,0 @@ -import pandas as pd -from sklearn.metrics import log_loss, roc_auc_score -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder, MinMaxScaler - -from deepctr.models import DeepFEFM -from deepctr.feature_column import SparseFeat, DenseFeat, get_feature_names - -if __name__ == "__main__": - data = pd.read_csv('./criteo_sample.txt') - - sparse_features = ['C' + str(i) for i in range(1, 27)] - dense_features = ['I' + str(i) for i in range(1, 14)] - - data[sparse_features] = data[sparse_features].fillna('-1', ) - data[dense_features] = data[dense_features].fillna(0, ) - target = ['label'] - - # 1.Label Encoding for sparse features,and do simple Transformation for dense features - for feat in sparse_features: - lbe = LabelEncoder() - data[feat] = lbe.fit_transform(data[feat]) - mms = MinMaxScaler(feature_range=(0, 1)) - data[dense_features] = mms.fit_transform(data[dense_features]) - - # 2.count #unique features for each sparse field,and record dense feature field name - - fixlen_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 = fixlen_feature_columns - linear_feature_columns = fixlen_feature_columns - - feature_names = get_feature_names(linear_feature_columns + dnn_feature_columns) - - # 3.generate input data for model - - train, test = train_test_split(data, test_size=0.2, random_state=2020) - train_model_input = {name: train[name] for name in feature_names} - test_model_input = {name: test[name] for name in feature_names} - - # 4.Define Model,train,predict and evaluate - model = DeepFEFM(linear_feature_columns, dnn_feature_columns, dnn_hidden_units=(128, 128), use_fefm=True, - use_fefm_embed_in_dnn=True, embedding_size=4, task='binary') - - model.compile("adam", "binary_crossentropy", - metrics=['binary_crossentropy'], ) - - history = model.fit(train_model_input, train[target].values, - batch_size=256, epochs=10, verbose=2, validation_split=0.2, ) - pred_ans = model.predict(test_model_input, batch_size=256) - print("test LogLoss", round(log_loss(test[target].values, pred_ans), 4)) - print("test AUC", round(roc_auc_score(test[target].values, pred_ans), 4)) diff --git a/examples/run_din.py b/examples/run_din.py index 44f162ee..725409c2 100644 --- a/examples/run_din.py +++ b/examples/run_din.py @@ -1,6 +1,6 @@ import numpy as np -from deepctr.models import DIN, BST +from deepctr.models import DIN from deepctr.feature_column import SparseFeat, VarLenSparseFeat, DenseFeat, get_feature_names diff --git a/setup.py b/setup.py index 746c1136..a5b5219d 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setuptools.setup( name="deepctr", - version="0.8.5", + version="0.8.6", author="Weichen Shen", author_email="weichenswc@163.com", description="Easy-to-use,Modular and Extendible package of deep learning based CTR(Click Through Rate) prediction models with tensorflow 1.x and 2.x .", diff --git a/tests/layers/interaction_test.py b/tests/layers/interaction_test.py index cf57a623..9030955b 100644 --- a/tests/layers/interaction_test.py +++ b/tests/layers/interaction_test.py @@ -2,12 +2,8 @@ try: from tensorflow.python.keras.utils import CustomObjectScope - from tensorflow.python.keras.regularizers import l2 - from tensorflow.python.keras.initializers import TruncatedNormal except: from tensorflow.keras.utils import CustomObjectScope - from tensorflow.keras.regularizers import l2 - from tensorflow.keras.initializers import TruncatedNormal from deepctr import layers from tests.utils import layer_test @@ -20,10 +16,10 @@ def test_FEFMLayer(): with CustomObjectScope({'FEFMLayer': layers.FEFMLayer}): - layer_test(layers.FEFMLayer, kwargs={'num_fields': FIELD_SIZE, 'embedding_size': EMBEDDING_SIZE, - 'regularizer': 0.000001}, + layer_test(layers.FEFMLayer, kwargs={'regularizer': 0.000001}, input_shape=(BATCH_SIZE, FIELD_SIZE, EMBEDDING_SIZE)) + @pytest.mark.parametrize( 'reg_strength', [0.000001] @@ -33,6 +29,7 @@ def test_FwFM(reg_strength): layer_test(layers.FwFMLayer, kwargs={'num_fields': FIELD_SIZE, 'regularizer': reg_strength}, input_shape=(BATCH_SIZE, FIELD_SIZE, EMBEDDING_SIZE)) + @pytest.mark.parametrize( 'layer_num', diff --git a/tests/layers/sequence_test.py b/tests/layers/sequence_test.py index 75d1d5d2..dd030d74 100644 --- a/tests/layers/sequence_test.py +++ b/tests/layers/sequence_test.py @@ -1,5 +1,6 @@ import pytest from packaging import version + try: from tensorflow.python.keras.utils import CustomObjectScope except: @@ -26,20 +27,22 @@ def test_AttentionSequencePoolingLayer(weight_normalization): with CustomObjectScope({'AttentionSequencePoolingLayer': sequence.AttentionSequencePoolingLayer}): layer_test(sequence.AttentionSequencePoolingLayer, kwargs={'weight_normalization': weight_normalization}, - input_shape=[(BATCH_SIZE, 1, EMBEDDING_SIZE), (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, 1)]) + input_shape=[(BATCH_SIZE, 1, EMBEDDING_SIZE), (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), + (BATCH_SIZE, 1)]) @pytest.mark.parametrize( 'mode,supports_masking,input_shape', - [('sum', False, [(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, 1)]), ('mean', True, (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)), ('max', True, (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)) + [('sum', False, [(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, 1)]), + ('mean', True, (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)), ('max', True, (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)) ] ) def test_SequencePoolingLayer(mode, supports_masking, input_shape): - if version.parse(tf.__version__) >= version.parse('1.14.0') and mode!='sum': #todo check further version - return + if version.parse(tf.__version__) >= version.parse('1.14.0') and mode != 'sum': # todo check further version + return with CustomObjectScope({'SequencePoolingLayer': sequence.SequencePoolingLayer}): layer_test(sequence.SequencePoolingLayer, kwargs={'mode': mode, 'supports_masking': supports_masking}, input_shape=input_shape, supports_masking=supports_masking) @@ -65,24 +68,41 @@ def test_SequencePoolingLayer(mode, supports_masking, input_shape): @pytest.mark.parametrize( 'merge_mode', - ['concat', 'ave', 'fw', - ] + ['concat', 'ave', 'fw', 'bw', 'sum', 'mul'] ) def test_BiLSTM(merge_mode): with CustomObjectScope({'BiLSTM': sequence.BiLSTM}): - layer_test(sequence.BiLSTM, kwargs={'merge_mode': merge_mode, 'units': EMBEDDING_SIZE,'dropout_rate':0.0}, #todo 0.5 + layer_test(sequence.BiLSTM, kwargs={'merge_mode': merge_mode, 'units': EMBEDDING_SIZE, 'dropout_rate': 0.0}, + # todo 0.5 input_shape=(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)) def test_Transformer(): if tf.__version__ >= '2.0.0': - tf.compat.v1.disable_eager_execution() #todo + tf.compat.v1.disable_eager_execution() # todo with CustomObjectScope({'Transformer': sequence.Transformer}): - layer_test(sequence.Transformer, kwargs={'att_embedding_size': 1, 'head_num': 8, 'use_layer_norm': True, 'supports_masking': False,'dropout_rate':0.5}, - input_shape=[(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, 1), (BATCH_SIZE, 1)]) + layer_test(sequence.Transformer, + kwargs={'att_embedding_size': 1, 'head_num': 8, 'use_layer_norm': True, 'supports_masking': False, + 'attention_type': 'additive', 'dropout_rate': 0.5, 'output_type': 'sum'}, + input_shape=[(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), (BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE), + (BATCH_SIZE, 1), (BATCH_SIZE, 1)]) def test_KMaxPooling(): - with CustomObjectScope({'KMaxPooling':sequence.KMaxPooling}): - layer_test(sequence.KMaxPooling,kwargs={'k':3,'axis':1},input_shape=(BATCH_SIZE,SEQ_LENGTH,EMBEDDING_SIZE,2)) + with CustomObjectScope({'KMaxPooling': sequence.KMaxPooling}): + layer_test(sequence.KMaxPooling, kwargs={'k': 3, 'axis': 1}, + input_shape=(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE, 2)) + + +@pytest.mark.parametrize( + + 'pos_embedding_trainable,zero_pad', + [(True, False), (False, True) + ] +) +def test_PositionEncoding(pos_embedding_trainable, zero_pad): + with CustomObjectScope({'PositionEncoding': sequence.PositionEncoding}): + layer_test(sequence.PositionEncoding, + kwargs={'pos_embedding_trainable': pos_embedding_trainable, 'zero_pad': zero_pad}, + input_shape=(BATCH_SIZE, SEQ_LENGTH, EMBEDDING_SIZE)) diff --git a/tests/models/AFM_test.py b/tests/models/AFM_test.py index 8dd267c2..64a1bd4f 100644 --- a/tests/models/AFM_test.py +++ b/tests/models/AFM_test.py @@ -33,7 +33,6 @@ def test_AFMEstimator(use_attention, sparse_feature_num, dense_feature_num): if not Estimator_TEST_TF1 and version.parse(tf.__version__) < version.parse('2.2.0'): return - model_name = "AFM" sample_size = SAMPLE_SIZE linear_feature_columns, dnn_feature_columns, input_fn = get_test_data_estimator(sample_size, diff --git a/tests/models/DeepFEFM_test.py b/tests/models/DeepFEFM_test.py index e952948e..c2cfbefa 100644 --- a/tests/models/DeepFEFM_test.py +++ b/tests/models/DeepFEFM_test.py @@ -6,6 +6,7 @@ from ..utils import check_model, get_test_data, SAMPLE_SIZE, get_test_data_estimator, check_estimator, \ Estimator_TEST_TF1 + @pytest.mark.parametrize( 'hidden_size,sparse_feature_num,use_fefm,use_linear,use_fefm_embed_in_dnn', [((2,), 1, True, True, True), @@ -20,12 +21,14 @@ ] ) def test_DeepFEFM(hidden_size, sparse_feature_num, use_fefm, use_linear, use_fefm_embed_in_dnn): + if tf.__version__ == "1.15.0": # slow in tf 1.15 + return model_name = "DeepFEFM" sample_size = SAMPLE_SIZE x, y, feature_columns = get_test_data(sample_size, sparse_feature_num=sparse_feature_num, dense_feature_num=sparse_feature_num) - model = DeepFEFM(feature_columns, feature_columns, embedding_size=4, dnn_hidden_units=hidden_size, dnn_dropout=0.5, - use_linear=use_linear, use_fefm=use_fefm, use_fefm_embed_in_dnn=use_fefm_embed_in_dnn) + model = DeepFEFM(feature_columns, feature_columns, dnn_hidden_units=hidden_size, dnn_dropout=0.5, + use_linear=use_linear, use_fefm=use_fefm, use_fefm_embed_in_dnn=use_fefm_embed_in_dnn) check_model(model, model_name, x, y) @@ -44,7 +47,7 @@ def test_DeepFEFMEstimator(hidden_size, sparse_feature_num): sparse_feature_num=sparse_feature_num, dense_feature_num=sparse_feature_num) - model = DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, embedding_size=4, + model = DeepFEFMEstimator(linear_feature_columns, dnn_feature_columns, dnn_hidden_units=hidden_size, dnn_dropout=0.5) check_estimator(model, input_fn) diff --git a/tests/models/PNN_test.py b/tests/models/PNN_test.py index 2d5571f6..46e60c17 100644 --- a/tests/models/PNN_test.py +++ b/tests/models/PNN_test.py @@ -30,7 +30,7 @@ def test_PNNEstimator(use_inner, use_outter, sparse_feature_num): if not Estimator_TEST_TF1 and tf.__version__ < "2.2.0": return sample_size = SAMPLE_SIZE - linear_feature_columns, dnn_feature_columns, input_fn = get_test_data_estimator(sample_size, + _, dnn_feature_columns, input_fn = get_test_data_estimator(sample_size, sparse_feature_num=sparse_feature_num, dense_feature_num=sparse_feature_num)