<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Data Augmentation Using Many-To-Many RNNs for Session-Aware Recommender Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martín Baigorria Alonso</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>martinbaigorria@gmail.com</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Figure 1: Multi-Destinations Trip Recommender on Booking.com</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>36</fpage>
      <lpage>40</lpage>
      <abstract>
        <p>The ACM WSDM WebTour 2021 Challenge organized by Booking.com focuses on applying Session-Aware recommender systems in the travel domain. Given a sequence of travel bookings in a user trip, we look to recommend the user's next destination. To handle the large dimensionality of the output's space, we propose a many-to-many RNN model, predicting the next destination chosen by the user at every sequence step as opposed to only the final one. We show how this is a computationally eficient alternative to doing data augmentation in a many-to-one RNN, where we consider every subsequence of a session starting from the first element. Our solution achieved 4th place in the final leaderboard, with an accuracy@4 of 0.5566.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>CCS CONCEPTS</title>
      <p>• Information systems → Recommender systems; •
Computing methodologies → Neural networks.</p>
    </sec>
    <sec id="sec-2">
      <title>INTRODUCTION</title>
      <p>
        Session-Aware recommender systems model the sequential decision
process of a user in the context of a session, also considering past
user actions or attributes [
        <xref ref-type="bibr" rid="ref16 ref23">16, 23</xref>
        ]. These systems have been essential
for the growth of many e-commerce and content companies that
need to organize a vast catalog of options into a relevant and easily
manageable subset by the user [
        <xref ref-type="bibr" rid="ref10 ref11 ref18 ref2 ref4">2, 4, 10, 11, 18</xref>
        ].
      </p>
      <p>
        The ACM WSDM WebTour 2021 Challenge organized by
Booking.com [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] proposes a Session-Aware recommender systems
problem that focuses on using a dataset of booking sequences and
contextual information to make the best possible recommendation for a
user in real-time. The quality of the recommendations is measured
using recall@4. Booking.com currently has a recommender system
for this problem in production (e.g., Figure 1), which enforces once
again the importance of the problem.
      </p>
      <p>
        Hidasi et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] has recently proposed the use of Recurrent Neural
