From 6bb228dbdfd2103abcb0ee535e5da33c759f956e Mon Sep 17 00:00:00 2001 From: wasser <1224413636@qq.com> Date: Sat, 1 Jul 2023 00:21:54 +0800 Subject: [PATCH 1/3] Add surge model and it's config file. --- recbole/model/sequential_recommender/surge.py | 262 ++++++++++++++++++ recbole/properties/model/SURGE.yaml | 11 + 2 files changed, 273 insertions(+) create mode 100644 recbole/model/sequential_recommender/surge.py create mode 100644 recbole/properties/model/SURGE.yaml diff --git a/recbole/model/sequential_recommender/surge.py b/recbole/model/sequential_recommender/surge.py new file mode 100644 index 000000000..edb0e85a4 --- /dev/null +++ b/recbole/model/sequential_recommender/surge.py @@ -0,0 +1,262 @@ +# -*- coding: utf-8 -*- +# @Time : 2023/6/30 +# @Author : Zhengle Wang +# @Email : wzl1224413636@gmail.com + +# @Time : 2023/6/30 +# @Author : Zhengle Wang +# @Email : wzl1224413636@gmail.com + +import math + +import numpy as np +import torch +from torch import nn +from torch.nn import Parameter +from torch.nn import functional as F +from torch.nn.init import xavier_normal_, constant_ +from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence, PackedSequence + +from recbole.utils import InputType, FeatureType +from recbole.model.abstract_recommender import SequentialRecommender +from recbole.model.sequential_recommender.dien import AUGRUCell, DynamicRNN +from recbole.model.layers import MLPLayers, SequenceAttLayer +from recbole.model.loss import BPRLoss + + +class SURGE(SequentialRecommender): + + input_type = InputType.POINTWISE + + def __init__(self, config, dataset): + super(SURGE, self).__init__(config, dataset) + + # load dataset info + self.LABEL_FIELD = config["LABEL_FIELD"] + + # load parameter info + self.metric_heads = config['metric_heads'] + self.attention_heads = config['attention_heads'] + self.pool_layers = config['pool_layers'] + self.max_seq_len = config['max_seq_len'] + self.pool_length = config['pool_length'] + self.relative_threshold = config['relative_threshold'] + self.device = config['device'] + self.embedding_size = config["embedding_size"] + self.att_fcn_layer_sizes = config['att_fcn_layer_sizes'] + self.att_activation = config['att_activation'] + self.hidden_size = config['hidden_size'] + self.layer_sizes = config['layer_sizes'] + + # define layers and loss + self.item_embedding = nn.Embedding(self.n_items, self.embedding_size, padding_idx=0) + self.att_fcn_layer = MLPLayers([4 * self.embedding_size, *self.att_fcn_layer_sizes], + activation=self.att_activation) + self.dnn_fcn_layer = MLPLayers([3 * self.embedding_size + 1, *self.layer_sizes, 1], + activation=self.att_activation) + self.dynamic_rnn = DynamicRNN(input_size=self.embedding_size, hidden_size=self.hidden_size, + gru="AUGRU").to(self.device) + self.loss_fct = nn.BCEWithLogitsLoss() + + def forward(self, item_seq, pos_item): + """ SURGE Model: + 1) Interest graph: Graph construction based on metric learning + 2) Interest fusion and extraction : Graph convolution and graph pooling + 3) Prediction: Flatten pooled graph to reduced sequence + """ + self.mask = torch.ones_like(item_seq).to(self.device) + self.mask = torch.where(item_seq > 0, self.mask, item_seq).type(torch.float32) + self.target_item_embedding = self.item_embedding(pos_item) + + X = self.item_embedding(item_seq) # [B * L * D] + + # build interest graph + S = [] + for _ in range(self.metric_heads): + # weighted cosine similarity + self.weighted_tensor = torch.rand(1, X.shape[-1]).to(self.device) + X_fts = X * self.weighted_tensor.unsqueeze(0) + X_fts = F.normalize(X_fts, p=2, dim=2) + S_one = torch.matmul(X_fts, X_fts.permute((0, 2, 1))) + # min-max normalization for mask + S_min, _ = torch.min(S_one, -1, keepdim=True) + S_max, _ = torch.max(S_one, -1, keepdim=True) + S_one = (S_one - S_min) / (S_max - S_min) + S += [S_one] + S = torch.mean(torch.stack(S, 0), 0).to(self.device) + # mask invalid nodes + S = S * self.mask.unsqueeze(-1) * self.mask.unsqueeze(-2) + + # graph sparsification via seted sparseness + S_flatten = torch.reshape(S, (S.shape[0], -1)) # [B * L^2] + S_sorted_flatten, _ = torch.sort(S_flatten, dim=-1, descending=True) + + # relative ranking strategy of the entire graph + num_edges = torch.count_nonzero(S, dim=(1, 2)).type(torch.float32) # total number of valid edges + to_keep_edge = torch.ceil(num_edges * self.relative_threshold).type(torch.int32) + inds = to_keep_edge.clone().detach().unsqueeze(-1).type(torch.int64) + threshold_score = torch.gather(S_sorted_flatten, 1, inds) + A = torch.gt(S, threshold_score.unsqueeze(-1)).type(torch.float32) + + for l in range(self.pool_layers): + X, A, graph_readout, alphas = self._interest_fusion_extraction(X, A, layer=l) + + # flatten pooled graph to reduced sequence + output_shape = self.mask.shape + sorted_mask_index = torch.argsort(self.mask, dim=-1, descending=True, stable=True).type(torch.int64) + sorted_mask, _ = torch.sort(self.mask, descending=True, dim=-1) + sorted_mask_index = sorted_mask_index.unsqueeze(-1).repeat(1, 1, self.embedding_size) + X = torch.gather(X, 1, sorted_mask_index) + + self.mask = sorted_mask + self.reduced_sequence_length = torch.sum(self.mask, 1) # [B] + + # cut useless sequence tail per batch + self.to_max_length = torch.arange(0, torch.max(self.reduced_sequence_length)).to(self.device).type(torch.int64) + X = torch.gather( + X, 1, + self.to_max_length.unsqueeze(0).unsqueeze(-1).repeat(X.shape[0], 1, self.embedding_size) + ) # [B * L * D] -> [B * l * D] + self.mask = torch.gather( + self.mask, 1, + self.to_max_length.unsqueeze(0).repeat(X.shape[0], 1) + ) # [B * L] -> [B * l] + self.reduced_sequence_length = torch.sum(self.mask, dim=1).to('cpu') + + # use cluster score as attention weights in AUGRU + _, alphas = self._attention_fcn(self.target_item_embedding, X) + + packed_rnn_outputs = pack_padded_sequence( + X, lengths=self.reduced_sequence_length, batch_first=True, enforce_sorted=False + ) + packed_att_outputs = pack_padded_sequence( + alphas.unsqueeze(-1), lengths=self.reduced_sequence_length, batch_first=True, enforce_sorted=False + ) + final_state = self.dynamic_rnn(packed_rnn_outputs, packed_att_outputs) + _, final_state = pad_packed_sequence(final_state, batch_first=True, padding_value=0.0, total_length=X.shape[1]) + model_output = torch.cat([ + final_state.unsqueeze(-1).to(self.device), graph_readout, self.target_item_embedding, + graph_readout * self.target_item_embedding + ], + dim=1) + logit = self.dnn_fcn_layer(model_output) + + return logit + + def _attention_fcn(self, query, key_value): + """Apply attention by fully connected layers. + Args: + query (obj): The embedding of target item or cluster which is regarded as a query in attention operations. + key_value (obj): The embedding of history items which is regarded as keys or values in attention operations. + + Returns: + att_weights (obj): Attention weights + """ + query_size = query.shape[-1] + boolen_mask = torch.eq(self.mask, torch.ones_like(self.mask)) + + attention_mat = torch.randn(key_value.shape[-1], query_size).to(self.device) + att_inputs = torch.tensordot(key_value, attention_mat, [[2], [0]]).to(self.device) # [B * L * D] + + if query.dim() != att_inputs.dim(): + hist_len = att_inputs.shape[1] + queries = query.repeat(1, hist_len) + queries = queries.view(att_inputs.shape).to(self.device) + else: + queries = query + att_fcn_input = torch.cat([att_inputs, queries, att_inputs - queries, att_inputs * queries], + dim=-1).to(self.device) # [B * L * 4D] + + dense = nn.Linear(self.att_fcn_layer_sizes[-1], 1).to(self.device) + att_fcn_output = dense(self.att_fcn_layer(att_fcn_input)) + att_fcn_output = torch.squeeze(att_fcn_output, dim=-1) + mask_paddings = torch.ones_like(att_fcn_output) * (-(2 ** 32) + 1) + att_weights = F.softmax(torch.where(boolen_mask, att_fcn_output, mask_paddings), dim=-1) + output = key_value * att_weights.unsqueeze(-1) + return output, att_weights + + def _interest_fusion_extraction(self, X, A, layer): + # cluster embedding + A_bool = torch.gt(A, 0).type(A.dtype).to(self.device) + A_bool = A_bool * (torch.ones(A.shape[1], A.shape[1]).to(self.device)) - torch.eye(A.shape[1]).to( + self.device + ) + torch.eye(A.shape[1]).to(self.device) + D = torch.sum(A_bool, dim=-1) # [B * L] + D = torch.sqrt(D)[:, None] + torch.finfo(torch.float32).eps # B * 1 * L + A = (A_bool / D) / D.permute((0, 2, 1)) # [B * L * L] / [B * 1 * L] / [B * L * 1] + X_q = torch.matmul(A, torch.matmul(A, X)) # query matrix [B * L * D] + + Xc = [] + for i in range(self.attention_heads): + # cluster- and query- aware attention + _, f_1 = self._attention_fcn(X_q, X) + _, f_2 = self._attention_fcn(self.target_item_embedding, X) + + # graph attentive convoution + E = A_bool * f_1.unsqueeze(1) + A_bool * f_2.unsqueeze(1).permute( + (0, 2, 1) + ) # [B * L * 1] * [B * 1 * L] -> [B * L * L] + E = nn.LeakyReLU()(E) + boolen_mask = torch.eq(A_bool, torch.ones_like(A_bool)) + mask_paddings = torch.ones_like(E) * (-(2 ** 32) + 1) + E = F.softmax(torch.where(boolen_mask, E, mask_paddings), dim=-1) + Xc_one = torch.matmul(E, X) + Xc_one = nn.Linear(Xc_one.shape[-1], self.embedding_size, bias=False).to(self.device)(Xc_one) + Xc_one += X + Xc += [nn.LeakyReLU()(Xc_one)] + Xc = torch.mean(torch.stack(Xc, 0), 0) + + # cluster fitness score + X_q = torch.matmul(A, torch.matmul(A, Xc)) # [B * L * F] + cluster_score = [] + for i in range(self.attention_heads): + _, f_1 = self._attention_fcn(X_q, Xc) + _, f_2 = self._attention_fcn(self.target_item_embedding, Xc) + cluster_score += [f_1 + f_2] + cluster_score = torch.mean(torch.stack(cluster_score, 0), 0) + boolen_mask = torch.eq(self.mask, torch.ones_like(self.mask)) + mask_paddings = torch.ones_like(cluster_score) * (-(2 ** 32) + 1) + cluster_score = F.softmax(torch.where(boolen_mask, cluster_score, mask_paddings), dim=-1) + + # graph pooling + num_nodes = torch.sum(self.mask, dim=1) + boolean_pool = torch.gt(num_nodes, self.pool_length) + to_keep = torch.where( + boolean_pool, ( + self.pool_length + (self.item_seq_len - self.pool_length) / self.pool_layers * + (self.pool_layers - layer - 1) + ).type(torch.int32), num_nodes + ) + cluster_score = cluster_score * self.mask.type(torch.float32) + sorted_score, _ = torch.sort(cluster_score, dim=-1, descending=True) + target_score = torch.gather(sorted_score, -1, + to_keep.unsqueeze(-1).type(torch.int64)) + torch.finfo(torch.float32).eps + topk_mask = torch.gt(cluster_score, target_score) + self.mask = topk_mask.type(torch.int32) + self.float_mask = self.mask.type(torch.float32) + self.reduced_sequence_length = torch.sum(self.mask, dim=1) + + # ensure graph connectivity + E = E * torch.unsqueeze(self.float_mask, -1) * torch.unsqueeze(self.float_mask, -2) + A = torch.matmul(torch.matmul(E, A_bool), E.permute((0, 2, 1))) + + # graph readout + graph_readout = torch.sum(Xc * cluster_score.unsqueeze(-1) * self.float_mask.unsqueeze(-1), dim=1) # [B * F] + + return Xc, A, graph_readout, cluster_score + + def calculate_loss(self, interaction): + label = interaction[self.LABEL_FIELD] + item_seq = interaction[self.ITEM_SEQ] + pos_item = interaction[self.POS_ITEM_ID] + self.item_seq_len = interaction[self.ITEM_SEQ_LEN] + logits = self.forward(item_seq, pos_item).squeeze(-1) + loss = self.loss_fct(logits, label) + return loss + + def predict(self, interaction): + item_seq = interaction[self.ITEM_SEQ] + pos_item = interaction[self.POS_ITEM_ID] + self.item_seq_len = interaction[self.ITEM_SEQ_LEN] + logits = self.forward(item_seq, pos_item) + return nn.Sigmoid()(logits) diff --git a/recbole/properties/model/SURGE.yaml b/recbole/properties/model/SURGE.yaml new file mode 100644 index 000000000..2cdaf0c46 --- /dev/null +++ b/recbole/properties/model/SURGE.yaml @@ -0,0 +1,11 @@ +embedding_size: 32 # (int) the embedding dimension of items +hidden_size: 32 # (int) the shape of hidden size used in RNN +layer_sizes: [100, 64] # (list) layers' size of DNN. +att_activation: relu # (str) activation function +att_fcn_layer_sizes: [80, 40] # (list) layers' size of attention fcn layers +relative_threshold: 0.50 # (int) rate for keeping edges +pool_length: 30 # (int) keep length for graph pooling layers +max_seq_len: 50 # (int) the maximun number of records in the history sequence +pool_layers: 1 # (int) the number of graph pooling layer +attention_heads: 1 # (int) the number of attention head +metric_heads: 1 # (int) the number of head for metric learning From 3282b3785cb6b85bd2f48649e156348095853494 Mon Sep 17 00:00:00 2001 From: wasser <1224413636@qq.com> Date: Sat, 1 Jul 2023 13:49:35 +0800 Subject: [PATCH 2/3] modify the rst files. --- docs/source/asset/surge.png | Bin 0 -> 181777 bytes .../surge.png\357\200\272Zone.Identifier" | 3 + docs/source/index.rst | 2 +- .../user_guide/model/sequential/s3rec.rst | 35 ++------ .../user_guide/model/sequential/surge.rst | 80 ++++++++++++++++++ docs/source/user_guide/model_intro.rst | 3 +- .../model/sequential_recommender/__init__.py | 1 + recbole/model/sequential_recommender/surge.py | 17 ++-- recbole/properties/model/SURGE.yaml | 4 +- 9 files changed, 106 insertions(+), 39 deletions(-) create mode 100644 docs/source/asset/surge.png create mode 100644 "docs/source/asset/surge.png\357\200\272Zone.Identifier" create mode 100644 docs/source/user_guide/model/sequential/surge.rst diff --git a/docs/source/asset/surge.png b/docs/source/asset/surge.png new file mode 100644 index 0000000000000000000000000000000000000000..e4a54b48698a88856ba9702e7952f487936d1e8d GIT binary patch literal 181777 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%0A=6MR=474eDQ^6W3A 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μ;w*WnFP+-`vBr$wgq_Y^ZwDWHZ?M8$Q00=rPP*_ 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 literal 0 HcmV?d00001 diff --git "a/docs/source/asset/surge.png\357\200\272Zone.Identifier" "b/docs/source/asset/surge.png\357\200\272Zone.Identifier" new file mode 100644 index 000000000..cd4856ef2 --- /dev/null +++ "b/docs/source/asset/surge.png\357\200\272Zone.Identifier" @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=https://pdf.cdn.readpaper.com/parsed/fetch_target/1f4dd6657fbbcd4694664b397db4f4d3_2_Figure_1.png?attname= diff --git a/docs/source/index.rst b/docs/source/index.rst index bdbcde087..290b360c6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -11,7 +11,7 @@ Introduction RecBole is a unified, comprehensive and efficient framework developed based on PyTorch. It aims to help the researchers to reproduce and develop recommendation models. -In the lastest release, our library includes 86 recommendation algorithms `[Model List]`_, covering four major categories: +In the lastest release, our library includes 87 recommendation algorithms `[Model List]`_, covering four major categories: - General Recommendation - Sequential Recommendation diff --git a/docs/source/user_guide/model/sequential/s3rec.rst b/docs/source/user_guide/model/sequential/s3rec.rst index fedd9454b..ff3ddabd8 100644 --- a/docs/source/user_guide/model/sequential/s3rec.rst +++ b/docs/source/user_guide/model/sequential/s3rec.rst @@ -6,34 +6,13 @@ Introduction `[paper] `_ -**Title:** S3-Rec: Self-Supervised Learning for Sequential -Recommendation with Mutual Information Maximization - -**Authors:** Kun Zhou, Hui Wang, Wayne Xin Zhao, Yutao Zhu, Sirui Wang, Fuzheng Zhang, Zhongyuan Wang, Ji-Rong Wen - -**Abstract:** Recently, significant progress has been made in sequential recommendation with deep learning. Existing neural sequential recommendation models usually rely on the item prediction loss to learn -model parameters or data representations. However, the model -trained with this loss is prone to suffer from data sparsity problem. -Since it overemphasizes the final performance, the association or -fusion between context data and sequence data has not been well -captured and utilized for sequential recommendation. -To tackle this problem, we propose the model S3-Rec, which -stands for Self-Supervised learning for Sequential Recommendation, -based on the self-attentive neural architecture. The main idea of -our approach is to utilize the intrinsic data correlation to derive -self-supervision signals and enhance the data representations via -pre-training methods for improving sequential recommendation. -For our task, we devise four auxiliary self-supervised objectives -to learn the correlations among attribute, item, subsequence, and -sequence by utilizing the mutual information maximization (MIM) -principle. MIM provides a unified way to characterize the correlation between different types of data, which is particularly suitable -in our scenario. Extensive experiments conducted on six real-world -datasets demonstrate the superiority of our proposed method over -existing state-of-the-art methods, especially when only limited -training data is available. Besides, we extend our self-supervised -learning method to other recommendation models, which also improve their performance. - -.. image:: ../../../asset/s3rec.png +**Title:** Sequential Recommendation with Graph Neural Networks + +**Authors:** Jianxin Chang, Chen Gao, Yu Zheng, Yiqun Hui, Yanan Niu, Yang Song, Depeng Jin, Yong Li + +**Abstract:** Sequential recommendation aims to leverage users' historical behaviors to predict their next interaction. Existing works have not yet addressed two main challenges in sequential recommendation. First, user behaviors in their rich historical sequences are often implicit and noisy preference signals, they cannot sufficiently reflect users' actual preferences. In addition, users' dynamic preferences often change rapidly over time, and hence it is difficult to capture user patterns in their historical sequences. In this work, we propose a graph neural network model called SURGE (short forSeqUential Recommendation with Graph neural nEtworks) to address these two issues. Specifically, SURGE integrates different types of preferences in long-term user behaviors into clusters in the graph by re-constructing loose item sequences into tight item-item interest graphs based on metric learning. This helps explicitly distinguish users' core interests, by forming dense clusters in the interest graph. Then, we perform cluster-aware and query-aware graph convolutional propagation and graph pooling on the constructed graph. It dynamically fuses and extracts users' current activated core interests from noisy user behavior sequences. We conduct extensive experiments on both public and proprietary industrial datasets. Experimental results demonstrate significant performance gains of our proposed method compared to state-of-the-art methods. Further studies on sequence length confirm that our method can model long behavioral sequences effectively and efficiently. + +.. image:: ../../../asset/surge.png :width: 600 :align: center diff --git a/docs/source/user_guide/model/sequential/surge.rst b/docs/source/user_guide/model/sequential/surge.rst new file mode 100644 index 000000000..c5898c216 --- /dev/null +++ b/docs/source/user_guide/model/sequential/surge.rst @@ -0,0 +1,80 @@ +SURGE +=========== + +Introduction +--------------------- + +`[paper] `_ + +**Title:** Sequential Recommendation with Graph Neural Networks + +**Authors:** Jianxin Chang, Chen Gao, Yu Zheng, Yiqun Hui, Yanan Niu, Yang Song, Depeng Jin, Yong Li + +**Abstract:** Sequential recommendation aims to leverage users' historical behaviors to predict their next interaction. Existing works have not yet addressed two main challenges in sequential recommendation. First, user behaviors in their rich historical sequences are often implicit and noisy preference signals, they cannot sufficiently reflect users' actual preferences. In addition, users' dynamic preferences often change rapidly over time, and hence it is difficult to capture user patterns in their historical sequences. In this work, we propose a graph neural network model called SURGE (short forSeqUential Recommendation with Graph neural nEtworks) to address these two issues. Specifically, SURGE integrates different types of preferences in long-term user behaviors into clusters in the graph by re-constructing loose item sequences into tight item-item interest graphs based on metric learning. This helps explicitly distinguish users' core interests, by forming dense clusters in the interest graph. Then, we perform cluster-aware and query-aware graph convolutional propagation and graph pooling on the constructed graph. It dynamically fuses and extracts users' current activated core interests from noisy user behavior sequences. We conduct extensive experiments on both public and proprietary industrial datasets. Experimental results demonstrate significant performance gains of our proposed method compared to state-of-the-art methods. Further studies on sequence length confirm that our method can model long behavioral sequences effectively and efficiently. + +.. image:: ../../../asset/surge.png + :width: 500 + :align: center + +Running with RecBole +------------------------- + +**Model Hyper-Parameters:** + +- ``embedding_size (int)`` : The embedding size of items. Defaults to ``32``. +- ``hidden_size (int)`` : The number of features in the hidden state. Defaults to ``32``. +- ``layer_sizes (list)`` : The layers' size of DNN. Defaults to ``[100, 64]``. +- ``att_activation (str)`` : The activation function. Defaults to ``relu``. +- ``att_fcn_layer_sizes (list)`` : The layers' size of attention fcn layers. Defaults to ``[80, 40]``. +- ``relative_threshold (float)`` : The rate for keeping edges. Defaults to ``0.50``. +- ``pool_length (int)`` : The keeping length for graph pooling layers. Defaults to ``30``. +- ``pool_layers (int)`` : The number of graph pooling layer. Defaults to ``1``. +- ``attention_heads (int)`` : The number of attention head. Defaults to ``1``. +- ``metric_heads (int)`` : The number of head in metric learning. Defaults to ``1``. +- ``dropout_prob (float)``: The dropout rate. Defaults to ``0.0``. + + +**A Running Example:** + +Write the following code to a python file, such as `run.py` + +.. code:: python + + from recbole.quick_start import run_recbole + + run_recbole(model='SURGE', dataset='ml-100k') + +And then: + +.. code:: bash + + python run.py + +Tuning Hyper Parameters +------------------------- + +If you want to use ``HyperTuning`` to tune hyper parameters of this model, you can copy the following settings and name it as ``hyper.test``. + +.. code:: bash + + learning_rate choice [0.01,0.005,0.001,0.0005,0.0001] + dropout_prob choice [0.0,0.1,0.2,0.3,0.4,0.5] + hidden_size choice [32,64] + +Note that we just provide these hyper parameter ranges for reference only, and we can not guarantee that they are the optimal range of this model. + +Then, with the source code of RecBole (you can download it from GitHub), you can run the ``run_hyper.py`` to tuning: + +.. code:: bash + + python run_hyper.py --model=[model_name] --dataset=[dataset_name] --config_files=[config_files_path] --params_file=hyper.test + +For more details about Parameter Tuning, refer to :doc:`../../../user_guide/usage/parameter_tuning`. + + +If you want to change parameters, dataset or evaluation settings, take a look at + +- :doc:`../../../user_guide/config_settings` +- :doc:`../../../user_guide/data_intro` +- :doc:`../../../user_guide/train_eval_intro` +- :doc:`../../../user_guide/usage` diff --git a/docs/source/user_guide/model_intro.rst b/docs/source/user_guide/model_intro.rst index 16968c406..330c74adb 100644 --- a/docs/source/user_guide/model_intro.rst +++ b/docs/source/user_guide/model_intro.rst @@ -1,6 +1,6 @@ Model Introduction ===================== -We implement 86 recommendation models covering general recommendation, sequential recommendation, +We implement 87 recommendation models covering general recommendation, sequential recommendation, context-aware recommendation and knowledge-based recommendation. A brief introduction to these models are as follows: @@ -111,6 +111,7 @@ the sequential data. The models of session-based recommendation are also include model/sequential/lightsans model/sequential/sine model/sequential/core + model/sequential/surge Knowledge-based Recommendation diff --git a/recbole/model/sequential_recommender/__init__.py b/recbole/model/sequential_recommender/__init__.py index ceba1dcac..095f478ff 100644 --- a/recbole/model/sequential_recommender/__init__.py +++ b/recbole/model/sequential_recommender/__init__.py @@ -26,3 +26,4 @@ from recbole.model.sequential_recommender.srgnn import SRGNN from recbole.model.sequential_recommender.stamp import STAMP from recbole.model.sequential_recommender.transrec import TransRec +from recbole.model.sequential_recommender.surge import SURGE \ No newline at end of file diff --git a/recbole/model/sequential_recommender/surge.py b/recbole/model/sequential_recommender/surge.py index edb0e85a4..156167542 100644 --- a/recbole/model/sequential_recommender/surge.py +++ b/recbole/model/sequential_recommender/surge.py @@ -35,10 +35,10 @@ def __init__(self, config, dataset): self.LABEL_FIELD = config["LABEL_FIELD"] # load parameter info + self.dropout_prob = config['dropout_prob'] self.metric_heads = config['metric_heads'] self.attention_heads = config['attention_heads'] self.pool_layers = config['pool_layers'] - self.max_seq_len = config['max_seq_len'] self.pool_length = config['pool_length'] self.relative_threshold = config['relative_threshold'] self.device = config['device'] @@ -50,12 +50,15 @@ def __init__(self, config, dataset): # define layers and loss self.item_embedding = nn.Embedding(self.n_items, self.embedding_size, padding_idx=0) - self.att_fcn_layer = MLPLayers([4 * self.embedding_size, *self.att_fcn_layer_sizes], - activation=self.att_activation) - self.dnn_fcn_layer = MLPLayers([3 * self.embedding_size + 1, *self.layer_sizes, 1], - activation=self.att_activation) - self.dynamic_rnn = DynamicRNN(input_size=self.embedding_size, hidden_size=self.hidden_size, - gru="AUGRU").to(self.device) + self.att_fcn_layer = MLPLayers( + [4 * self.embedding_size, *self.att_fcn_layer_sizes], activation=self.att_activation, dropout=self.dropout_prob + ) + self.dnn_fcn_layer = MLPLayers( + [3 * self.embedding_size + 1, *self.layer_sizes, 1], activation=self.att_activation, dropout=self.dropout_prob + ) + self.dynamic_rnn = DynamicRNN( + input_size=self.embedding_size, hidden_size=self.hidden_size, gru="AUGRU" + ).to(self.device) self.loss_fct = nn.BCEWithLogitsLoss() def forward(self, item_seq, pos_item): diff --git a/recbole/properties/model/SURGE.yaml b/recbole/properties/model/SURGE.yaml index 2cdaf0c46..30ab9a0c9 100644 --- a/recbole/properties/model/SURGE.yaml +++ b/recbole/properties/model/SURGE.yaml @@ -3,9 +3,9 @@ hidden_size: 32 # (int) the shape of hidden size used in RNN layer_sizes: [100, 64] # (list) layers' size of DNN. att_activation: relu # (str) activation function att_fcn_layer_sizes: [80, 40] # (list) layers' size of attention fcn layers -relative_threshold: 0.50 # (int) rate for keeping edges +relative_threshold: 0.50 # (float) rate for keeping edges pool_length: 30 # (int) keep length for graph pooling layers -max_seq_len: 50 # (int) the maximun number of records in the history sequence pool_layers: 1 # (int) the number of graph pooling layer attention_heads: 1 # (int) the number of attention head metric_heads: 1 # (int) the number of head for metric learning +dropout_prob: 0.0 # (float) The dropout rate \ No newline at end of file From 4682bc9497bc432b30c29377e2f337df4773fed1 Mon Sep 17 00:00:00 2001 From: wasser <1224413636@qq.com> Date: Sat, 1 Jul 2023 13:54:32 +0800 Subject: [PATCH 3/3] modify S^3rec by mistake last commit, restore it this time. --- .../user_guide/model/sequential/s3rec.rst | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/docs/source/user_guide/model/sequential/s3rec.rst b/docs/source/user_guide/model/sequential/s3rec.rst index ff3ddabd8..fedd9454b 100644 --- a/docs/source/user_guide/model/sequential/s3rec.rst +++ b/docs/source/user_guide/model/sequential/s3rec.rst @@ -6,13 +6,34 @@ Introduction `[paper] `_ -**Title:** Sequential Recommendation with Graph Neural Networks - -**Authors:** Jianxin Chang, Chen Gao, Yu Zheng, Yiqun Hui, Yanan Niu, Yang Song, Depeng Jin, Yong Li - -**Abstract:** Sequential recommendation aims to leverage users' historical behaviors to predict their next interaction. Existing works have not yet addressed two main challenges in sequential recommendation. First, user behaviors in their rich historical sequences are often implicit and noisy preference signals, they cannot sufficiently reflect users' actual preferences. In addition, users' dynamic preferences often change rapidly over time, and hence it is difficult to capture user patterns in their historical sequences. In this work, we propose a graph neural network model called SURGE (short forSeqUential Recommendation with Graph neural nEtworks) to address these two issues. Specifically, SURGE integrates different types of preferences in long-term user behaviors into clusters in the graph by re-constructing loose item sequences into tight item-item interest graphs based on metric learning. This helps explicitly distinguish users' core interests, by forming dense clusters in the interest graph. Then, we perform cluster-aware and query-aware graph convolutional propagation and graph pooling on the constructed graph. It dynamically fuses and extracts users' current activated core interests from noisy user behavior sequences. We conduct extensive experiments on both public and proprietary industrial datasets. Experimental results demonstrate significant performance gains of our proposed method compared to state-of-the-art methods. Further studies on sequence length confirm that our method can model long behavioral sequences effectively and efficiently. - -.. image:: ../../../asset/surge.png +**Title:** S3-Rec: Self-Supervised Learning for Sequential +Recommendation with Mutual Information Maximization + +**Authors:** Kun Zhou, Hui Wang, Wayne Xin Zhao, Yutao Zhu, Sirui Wang, Fuzheng Zhang, Zhongyuan Wang, Ji-Rong Wen + +**Abstract:** Recently, significant progress has been made in sequential recommendation with deep learning. Existing neural sequential recommendation models usually rely on the item prediction loss to learn +model parameters or data representations. However, the model +trained with this loss is prone to suffer from data sparsity problem. +Since it overemphasizes the final performance, the association or +fusion between context data and sequence data has not been well +captured and utilized for sequential recommendation. +To tackle this problem, we propose the model S3-Rec, which +stands for Self-Supervised learning for Sequential Recommendation, +based on the self-attentive neural architecture. The main idea of +our approach is to utilize the intrinsic data correlation to derive +self-supervision signals and enhance the data representations via +pre-training methods for improving sequential recommendation. +For our task, we devise four auxiliary self-supervised objectives +to learn the correlations among attribute, item, subsequence, and +sequence by utilizing the mutual information maximization (MIM) +principle. MIM provides a unified way to characterize the correlation between different types of data, which is particularly suitable +in our scenario. Extensive experiments conducted on six real-world +datasets demonstrate the superiority of our proposed method over +existing state-of-the-art methods, especially when only limited +training data is available. Besides, we extend our self-supervised +learning method to other recommendation models, which also improve their performance. + +.. image:: ../../../asset/s3rec.png :width: 600 :align: center