From 6f1589f9fcac48e68ce4f360788a646bd092704d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E6=A2=A6?= Date: Fri, 9 Oct 2020 16:54:08 +0800 Subject: [PATCH] v0.2.2 (#111) Improve the reproducibility & fix some bugs. --- .github/workflows/ci.yml | 2 +- deepctr_torch/__init__.py | 2 +- deepctr_torch/layers/interaction.py | 3 +++ deepctr_torch/layers/sequence.py | 29 +++++++++++++---------- deepctr_torch/models/afm.py | 2 +- deepctr_torch/models/autoint.py | 2 +- deepctr_torch/models/basemodel.py | 35 +++++++++++++++++----------- deepctr_torch/models/ccpm.py | 4 ++-- deepctr_torch/models/dcn.py | 6 ++--- deepctr_torch/models/deepfm.py | 4 ++-- deepctr_torch/models/nfm.py | 4 ++-- deepctr_torch/models/onn.py | 6 ++--- deepctr_torch/models/pnn.py | 4 ++-- deepctr_torch/models/wdl.py | 4 ++-- deepctr_torch/models/xdeepfm.py | 6 ++--- docs/pics/weichennote.png | Bin 36604 -> 70228 bytes docs/source/History.md | 1 + docs/source/conf.py | 2 +- docs/source/index.rst | 4 ++-- setup.py | 2 +- tests/models/DIEN_test.py | 4 ++-- 21 files changed, 72 insertions(+), 54 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7b40818..bd0e66cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: python-version: [3.6,3.7] - torch-version: [1.1.0,1.2.0,1.3.0,1.4.0] + torch-version: [1.1.0,1.2.0,1.3.0,1.4.0,1.5.0,1.6.0] # exclude: # - python-version: 3.5 diff --git a/deepctr_torch/__init__.py b/deepctr_torch/__init__.py index cbd90cdf..be085a40 100644 --- a/deepctr_torch/__init__.py +++ b/deepctr_torch/__init__.py @@ -2,5 +2,5 @@ from . import models from .utils import check_version -__version__ = '0.2.1' +__version__ = '0.2.2' check_version(__version__) \ No newline at end of file diff --git a/deepctr_torch/layers/interaction.py b/deepctr_torch/layers/interaction.py index 19140be7..5693c447 100644 --- a/deepctr_torch/layers/interaction.py +++ b/deepctr_torch/layers/interaction.py @@ -288,6 +288,9 @@ def __init__(self, in_features, attention_factor=4, l2_reg_w=0, dropout_rate=0, for tensor in [self.attention_W, self.projection_h, self.projection_p]: nn.init.xavier_normal_(tensor, ) + for tensor in [self.attention_b]: + nn.init.zeros_(tensor, ) + self.dropout = nn.Dropout(dropout_rate) self.to(device) diff --git a/deepctr_torch/layers/sequence.py b/deepctr_torch/layers/sequence.py index 414d9980..64736b5b 100644 --- a/deepctr_torch/layers/sequence.py +++ b/deepctr_torch/layers/sequence.py @@ -1,8 +1,8 @@ import torch import torch.nn as nn import torch.nn.functional as F - from torch.nn.utils.rnn import PackedSequence + from ..layers.core import LocalActivationUnit @@ -117,33 +117,34 @@ def forward(self, query, keys, keys_length, mask=None): - 3D tensor with shape: ``(batch_size, 1, embedding_size)``. """ batch_size, max_length, dim = keys.size() - + # Mask if self.supports_masking: if mask is None: raise ValueError("When supports_masking=True,input must support masking") keys_masks = mask.unsqueeze(1) else: - keys_masks = torch.arange(max_length, device=keys_length.device, dtype=keys_length.dtype).repeat(batch_size, 1) # [B, T] + keys_masks = torch.arange(max_length, device=keys_length.device, dtype=keys_length.dtype).repeat(batch_size, + 1) # [B, T] keys_masks = keys_masks < keys_length.view(-1, 1) # 0, 1 mask - keys_masks = keys_masks.unsqueeze(1) # [B, 1, T] - - attention_score = self.local_att(query, keys) # [B, T, 1] + keys_masks = keys_masks.unsqueeze(1) # [B, 1, T] - outputs = torch.transpose(attention_score, 1, 2) # [B, 1, T] + attention_score = self.local_att(query, keys) # [B, T, 1] + + outputs = torch.transpose(attention_score, 1, 2) # [B, 1, T] if self.weight_normalization: paddings = torch.ones_like(outputs) * (-2 ** 32 + 1) else: paddings = torch.zeros_like(outputs) - outputs = torch.where(keys_masks, outputs, paddings) # [B, 1, T] - + outputs = torch.where(keys_masks, outputs, paddings) # [B, 1, T] + # Scale - #outputs = outputs / (keys.shape[-1] ** 0.05) - + # outputs = outputs / (keys.shape[-1] ** 0.05) + if self.weight_normalization: - outputs = F.softmax(outputs,dim=-1) # [B, 1, T] + outputs = F.softmax(outputs, dim=-1) # [B, 1, T] if not self.return_score: # Weighted sum @@ -212,6 +213,8 @@ def __init__(self, input_size, hidden_size, bias=True): # (b_hr|b_hz|b_hh) self.bias_hh = nn.Parameter(torch.Tensor(3 * hidden_size)) self.register_parameter('bias_hh', self.bias_hh) + for tensor in [self.bias_ih, self.bias_hh]: + nn.init.zeros_(tensor, ) else: self.register_parameter('bias_ih', None) self.register_parameter('bias_hh', None) @@ -256,6 +259,8 @@ def __init__(self, input_size, hidden_size, bias=True): # (b_hr|b_hz|b_hh) self.bias_hh = nn.Parameter(torch.Tensor(3 * hidden_size)) self.register_parameter('bias_ih', self.bias_hh) + for tensor in [self.bias_ih, self.bias_hh]: + nn.init.zeros_(tensor, ) else: self.register_parameter('bias_ih', None) self.register_parameter('bias_hh', None) diff --git a/deepctr_torch/models/afm.py b/deepctr_torch/models/afm.py index 2cf57076..1ba0c8e3 100644 --- a/deepctr_torch/models/afm.py +++ b/deepctr_torch/models/afm.py @@ -47,7 +47,7 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, use_attention=Tr if use_attention: self.fm = AFMLayer(self.embedding_size, attention_factor, l2_reg_att, afm_dropout, seed, device) - self.add_regularization_loss(self.fm.attention_W, l2_reg_att) + self.add_regularization_weight(self.fm.attention_W, l2_reg_att) else: self.fm = FM() diff --git a/deepctr_torch/models/autoint.py b/deepctr_torch/models/autoint.py index 1abfe317..69630016 100644 --- a/deepctr_torch/models/autoint.py +++ b/deepctr_torch/models/autoint.py @@ -72,7 +72,7 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, att_layer_num=3, self.dnn = DNN(self.compute_input_dim(dnn_feature_columns), dnn_hidden_units, activation=dnn_activation, l2_reg=l2_reg_dnn, dropout_rate=dnn_dropout, use_bn=dnn_use_bn, init_std=init_std, device=device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) self.int_layers = nn.ModuleList( [InteractingLayer(self.embedding_size if i == 0 else att_embedding_size * att_head_num, diff --git a/deepctr_torch/models/basemodel.py b/deepctr_torch/models/basemodel.py index 50145d6c..74f5c1b5 100644 --- a/deepctr_torch/models/basemodel.py +++ b/deepctr_torch/models/basemodel.py @@ -112,9 +112,11 @@ def __init__(self, self.linear_model = Linear( linear_feature_columns, self.feature_index, device=device) - self.add_regularization_loss( + self.regularization_weight = [] + + self.add_regularization_weight( self.embedding_dict.parameters(), l2_reg_embedding) - self.add_regularization_loss( + self.add_regularization_weight( self.linear_model.parameters(), l2_reg_linear) self.out = PredictionLayer(task, ) @@ -216,8 +218,9 @@ def fit(self, x=None, optim.zero_grad() loss = loss_func(y_pred, y.squeeze(), reduction='sum') + reg_loss = self.get_regularization_loss() - total_loss = loss + self.reg_loss + self.aux_loss + total_loss = loss + reg_loss + self.aux_loss loss_epoch += loss.item() total_loss_epoch += total_loss.item() @@ -353,16 +356,22 @@ def compute_input_dim(self, feature_columns, include_sparse=True, include_dense= input_dim += dense_input_dim return input_dim - def add_regularization_loss(self, weight_list, weight_decay, p=2): - reg_loss = torch.zeros((1,), device=self.device) - for w in weight_list: - if isinstance(w, tuple): - l2_reg = torch.norm(w[1], p=p, ) - else: - l2_reg = torch.norm(w, p=p, ) - reg_loss = reg_loss + l2_reg - reg_loss = weight_decay * reg_loss - self.reg_loss = self.reg_loss + reg_loss + def add_regularization_weight(self, weight_list, weight_decay, p=2): + self.regularization_weight.append((list(weight_list), weight_decay, p)) + + def get_regularization_loss(self,): + total_reg_loss = torch.zeros((1,), device=self.device) + for weight_list, weight_decay, p in self.regularization_weight: + weight_reg_loss = torch.zeros((1,), device=self.device) + for w in weight_list: + if isinstance(w, tuple): + l2_reg = torch.norm(w[1], p=p, ) + else: + l2_reg = torch.norm(w, p=p, ) + weight_reg_loss = weight_reg_loss + l2_reg + reg_loss = weight_decay * weight_reg_loss + total_reg_loss += reg_loss + return total_reg_loss def add_auxiliary_loss(self, aux_loss, alpha): self.aux_loss = aux_loss * alpha diff --git a/deepctr_torch/models/ccpm.py b/deepctr_torch/models/ccpm.py index a583acd8..9993d028 100644 --- a/deepctr_torch/models/ccpm.py +++ b/deepctr_torch/models/ccpm.py @@ -63,9 +63,9 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, conv_kernel_widt activation=dnn_activation, l2_reg=l2_reg_dnn, dropout_rate=dnn_dropout, use_bn=dnn_use_bn, init_std=init_std, device=device) self.dnn_linear = nn.Linear(dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.to(device) diff --git a/deepctr_torch/models/dcn.py b/deepctr_torch/models/dcn.py index 8573f206..e94f5b33 100644 --- a/deepctr_torch/models/dcn.py +++ b/deepctr_torch/models/dcn.py @@ -64,10 +64,10 @@ def __init__(self,linear_feature_columns, device) self.crossnet = CrossNet(in_features=self.compute_input_dim(dnn_feature_columns), layer_num=cross_num, seed=1024, device=device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_linear) - self.add_regularization_loss(self.crossnet.kernels, l2_reg_cross) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_linear) + self.add_regularization_weight(self.crossnet.kernels, l2_reg_cross) self.to(device) def forward(self, X): diff --git a/deepctr_torch/models/deepfm.py b/deepctr_torch/models/deepfm.py index edf4b561..539f8fd9 100644 --- a/deepctr_torch/models/deepfm.py +++ b/deepctr_torch/models/deepfm.py @@ -62,9 +62,9 @@ def __init__(self, self.dnn_linear = nn.Linear( dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.to(device) def forward(self, X): diff --git a/deepctr_torch/models/nfm.py b/deepctr_torch/models/nfm.py index c206c789..7ec56403 100644 --- a/deepctr_torch/models/nfm.py +++ b/deepctr_torch/models/nfm.py @@ -51,9 +51,9 @@ def __init__(self, init_std=init_std, device=device) self.dnn_linear = nn.Linear( dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.bi_pooling = BiInteractionPooling() self.bi_dropout = bi_dropout if self.bi_dropout > 0: diff --git a/deepctr_torch/models/onn.py b/deepctr_torch/models/onn.py index df7fb8d5..b4837dc2 100644 --- a/deepctr_torch/models/onn.py +++ b/deepctr_torch/models/onn.py @@ -73,7 +73,7 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, dnn_feature_columns, embedding_size=embedding_size, sparse=False).to(device) # add regularization for second_order_embedding - self.add_regularization_loss( + self.add_regularization_weight( self.second_order_embedding_dict.parameters(), l2_reg_embedding) dim = self.__compute_nffm_dnn_dim( @@ -85,9 +85,9 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, init_std=init_std, device=device) self.dnn_linear = nn.Linear( dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.to(device) def __compute_nffm_dnn_dim(self, feature_columns, embedding_size): diff --git a/deepctr_torch/models/pnn.py b/deepctr_torch/models/pnn.py index 2efc04c1..f528d212 100644 --- a/deepctr_torch/models/pnn.py +++ b/deepctr_torch/models/pnn.py @@ -72,9 +72,9 @@ def __init__(self, dnn_feature_columns, dnn_hidden_units=(128, 128), l2_reg_embe self.dnn_linear = nn.Linear( dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.to(device) diff --git a/deepctr_torch/models/wdl.py b/deepctr_torch/models/wdl.py index 4d2f840a..59843f1b 100644 --- a/deepctr_torch/models/wdl.py +++ b/deepctr_torch/models/wdl.py @@ -54,9 +54,9 @@ def __init__(self, activation=dnn_activation, l2_reg=l2_reg_dnn, dropout_rate=dnn_dropout, use_bn=dnn_use_bn, init_std=init_std, device=device) self.dnn_linear = nn.Linear(dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.to(device) diff --git a/deepctr_torch/models/xdeepfm.py b/deepctr_torch/models/xdeepfm.py index de7f7230..851c9080 100644 --- a/deepctr_torch/models/xdeepfm.py +++ b/deepctr_torch/models/xdeepfm.py @@ -57,10 +57,10 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, dnn_hidden_units activation=dnn_activation, l2_reg=l2_reg_dnn, dropout_rate=dnn_dropout, use_bn=dnn_use_bn, init_std=init_std, device=device) self.dnn_linear = nn.Linear(dnn_hidden_units[-1], 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0] and 'bn' not in x[0], self.dnn.named_parameters()), l2_reg_dnn) - self.add_regularization_loss(self.dnn_linear.weight, l2_reg_dnn) + self.add_regularization_weight(self.dnn_linear.weight, l2_reg_dnn) self.cin_layer_size = cin_layer_size self.use_cin = len(self.cin_layer_size) > 0 and len(dnn_feature_columns) > 0 @@ -74,7 +74,7 @@ def __init__(self, linear_feature_columns, dnn_feature_columns, dnn_hidden_units self.cin = CIN(field_num, cin_layer_size, cin_activation, cin_split_half, l2_reg_cin, seed, device=device) self.cin_linear = nn.Linear(self.featuremap_num, 1, bias=False).to(device) - self.add_regularization_loss( + self.add_regularization_weight( filter(lambda x: 'weight' in x[0], self.cin.named_parameters()), l2_reg_cin) self.to(device) diff --git a/docs/pics/weichennote.png b/docs/pics/weichennote.png index fec7b11b10ab0bf89c9d5d12ce24c5aa3511838e..0b60a2f3fc1c4ee4a0d3a6be0f7c16ee17a1854d 100644 GIT binary patch literal 70228 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 AX8-^I diff --git a/docs/source/History.md b/docs/source/History.md index 5d06a97b..4f96f576 100644 --- a/docs/source/History.md +++ b/docs/source/History.md @@ -1,4 +1,5 @@ # History +- 10/09/2020 : [v0.2.2](https://github.com/shenweichen/DeepCTR-Torch/releases/tag/v0.2.2) released.Improve the reproducibility & fix some bugs. - 03/27/2020 : [v0.2.1](https://github.com/shenweichen/DeepCTR-Torch/releases/tag/v0.2.1) released.Add [DIN](./Features.html#din-deep-interest-network) and [DIEN](./Features.html#dien-deep-interest-evolution-network) . - 01/31/2020 : [v0.2.0](https://github.com/shenweichen/DeepCTR-Torch/releases/tag/v0.2.0) released.Refactor [feature columns](./Features.html#feature-columns).Support to use double precision in metric calculation. - 10/03/2019 : [v0.1.3](https://github.com/shenweichen/DeepCTR-Torch/releases/tag/v0.1.3) released.Simplify the input logic. diff --git a/docs/source/conf.py b/docs/source/conf.py index 3098ee95..5a54c9cd 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.2.1' +release = '0.2.2' # -- General configuration --------------------------------------------------- diff --git a/docs/source/index.rst b/docs/source/index.rst index 52b6aac0..2f473b76 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -34,12 +34,12 @@ You can read the latest code at https://github.com/shenweichen/DeepCTR-Torch and News ----- +10/09/2020 : Improve the reproducibility & fix some bugs. `Changelog `_ + 03/27/2020 : Add `DIN <./Features.html#din-deep-interest-network>`_ and `DIEN <./Features.html#dien-deep-interest-evolution-network>`_ . `Changelog `_ 01/31/2020 : Refactor `feature columns <./Features.html#feature-columns>`_ . Support double precision in metric calculation . `Changelog `_ -10/03/2019 : Simplify the input logic(`examples <./Examples.html#classification-criteo>`_). `Changelog `_ - DisscussionGroup ----------------------- diff --git a/setup.py b/setup.py index a57727e4..415844fe 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setuptools.setup( name="deepctr-torch", - version="0.2.1", + version="0.2.2", author="Weichen Shen", author_email="wcshen1994@163.com", description="Easy-to-use,Modular and Extendible package of deep learning based CTR(Click Through Rate) prediction models with PyTorch", diff --git a/tests/models/DIEN_test.py b/tests/models/DIEN_test.py index a2cdb6ae..ef5882b2 100644 --- a/tests/models/DIEN_test.py +++ b/tests/models/DIEN_test.py @@ -90,8 +90,8 @@ def test_DIEN(gru_type, use_neg): x, y, feature_columns, behavior_feature_list = get_xy_fd(use_neg=use_neg) - model = DIEN(feature_columns, behavior_feature_list, - dnn_hidden_units=[4, 4, 4], dnn_dropout=0.5, gru_type=gru_type, device=get_device()) + model = DIEN(feature_columns, behavior_feature_list, gru_type=gru_type, use_negsampling=use_neg, + dnn_hidden_units=[4, 4, 4], dnn_dropout=0.5, device=get_device()) check_model(model, model_name, x, y)