Network (RNN) based models to overcome some of the dificulties
other factor models or neighborhood-based approaches can have
when modeling sparse sequential data. These models have been
∗Paper submitted as an independent researcher.
successful in other domains such as speech recognition [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and
natural language processing [
        <xref ref-type="bibr" rid="ref12 ref21 ref24">12, 21, 24</xref>
        ].
      </p>
      <p>This manuscript proposes an approach to handling a high
dimensional output space in RNN based Session-Aware recommender
systems. Our main contributions to this problem include extending
the many-to-one configuration typically-used RNN-based
recommender systems to the many-to-many configuration. Instead of
predicting the next booking by a user given a sequence of bookings,
we predict the next booking at every time step. We show how this
is a computationally eficient alternative to doing data
augmentation in a many-to-one RNN, where we consider every subsequence
of a session starting from the first element. Our empirical results
show how this model can outperform the many-to-one RNNs by
a significant margin. We also show how this extension biases the
learning problem towards shorter trips and propose a correction
by weighting the model’s loss function.</p>
      <p>We organize the rest of the paper as follows: In Section 2, we
ifrst give an overview of the challenge, the dataset provided by
Booking.com, and the evaluation metric to be optimized. We then
describe the many-to-many RNN architecture we used. We focus
on explaining our design choices’ motivations and the approach we
followed for training and inference (in Section 3). Lastly, in Section
4 we discuss both the implementation details we used to iterate
quickly and our experiments’ results. Our code and documentation
are available at
https://github.com/mbaigorria/booking-challenge2021-recsys.
2</p>
    </sec>
    <sec id="sec-3">
      <title>CHALLENGE OVERVIEW</title>
      <p>The ACM WSDM WebTour 2021 challenge proposed by
Booking.com is an instance of the multi-destinations trip planning
problem. Using an anonymized dataset of bookings, the goal is to
recommend the next possible destination to a user in the context of a
session.
2.1</p>
    </sec>
    <sec id="sec-4">
      <title>Data</title>
      <p>The dataset is composed of over a million anonymized reservations.
Each hotel reservation is a part of a user’s trip (identified by utrip_id)
and includes multiple features such as the city, country, check-in,
and checkout times. In the test set, these trips include at least four
consecutive reservations. An overview of the dataset statistics is
shown in Table 1.</p>
      <p>Type Users Sessions Cities Accomodations MinSessMioanx lenMgtehdian
Train 200,153 217,686 39,901 1,166,835 1 48 5
Test 68,502 70,662 21,305 378,667 4 44 5
Table 1: Descriptive statistics of the training and test sets</p>
      <p>For each session in the test set, the city and country of the last
booking are concealed. However, at inference time, other variables
such as the check-in day of the next booking are also available.
2.2</p>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <p>For every trip in the test set, the correct city to be recommended is
concealed. The metric used to evaluate the recommendations was
precision@4. We can understand this metric as the percentage of
times the correct city was in the top 4 recommendations for each
trip. For this problem, the metric is equivalent to the recall@4, since
there is only one relevant item to recommend per trip.
3</p>
    </sec>
    <sec id="sec-6">
      <title>APPROACH &amp; MOTIVATION</title>
      <p>We designed our approach to be sequence and distance aware.
Predicting the next destinations is a problem that must capture the
notion of physical distance between cities and the sequential nature
of the user’s decision-making process. We should also be able to
handle variable-length user trips. It is also worth remembering user
trips may be censored, as users do not necessarily book every trip
on the platform.</p>
      <p>Given some highly dimensional categorical variables such as
afiliate_id or city_id, we should also learn latent representations
(also known as embeddings) to explicitly avoid using one-hot
encodings. The large dimensionality of the output space can also be
challenging. In this specific case, there are 39,901 possible cities to
recommend. In the training set, only 52% of these cities appear as
the last element of a trip. If we are not careful, any softmax-based
model to predict the sequence’s final booking is unlikely to make
all cities predictable.</p>
      <p>In Section 3.1, we explain how we tackled these challenges, the
problems and trade-ofs we faced, and some interesting future
research directions.</p>
      <sec id="sec-6-1">
        <title>Decoder RNN</title>
      </sec>
      <sec id="sec-6-2">
        <title>Encoder</title>
        <p>concat</p>
      </sec>
      <sec id="sec-6-3">
        <title>Embedding</title>
      </sec>
      <sec id="sec-6-4">
        <title>Decoder RNN</title>
      </sec>
      <sec id="sec-6-5">
        <title>Encoder</title>
        <p>concat</p>
      </sec>
      <sec id="sec-6-6">
        <title>Embedding</title>
        <p>3.1</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Architecture</title>
      <p>Our neural network architecture can be divided into three
components. First, our model concatenates the embeddings of all features
for each user trip booking. These concatenated vectors are then
fed into a many-to-many RNN encoder, outputting the next city’s
probability mass function given the previous cities at every time
step. We finally recommend the top 4 cities in the probability mass
function of the final step. You can see our general architecture
diagram in Figure 2.
3.1.1</p>
      <p>Feature engineering and representation.</p>
      <p>Feature engineering. Using the provided dataset, we created 14
features by using the available information of both the current and
the next bookings. We were cautious to not introduce any type of
data leakage. The variables used were:
• City and country of the current booking.
• Country in which the current booking made.
• Country in which the next booking is made.
• Check-in day, month, and year of the current booking.
• Check-in day of the next booking.
• Duration of stay (days) of the current booking.
• Duration of stay (days) of the next booking.
• Device class of the current booking.
• Transition days between a checkout and the next check-in.
• Current and next booking afiliate_id (e.g. direct, third-party
referral, paid search engine, etc.).</p>
      <p>The transition days between bookings can potentially help us
capture censored bookings. The model can learn that an extended
transition time could mean the user booked on another platform,
depending on the city to be recommended.</p>
      <p>
        Feature representation. We embed all categorical and numerical
features. Numerical features have a low cardinality, so they should be
easily learned by the model. This allowed us not to have to worry
about feature scaling. The embedding dimension of all numerical
features is set to 10 and for categorical features to 25 except for
the device_id (5) and the city_id (128). To input these features into
our model, we then concatenate all the embeddings at each time
step. We also tried to merge all feature embeddings through
multiplication, but our model degraded. This is similar to the findings
by Mizrahi et al. for a similar dataset [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
3.1.2 Encoder. We use a 2 layered RNN encoder to represent the
context of the user at every sequence time step. In a nutshell, an
RNN can process a variable length sequence as follows:
ℎ = (ℎ−1,  ,  )
(1)
where g is a recurrent transition function parameterized by  (e.g.
GRU, LSTM), ℎ is the hidden state at time  and  is the input
vector at time  (the concatenated booking embeddings in our case).
From the hidden state at time  , we can not only get the hidden state
at  + 1, but can also use a decoder to generate a probability mass
function over cities in  +1. We experiment with both GRU and LSTM
encoders [
        <xref ref-type="bibr" rid="ref1 ref7">1, 7</xref>
        ]. As others have previously pointed out, we found
that GRUs tend to outperform LSTMs in some recommendation
settings [
        <xref ref-type="bibr" rid="ref14 ref5">5, 14</xref>
        ].
have information about the next booking. The last two datasets
concatenate both the training and the test set. To clarify,
concatenating both the training and the test sets provided in the challenge
is possible since the actual leaderboard targets are concealed.
      </p>
      <sec id="sec-7-1">
        <title>Train + Test</title>
      </sec>
      <sec id="sec-7-2">
        <title>Train + Test</title>
        <p>subsequences
Session
length</p>
        <p>Instead of using a many-to-one RNN, we decided to use a
manyto-many architecture to predict the next booked city at each time
step. This many-to-many architecture has the same number of
parameters as the many-to-one architecture. We apply a decoder
over all the hidden states for each sequence instead of just the
last one. This is identical to training a many-to-one architecture
with an augmented dataset containing all session subsequences
beginning from the first element in a single batch. However, for a
session of length , the many-to-one architecture must do  forward
passes with a number of sequential operations in O (2) to get all
the hidden states. On the other hand, the many-to-many model
computes the same hidden states but linearly in .</p>
        <p>
          We apply recurrent dropout with a probability of 0.1 to both of
the recurrent encoders. We also use dropout on the concatenated
input embeddings with a probability of 0.3. This is done not only to
regularize our model [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] but also to model the censorship in the
data by partially omitting some features in the diferent time steps.
3.1.3 Decoder. The decoder maps the hidden state ℎ of the RNN
encoder every time step  to a probability mass function over the
39,901 cities. We have experimented with the following two
parameterizations of the decoder:
(1) Feedforward Neural Network: This layer is
parameterized with an input size equal to the number of hidden units
in the RNN encoder and an output size equal to the number
of cities. We then apply a softmax to the final output at each
time step to get a probability mass function over cities.
(2) Tied weights between city embeddings and output
layer: We set the dimension of the encoder hidden state ℎ
to be equal to the dimension of the city embeddings. We
can then understand the encoder as learning a vector in a
similar manifold as the cities. We then calculate the product
between the hidden states and the transposed embedding
matrix of cities, applying a softmax after to get a probability
mass function over all cities at every time step. This is
equivalent to parameterizing the feedforward encoder mentioned
above with the weights of the city embedding matrix. Some
implementations of Word2Vec [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] use a similar trick, where
the input word and context word embeddings are
parameterized with the same weights. It has recently been shown that
this can also be interpreted as a form of data augmentation
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>We concluded that tying the city embeddings with the output
layer does not only lead to a faster training time because the
network has a lower number of parameters, but it also has a better
performance across diferent encoder configurations. You can see
Table 3 for more details.
3.2</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Loss function</title>
      <p>We calculate the cross-entropy loss of the probability mass function
over cities at every sequence step for each trip. Since we train the
model in batches, we then average all these cross-entropy losses
for every trip in a batch.</p>
      <p>We have validated that the longer a user trip is, the easier it
is for our model to predict the next booking. Table 2 shows the
sequence length distribution for diferent datasets once we remove
the last observation in every sequence. We do this since we do not
0.243
0.243
0.215
0.119
0.069
0.041
0.025
0.016
0.010
0.006
0.006
1,186,491
(&gt;4x more)
217,573</p>
      <p>When considering all subsequences, the session length
distribution becomes more concentrated on shorter sessions. This type
of data augmentation comes at a cost since the underlying data
generating process may be diferent for short and long trips.</p>
      <p>Shorter sequences will also dominate the gradient estimates for
each batch. We can correct this bias by weighting our loss
function’s cross-entropy outputs by the reverse cumulative frequency
of the dataset sequence length. This way, each length’s sequences
would have the same contribution to gradient updates as in the
non-augmented dataset. Our experiments in Table 3 show
weighting the loss function degraded the model’s performance. However,
this could be related to how we distributed the trips in a batch to
train the model. This will be further discussed in Section 4.2.</p>
      <p>It is also worth pointing out that augmenting the dataset
explicitly has the risk of data leakage, using a validation trip that
our model has already seen during training time. The
many-tomany model avoids this by design, processing all subsequences of
a session in one forward pass inside a single batch.
3.3</p>
    </sec>
    <sec id="sec-9">
      <title>Training and inference</title>
      <p>
        We trained a stratified ten-fold average cross-validation ensemble
using the Adam optimizer [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] with a learning rate of 10−3 and a
batch size of 256. We trained each model for 50 epochs and used
the recall@4 on the validation fold to pick the best model.
      </p>
      <p>We obtained some additional data by unifying the training and
the test set. We were careful to split the dataset into folds with a
similar sequence length distribution. We considered the last
probability mass function at inference time and extracted the top 4
recommendations with the maximum probability, precisely as in a
many-to-one model.</p>
    </sec>
    <sec id="sec-10">
      <title>4 EXPERIMENTAL RESULTS &amp; DISCUSSION</title>
      <p>In this section, we dive into the implementation details and
empirical evaluations of our proposed recommendation approach.</p>
    </sec>
    <sec id="sec-11">
      <title>4.1 Implementation</title>
      <p>
        Our model was implemented in PyTorch [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], using an NVIDIA®
Tesla® V100 GPU for training. The following approaches allowed
us to lower the training time per model to below 10 minutes. We
trained with a large batch size of 256, sorting the sequences by
length before batching to avoid zero padding. We did not explore the
hyperparameters we used thoroughly, from the embedding sizes to
the learning rate and batch size. We believe additional performance
gains are possible by optimizing these hyperparameters.
      </p>
      <p>We pre-loaded all batches in GPU, and when doing 10-fold
crossvalidation, we were careful to keep the folds as balanced as possible,
also shufling the batches at every epoch. Using a many-to-many
RNN architecture instead of doing explicit data augmentation
allowed us to process four times the amount of sequences at roughly
the same computational cost.</p>
      <p>Model Type
Many To Many
Many To One</p>
      <p>GRU
LSTM
GRU
LSTM</p>
      <p>True
False
True
False
True
False
True
False</p>
      <p>UNWEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED
UNWEIGHTED
UNWEIGHTED</p>
      <p>WEIGHTED</p>
    </sec>
    <sec id="sec-12">
      <title>4.2 Results</title>
      <p>Based on the implementation discussed in Section 4, we measured
the performance of our model’s diferent configurations by building
a new test set of 5,600 trips with 24,400 bookings from the
training set. This test set had a similar trip length distribution as the
challenge organizers’ original test set.</p>
      <p>Our results confirm GRUs seem to perform better than LSTMs
for this task. We can also see the benefit of using many-to-many
RNNs, which outperform many-to-one RNNs across all
configurations. Tying the encoder and decoder weights also led to higher
performance.</p>
      <p>It is natural to wonder why the weighted version of the model
did not perform as well as the unweighted version. We believe that
this is related to our implementation. When we sorted the trips to
avoid zero-padding, we biased each gradient update’s mean and
variance. Even if every batch has a fixed number of trips, this does
not imply that it has the same number of augmented sequences.
This can be solved using variable-sized batches, or avoiding sorting
altogether.</p>
    </sec>
    <sec id="sec-13">
      <title>5 CONCLUSIONS</title>
      <p>One of the main challenges in Session-Aware recommender
systems is efectively handling a large dimensional output space. This
paper described how a many-to-many RNN could outperform the
many-to-one configuration in such a setting. We showed how this
extension is equivalent to doing data augmentation in a
manyto-one RNN, with the pitfall of potentially biasing our gradient
estimates. We finally showed the advantages of tying the feature
embedding weights with the parameterization of the decoder.</p>
      <p>The efect of having an uneven sequence length distribution in
every batch and how to efectively handle the bias introduced by
considering all subsequences in the many-to-many architecture
can be an interesting future research direction. Attempting to do
multi-task learning at every time step by also predicting other
future attributes like the country might further boost our predictive
performance.</p>
      <p>
        In the dataset provided by Booking.com, around 12% of the users
had multiple bookings. We attempted to model this by
concatenating user trips with a separator token without success. This context
can potentially be modeled using Hierarchical RNNs, or
Transformer based architectures [
        <xref ref-type="bibr" rid="ref17 ref20 ref22">17, 20, 22</xref>
        ].
      </p>
    </sec>
    <sec id="sec-14">
      <title>ACKNOWLEDGMENTS</title>
      <p>We want to thank Sole Pera, Roberto Martín Pozzer, Leonardo
Baldassini, Fabricio Previgliano, and Charlie Giudice for their useful
comments on an earlier version of this work. We would also like
to thank the ACM WSDM WebTour 2021 workshop organizers for
the opportunity to participate in such an exciting challenge.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Kyunghyun</given-names>
            <surname>Cho</surname>
          </string-name>
          , Bart van Merriënboer,
          <string-name>
            <surname>Caglar Gulcehre</surname>
            , Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and
            <given-names>Yoshua</given-names>
          </string-name>
          <string-name>
            <surname>Bengio</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation</article-title>
          .
          <source>In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP)</source>
          .
          <article-title>Association for Computational Linguistics</article-title>
          , Doha, Qatar,
          <fpage>1724</fpage>
          -
          <lpage>1734</lpage>
          . https://doi.org/10.3115/v1/
          <fpage>D14</fpage>
          -1179
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Paul</given-names>
            <surname>Covington</surname>
          </string-name>
          , Jay Adams, and
          <string-name>
            <given-names>Emre</given-names>
            <surname>Sargin</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Deep Neural Networks for YouTube Recommendations</article-title>
          .
          <source>In Proceedings of the 10th ACM Conference on Recommender Systems</source>
          (Boston, Massachusetts, USA) (
          <source>RecSys '16)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>191</fpage>
          -
          <lpage>198</lpage>
          . https://doi.org/10.1145/ 2959100.2959190
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Dmitri</given-names>
            <surname>Goldenberg</surname>
          </string-name>
          , Kostia Kofman, Pavel Levin, Sarai Mizrachi, Maayan Kafry, and
          <string-name>
            <given-names>Guy</given-names>
            <surname>Nadav</surname>
          </string-name>
          .
          <year>2021</year>
          .
          <article-title>Booking.com WSDM WebTour 2021 Challenge</article-title>
          . https: //www.bookingchallenge.com/.
          <source>In ACM WSDM Workshop on Web Tourism (WSDM WebTour'21).</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Carlos</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Gomez-Uribe</surname>
            and
            <given-names>Neil</given-names>
          </string-name>
          <string-name>
            <surname>Hunt</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>The Netflix Recommender System: Algorithms, Business Value, and Innovation</article-title>
          .
          <source>ACM Trans. Manage. Inf. Syst. 6</source>
          ,
          <issue>4</issue>
          ,
          <string-name>
            <surname>Article 13</surname>
          </string-name>
          (
          <issue>Dec</issue>
          .
          <year>2016</year>
          ),
          <volume>19</volume>
          pages. https://doi.org/10.1145/2843948
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Balázs</given-names>
            <surname>Hidasi</surname>
          </string-name>
          , Alexandros Karatzoglou, Linas Baltrunas, and
          <string-name>
            <given-names>Domonkos</given-names>
            <surname>Tikk</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Session-based Recommendations with Recurrent Neural Networks</article-title>
          .
          <source>In 4th International Conference on Learning Representations, ICLR</source>
          <year>2016</year>
          , San Juan, Puerto Rico, May 2-
          <issue>4</issue>
          ,
          <year>2016</year>
          , Conference Track Proceedings, Yoshua Bengio and Yann LeCun (Eds.). http://arxiv.org/abs/1511.06939
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Hinton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Deng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jaitly</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Senior</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Vanhoucke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. N.</given-names>
            <surname>Sainath</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Kingsbury</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Deep Neural Networks for Acoustic Modeling in Speech Recognition: The Shared Views of Four Research Groups</article-title>
          .
          <source>IEEE Signal Processing Magazine</source>
          <volume>29</volume>
          ,
          <issue>6</issue>
          (
          <year>2012</year>
          ),
          <fpage>82</fpage>
          -
          <lpage>97</lpage>
          . https://doi.org/10.1109/MSP.
          <year>2012</year>
          .2205597
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Sepp</given-names>
            <surname>Hochreiter</surname>
          </string-name>
          and
          <string-name>
            <given-names>Jürgen</given-names>
            <surname>Schmidhuber</surname>
          </string-name>
          .
          <year>1997</year>
          .
          <article-title>Long Short-Term Memory</article-title>
          .
          <source>Neural Comput. 9</source>
          ,
          <issue>8</issue>
          (
          <year>1997</year>
          ),
          <fpage>1735</fpage>
          -
          <lpage>1780</lpage>
          . https://doi.org/10.1162/neco.
          <year>1997</year>
          .
          <volume>9</volume>
          .8.
          <fpage>1735</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Hakan</given-names>
            <surname>Inan</surname>
          </string-name>
          , Khashayar Khosravi, and Richard Socher.
          <year>2017</year>
          .
          <article-title>Tying Word Vectors and Word Classifiers: A Loss Framework for Language Modeling</article-title>
          .
          <source>In 5th International Conference on Learning Representations, ICLR</source>
          <year>2017</year>
          , Toulon, France,
          <source>April 24-26</source>
          ,
          <year>2017</year>
          , Conference Track Proceedings. OpenReview.net. https: //openreview.net/forum?id=r1aPbsFle
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Diederik</surname>
            <given-names>P</given-names>
          </string-name>
          <string-name>
            <surname>Kingma and Jimmy Lei Ba</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Adam: A method for stochastic gradient descent</article-title>
          .
          <source>In ICLR: International Conference on Learning Representations</source>
          .
          <volume>1</volume>
          -
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Greg</surname>
            <given-names>Linden</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Brent</given-names>
            <surname>Smith</surname>
          </string-name>
          , and Jeremy York.
          <year>2003</year>
          . Amazon.com Recommendations:
          <article-title>Item-to-Item Collaborative Filtering</article-title>
          .
          <source>IEEE Internet Computing</source>
          <volume>7</volume>
          ,
          <issue>1</issue>
          (
          <year>2003</year>
          ),
          <fpage>76</fpage>
          -
          <lpage>80</lpage>
          . https://doi.org/10.1109/MIC.
          <year>2003</year>
          .1167344
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>James</surname>
            <given-names>McInerney</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Benjamin</given-names>
            <surname>Lacker</surname>
          </string-name>
          , Samantha Hansen, Karl Higley, Hugues Bouchard, Alois Gruson, and
          <string-name>
            <given-names>Rishabh</given-names>
            <surname>Mehrotra</surname>
          </string-name>
          .
          <year>2018</year>
          . Explore, Exploit, and
          <article-title>Explain: Personalizing Explainable Recommendations with Bandits</article-title>
          .
          <source>In Proceedings of the 12th ACM Conference on Recommender Systems</source>
          (Vancouver, British Columbia, Canada) (
          <source>RecSys '18)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>31</fpage>
          -
          <lpage>39</lpage>
          . https://doi.org/10.1145/3240323.3240354
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Tomáš</surname>
            <given-names>Mikolov</given-names>
          </string-name>
          , Martin Karafiát, Lukáš Burget, Jan Černock y`, and
          <string-name>
            <given-names>Sanjeev</given-names>
            <surname>Khudanpur</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Recurrent neural network based language model</article-title>
          .
          <source>In Eleventh annual conference of the international speech communication association.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Tomás</surname>
            <given-names>Mikolov</given-names>
          </string-name>
          , Ilya Sutskever, Kai Chen, Gregory S. Corrado, and
          <string-name>
            <given-names>Jefrey</given-names>
            <surname>Dean</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Distributed Representations of Words and Phrases and their Compositionality</article-title>
          .
          <source>In Advances in Neural Information Processing Systems 26: 27th Annual Conference on Neural Information Processing Systems 2013. Proceedings of a meeting held December 5-8</source>
          ,
          <year>2013</year>
          ,
          <string-name>
            <given-names>Lake</given-names>
            <surname>Tahoe</surname>
          </string-name>
          , Nevada, United States,
          <string-name>
            <given-names>Christopher J. C.</given-names>
            <surname>Burges</surname>
          </string-name>
          , Léon Bottou, Zoubin Ghahramani, and
          <string-name>
            <surname>Kilian</surname>
            <given-names>Q.</given-names>
          </string-name>
          <string-name>
            <surname>Weinberger</surname>
          </string-name>
          (Eds.).
          <fpage>3111</fpage>
          -
          <lpage>3119</lpage>
          . https://proceedings.neurips.cc/paper/2013/hash/ 9aa42b31882ec039965f3c4923ce901b-Abstract.html
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Sarai</given-names>
            <surname>Mizrachi</surname>
          </string-name>
          and
          <string-name>
            <given-names>Pavel</given-names>
            <surname>Levin</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>Combining Context Features in SequenceAware Recommender Systems</article-title>
          . In
          <string-name>
            <surname>RecSys (Late-Breaking</surname>
            <given-names>Results</given-names>
          </string-name>
          ).
          <fpage>11</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Adam</surname>
            <given-names>Paszke</given-names>
          </string-name>
          , Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang,
          <string-name>
            <surname>Zachary</surname>
            <given-names>DeVito</given-names>
          </string-name>
          , Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and
          <string-name>
            <given-names>Soumith</given-names>
            <surname>Chintala</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>PyTorch: An Imperative Style, High-Performance Deep Learning Library</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          32,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wallach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Larochelle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Beygelzimer</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>d'Alché-</article-title>
          <string-name>
            <surname>Buc</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Fox</surname>
          </string-name>
          , and R. Garnett (Eds.). Curran Associates, Inc.,
          <fpage>8024</fpage>
          -
          <lpage>8035</lpage>
          . http://papers.neurips.cc/paper/9015-pytorchan
          <article-title>-imperative-style-high-performance-deep-learning-library</article-title>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Massimo</surname>
            <given-names>Quadrana</given-names>
          </string-name>
          , Paolo Cremonesi, and
          <string-name>
            <given-names>Dietmar</given-names>
            <surname>Jannach</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>SequenceAware Recommender Systems</article-title>
          . CoRR abs/
          <year>1802</year>
          .08452 (
          <year>2018</year>
          ). arXiv:
          <year>1802</year>
          .08452 http://arxiv.org/abs/
          <year>1802</year>
          .08452
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Massimo</surname>
            <given-names>Quadrana</given-names>
          </string-name>
          , Alexandros Karatzoglou, Balázs Hidasi, and
          <string-name>
            <given-names>Paolo</given-names>
            <surname>Cremonesi</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Personalizing Session-Based Recommendations with Hierarchical Recurrent Neural Networks</article-title>
          .
          <source>In Proceedings of the Eleventh ACM Conference on Recommender Systems (Como</source>
          , Italy) (
          <source>RecSys '17)</source>
          .
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <fpage>130</fpage>
          -
          <lpage>137</lpage>
          . https://doi.org/10.1145/3109859.3109896
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Paul</given-names>
            <surname>Resnick</surname>
          </string-name>
          , Neophytos Iacovou, Mitesh Suchak,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Bergstrom</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and John</given-names>
            <surname>Riedl</surname>
          </string-name>
          .
          <year>1994</year>
          .
          <article-title>GroupLens: An Open Architecture for Collaborative Filtering of Netnews</article-title>
          . ACM Press,
          <fpage>175</fpage>
          -
          <lpage>186</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Nitish</surname>
            <given-names>Srivastava</given-names>
          </string-name>
          , Geofrey Hinton, Alex Krizhevsky, Ilya Sutskever, and
          <string-name>
            <given-names>Ruslan</given-names>
            <surname>Salakhutdinov</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Dropout: a simple way to prevent neural networks from overfitting</article-title>
          .
          <source>The journal of machine learning research 15</source>
          ,
          <issue>1</issue>
          (
          <year>2014</year>
          ),
          <fpage>1929</fpage>
          -
          <lpage>1958</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Fei</surname>
            <given-names>Sun</given-names>
          </string-name>
          , Jun Liu, Jian Wu, Changhua Pei, Xiao Lin, Wenwu
          <string-name>
            <surname>Ou</surname>
            , and
            <given-names>Peng</given-names>
          </string-name>
          <string-name>
            <surname>Jiang</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer</article-title>
          .
          <source>In Proceedings of the 28th ACM international conference on information and knowledge management</source>
          .
          <volume>1441</volume>
          -
          <fpage>1450</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Ilya</surname>
            <given-names>Sutskever</given-names>
          </string-name>
          , Oriol Vinyals, and
          <string-name>
            <surname>Quoc</surname>
            <given-names>V</given-names>
          </string-name>
          <string-name>
            <surname>Le</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Sequence to sequence learning with neural networks</article-title>
          .
          <source>arXiv preprint arXiv:1409.3215</source>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Ashish</surname>
            <given-names>Vaswani</given-names>
          </string-name>
          , Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez,
          <article-title>Ł ukasz Kaiser, and</article-title>
          <string-name>
            <given-names>Illia</given-names>
            <surname>Polosukhin</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Attention is All you Need</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          , I. Guyon,
          <string-name>
            <given-names>U. V.</given-names>
            <surname>Luxburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bengio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wallach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fergus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vishwanathan</surname>
          </string-name>
          , and R.
          <source>Garnett (Eds.)</source>
          , Vol.
          <volume>30</volume>
          . Curran Associates, Inc. https://proceedings.neurips.cc/paper/2017/file/ 3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Shoujin</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Longbing Cao</surname>
            , and
            <given-names>Yan</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          .
          <year>2019</year>
          .
          <article-title>A Survey on Session-based Recommender Systems</article-title>
          . CoRR abs/
          <year>1902</year>
          .04864 (
          <year>2019</year>
          ). arXiv:
          <year>1902</year>
          .04864 http: //arxiv.org/abs/
          <year>1902</year>
          .04864
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Yonghui</surname>
            <given-names>Wu</given-names>
          </string-name>
          , Mike Schuster, Zhifeng Chen,
          <string-name>
            <surname>Quoc</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Le</surname>
            , Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao,
            <given-names>Qin</given-names>
          </string-name>
          <string-name>
            <surname>Gao</surname>
          </string-name>
          , Klaus Macherey, Jef Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Lukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil,
          <string-name>
            <surname>Wei</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Clif Young,
          <string-name>
            <given-names>Jason</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Jason</given-names>
            <surname>Riesa</surname>
          </string-name>
          , Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduf Hughes, and
          <string-name>
            <given-names>Jefrey</given-names>
            <surname>Dean</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation</article-title>
          .
          <source>CoRR abs/1609</source>
          .08144 (
          <year>2016</year>
          ). arXiv:
          <volume>1609</volume>
          .08144 http://arxiv. org/abs/1609.08144
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>