<!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>mendations in an Industrial e-Com merce Setting</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Liying Zheng</string-name>
          <email>liyzheng@ebay.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yingji Pan</string-name>
          <email>yingpan@ebay.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yuri M. Brovman</string-name>
          <email>ybrovman@ebay.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Figure 1: Screenshot of eBay View Item Page recommenda-</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <abstract>
        <p>Providing personalized recommendations based on the dynamic sequential behaviors of users plays an important role in e-commerce platforms since it can considerably improve a user's shopping experience. Previous works apply a unified model pipeline to build recommender systems, without considering the diferentiated behavior patterns and intrinsic shopping tendencies on diferent pages of an e-commerce website. In this paper, we focus on generating a personalized recommender system optimized to both the View Item Page and Homepage by elaborately designing strategies for data formulation and model structure. Our proposed model (PWPRec) consists of a causal transformer encoder together with a fusion module designed for diferent pages, built on the basis of the classical two-tower structure. This provides the capability to capture a balanced long-short interest or diverse multiple interests of a user during their shopping journey across multiple types of pages. We have conducted experiments both on in-house datasets as well as public datasets to validate the efectiveness of our model, all showing significant improvements on Recall@k metrics compared to the commonly applied sequential models of recent years. Additionally, we built a state-of-the-art deep learning based retrieval system utilizing real-time KNN search as well as near real-time (NRT) user embedding updates to reduce the recommendation delay to a few seconds. Our online A/B test results show a big advantage compared to the previous GRU-based sequential model in production, with a 38.5% increase in purchased items due to model improvements and 107% increase in purchased items due to the engineering innovations.</p>
      </abstract>
      <kwd-group>
        <kwd>sequential recommendation</kwd>
        <kwd>multi-interest</kwd>
        <kwd>attention network</kwd>
        <kwd>transformer encoder</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Recommender systems play a fundamental role in
ecommerce marketplaces, ofering personalized
recommendation products based on a user’s specific interests
which will largely improve a user’s shopping experience.</p>
      <p>In this work, we focus on ”user context based”
recommender systems that generate recommendations using a
user’s historical interactions as the main context. There
are several diferent landing pages which display
recommendations to the user on an e-commerce platform and
in this work we focus on two pages: View Item Page (VIP)
and Homepage (HP). For the VIP, users usually have a
specific shopping mission when they navigate a detailed
item page, thus they tend to spend more time comparing
similar products and trying to find the most appropriate
one. Figure 1 depicts an example of a VIP with a user
context based recommendations module based on users
recent views. For the HP, usually at the beginning of a
user’s shopping session, users tend to wander through the
whole page without a specific shopping mission. They
could be attracted by discounted or hot-sale products, or
diversified categories they have been consistently
internEvelop-O
Systems and User Modeling, jointly with the 16th ACM Conference on
2. We develop a novel model architecture by com- Most prior work generates a single embedding to
reprebining a causal transformer encoder with a long- sent a user, this is reasonable for recommendation pages
short or multi-interest fusion module in order to or placements with specified target items. But in some
generate user embedding(s). occasions such as Homepage recommendations we may
3. We deploy our recommender system to our pro- like to provide users with more diversified set of
recomduction industrial setting building a state-of-the- mendations reflecting the multiple interests of a user. It
art deep learning based retrieval system in the can be observed that the problem of how to capture the
process. multiple interests of a user a popular topic in recent years.</p>
      <p>Weston et al. [9] introduced a highly scalable method for</p>
      <p>The paper is organized in the following sections. Sec- learning a non-linear latent factorization to model the
tion 2 covers related approaches in literature to our multiple interests of a user. Li et al. [10] proposed a
multimethod. The main model architecture is discussed in interest extractor layer based on capsule network with
Section 3. The datasets and sampling strategies used for the dynamic routing mechanism. Cen et al. [11] explored
our ofline experiments are then discussed in Section 4. a self-attentive method for multi-interest extraction, and
An overview of our production engineering architecture utilized an aggregation module to balance accuracy and
as well as A/B tests is presented in Section 5. We conclude diversity.
our work in Section 6. In terms of engineering system architecture, there
are several works which describe large scale embedding
2. Related Works based retrieval systems. Pal et al. [12] describes an
industrial embeddings based retrieval system which uses
Adding personalization in recommender systems is a well HNSW model [13] for the approximate nearest neighbor
studied problem both in academia and in industrial ap- (ANN) component. There are several production systems
plications. Recently, deep neural networks have been that utilize a two tower model for search and retrieval,
adopted in personalized recommendations, with the abil- including in the social media space [14] as well as in
eity to build a more generalized model by capturing com- commerce space [15, 16]. We will now discuss the details
plex content-based features, which can also serve well in of our model architecture.
cold-start situations or volatile situations. To generate
personalized recommendations, the sequential behaviors 3. The PWPRec Model
of users are efectively exploited by applying diferent
sequential encoder networks. Many works apply Recurrent In our application scenario, we find that a user’s
distribuNeural Networks (RNN) for sequential recommendation tion of recently viewed items difers for diferent pages.
and obtain promising results, among those Hidasi et al. For VIP, users usually have a definite shopping purpose
[1] proposed an GRU-based network to model the se- and are thus more likely to click on items related to their
quential behaviors of users, and adopts the last output most recently viewed items. However, for Homepage,
as the user embedding (known as GRU4Rec), Hidasi and users have a less focused shopping purpose and may click
Karatzoglou [2] proposed a top-k gain ranking loss func- on diferent categories of items. Thus we build our model
tion used in RNNs for session-based recommendations, in consideration of diferent pages and placements, which
Li et al. [3] was also based on RNN network, but pro- can better capture and understand the diferent behavior
posed a way to balance a user’s local interest and global intentions of users.
interest (known as NARM). Besides RNN network, the
recently well-known self-attention mechanism [4] for
sequential modeling has also been commonly applied 3.1. Page-Wise Sequential Behavior
in recommendations, Kang and McAuley [5] proposed Analysis
a self-attention based network to capture the sequential Before introducing our detailed model, we first present
behaviors of users, and the encoded value of last item an analysis of a user’s shopping behavior as a function
in the sequence is regarded as the ultimate user vector of time. In our sequential modeling approach, every
(known as SASRec), Sun et al. [6] adopted the Bidirec- training example is composed of a positive target clicked
tional Encoder Representations from Transformers which item, several negative items a user did not click on in the
trained a bidirectional model to predict the masked items impression, and a series of user historical items.
in the sequence. Also, there are some methods based We build up a histogram of the overlap between the
on graph neural networks proposed for sequential rec- category of the target item and historical items for all
ommendation, Wu et al. [7] modeled session sequences users in the dataset. Figure 2 demonstrates the diference
as graph-structured data to take item transitions into between the VIP and HP distributions. The horizontal
account, Xu et al. [8] proposed a graph contextualized axis represents the number of hours between the target
self-attention model for session-based recommendation.
clicked item and a historical item, while the vertical axis
represents the category overlap between the target and
historical items. It can be seen from the graph that for
the View Item Page (orange in Figure 2), about 80% of
users are also viewing the same category in the first hour
before, 5% are viewing same category in the second hour
before, indicating that users are focused on the same
category of most recent items. While for Homepage, the
curve is more gradual with only 30% overlap in the first
hour before, indicating that on homepage users show
interest in categories they interacted with in a longer
period, thus target item category may correlate to more
diverse historical categories.
at the same time. The overall architecture of PWPRec is
shown in Figure 3. Following our previous work [17] we
keep using the same structure for the item tower, and
focus on optimizing the user tower. The original user tower
adopted the recurrent neural network as the base encoder
of user’s historical events and an average fusion strategy
to generate the final user embedding. Here we optimize
the user encoder network by two architectural modules:
1) a sequential encoder to better capture the ordered
historical events, and 2) a fusion network to better adapt to
pages with diferent historical item distributions. In the
next sections, we will delve deep into these modules in
detail.</p>
      <sec id="sec-1-1">
        <title>3.3. Causal Transformer Encoder</title>
        <p>The transformer network and self-attention mechanism
described in [4] are widely applied in NLP related tasks,
and achieved state-of-the-art performance. Here we
adopt the idea of transformer and self-attention to
function as the sequential encoder, and we have made some
modifications in order to capture the order information
which is of vital importance to recommendation
scenarios.</p>
        <sec id="sec-1-1-1">
          <title>3.3.1. Relative Positional Embedding</title>
          <p>(1)
(2)
(3)</p>
          <p>Based on the above analysis, we decide to adopt
different data formulation strategies and diferent model
structures for diferent pages.
• For the View Item Page, considering users
usually have specific shopping missions and less
interests in other categories, we organize training
data in a ”session-based way” with most recent
past behaviors in a shorter period. The ultimate
output will be a singular item set showing the
user’s most recent interest.
• For the Homepage, users may show interest in
a diverse set of categories that they interacted
with, even several days before. In this case, we
organize the training data in a ”user-based way”
incorporating more days and more past behaviors.
The ultimate output will be multiple item sets
showing the user’s multiple interests through the
long shopping journey.
(</p>
          <p>) =  − 
where  is the position of the target item and  is the
position of items prior to the target item. The relative
position is then encoded into embedding P , and the
ifnal input to the transformer encoder is calculated as:
IN
= ITEM
+ P
where ITEM is the original item embedding, and the
ifnal input vector IN is a vector addition of the item
embedding with the positional embedding P .</p>
        </sec>
        <sec id="sec-1-1-2">
          <title>3.3.2. Causal Attention Mask</title>
          <p>The vanilla transformer encoder attends to any positions
in a sequence by self-attention and multi-head
mechanism, with each head output being formulated as:</p>
        </sec>
      </sec>
      <sec id="sec-1-2">
        <title>3.2. Model structure</title>
        <p>Our proposed approach for personalized
recommendations is based on a two-tower deep learning model
structure to generate user embedding(s) and item embeddings
 (</p>
        <p>head =  (
Q, K, V) =  (</p>
        <p>QWiQ, KWiK, VWiV)
QKT
√
)V
long-short fusion generating a comprehensive user embedding or multi-interest fusion generating multiple user embeddings.
where Q, K, V are the packed matrices of queries, keys
interest applied for the VIP, named as Long-Short
Fuand values,  is the dimension of queries and keys and
sion; the other for generating multiple interests for the
in self-attention mechanism [4].</p>
        <p>Q
Wi , WiK</p>
        <p>, WiV are the parameter matrices, as described</p>
        <p>For the sequential recommendation scenario, a causal
mask [18] needs to be performed to guarantee that
postclicked items cannot be seen when predicting previous
items, otherwise this may lead to data leakage.
Therefore, we apply a lower triangle attention mask matrix (as
shown in the left part of Figure</p>
        <p>3) to guarantee the
causality between items, and in this way the self-attention can
be formulated as :
HP, named as Multi-Interest Fusion.</p>
        <sec id="sec-1-2-1">
          <title>3.4.1. Long-Short Fusion Strategy</title>
          <p>For generating one single interest, we would like to adopt
a network architecture which combines a user’s
shortterm and long-term interests. The short-term takes the
last position output of the transformer encoder,
indicating the most recent preferences; while the long-term
takes outputs of all the positions into consideration,
indicating their global preferences. We involve the attention
mechanism to calculate a weighted average of all the
outputs to form a long-term interest. which can be
inter</p>
        </sec>
      </sec>
      <sec id="sec-1-3">
        <title>3.4. Fusion Module</title>
        <p>In our industrial recommendation scenario, we design
two fusion networks to handle the diferent
recommendation targets, one for generating a comprehensive single
represents item embeddings of all the positions, A1
transinto a latent space, A2 plays the same role
, and  is the sigmoid function.</p>
        <p>After learning a long-term and a short-term
embedding, the last important step is to integrate them
appropriately. Here we chose the gated way to learn contribution
coeficients of long-term and short-term embeddings,
which is illustrated in Figure 4, and can be calculated as:
U
 =  (
= (1 − ) ×</p>
        <sec id="sec-1-3-1">
          <title>3.4.2. Multi-Interest Fusion Strategy</title>
          <p>A =  ((ℎ(</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>4. Ofline Datasets &amp; Experiments</title>
      <p>In this section, we describe the dataset we utilized to
train and validate our PWPRec model. We have adopted
diferent data formulation strategies for the View Item
Page and Homepage respectively. We also conducted
experiments on both our eBay dataset and public dataset
to validate the efectiveness of our model.
retailer. In this dataset, only item id and category
Statistics
is provided to generate an item embedding.</p>
      <p>In order to better validate the efectiveness of
sequential encoders, we filter out very short sessions with
sequence length of less than 4. The data statistics of the</p>
      <sec id="sec-2-1">
        <title>4.2. Dataset for Homepage</title>
        <p>For the Homepage, we organize the data in a user-based
way within a longer time window and thus much longer
user’s sequential length is obtained. Here we choose
two user-based datasets in our experiments, one is
collected from our eBay in-house data, the other is the public
Taobao dataset [22].</p>
        <p>• eBay (user-based) dataset</p>
        <p>This dataset is also derived from our real world
eBay production trafic containing clicked items
on Homepage as the target label, and all the items
that a user have viewed within 30 days before the
clicked item as the sequential historical events.
• Taobao dataset</p>
        <p>This dataset contains the sequential behavior of
users collected from Taobao, which consists of 1
million users shopping behaviors within 10 days.
We follow the same training/validation data
splitting methods as in [11].</p>
        <p>The statistics of the above datasets are shown in Table 2.
Also, we build up a histogram of the overlap between the
category of the target item and historical items for the
Taobao dataset in Figure 6, which shows a gradual curve
more similar to the eBay HP than VIP. So we adopted
the Taobao dataset to validate the efectiveness of the
multiple interests model targeted for Homepage.</p>
      </sec>
      <sec id="sec-2-2">
        <title>4.3. Model Training &amp; Validation</title>
        <p>For model training and validation, diferent negative
sampling strategies and loss calculations are adopted for View
Item Page and Homepage.
where v ∈ ℝ is a  -dimensional vector for the
embedding of user  , v</p>
        <p>∈ ℝ is a  -dimensional vector for
the embedding of positive item,  is the afinity function
between user and item (we adopt the inner product result
as the afinity score), and</p>
        <p>∪ 
target positive and sampled negative items.
is the union set of the</p>
        <sec id="sec-2-2-1">
          <title>4.3.2. Homepage</title>
          <p>As for the Homepage, data samples are grouped in the
user-based way with longer sequential behaviors within a
30 days time window, batch negative sampling is adopted
to select 1000 samples both in training and validation
entropy with inverse temperature, 2) adopt a
attentionphase. Here the loss calculation logic for training and val- based weighted sum mechanism to generate the
ultiidation process is tackled diferently for accelerating the
mate embedding. We call our baseline model
GRU4Recconvergence of multiple user embeddings model struc- Enhanced. For our model PWPRec proposed in this
ture.</p>
          <p>• Training phase. As we have the positive item
for the target label information, we can use the
positive item embedding to choose one final user
embedding from multiple embeddings as the one
to calculate the training loss.</p>
          <p>v = V [ (</p>
          <p>V v )]
where v ∈ ℝ is the final user embedding we
select to calculate the loss in equation (8), V is
the multiple embeddings genenerated for the user,
and v</p>
          <p>∈ ℝ is the positive item embedding.
• Validation phase. Diferent from the training
phase, label information like positive item
cannot be used in metrics calculation, otherwise this
would result in label leakage. Here we applied a
simplified trick to fastern the procedure, which
paper, we add the sufix (LS) to represent Long-Short
fusion strategy.</p>
          <p>We see from Table 3 that on both of the datasets we
have depicted in Section 4.1, our model PWPRec(LS)
achieved the best performance. Our model gains 10+%
increase on Recall@1 compared to the baseline model
GRU4Rec-Enhanced. We notice that on the YooChoose
dataset, the recall values are lower, possibly because of
(9) the smaller size of training set as well as the lack of item
features, like titles or aspects. However, our model has
a bigger advantage on this dataset even for recall with
larger Ks, which implies that even in a situation where
less features are available, our model can perform better
and have better generalization capabilities.</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>4.4.2. Homepage Experiments</title>
          <p>The experimental results can be found in Table 4. For our
model PWPRec proposed in this paper, we add the sufix
is selecting one user embedding having the maxi- (MI) to represent Multi-Interest fusion strategy. Here
mum summarized afinity score with the
candidate item set as the final user embedding for loss
and metrics calculation.</p>
          <p>v = V [ (
∑
∈</p>
          <p>V v )]
where v ∈ ℝ is the final user embedding we
select to calculate model metrics, V is the multiple</p>
          <p>embeddings genenerated for the user, and v ∈ ℝ
is the item embedding contained in the candidate
item set for validation.</p>
          <p>we chose the model ComiRec described in [11] as the
baseline, and also the well-known multi-interest model
MIND [10] for comparison. We see from Table 4 that
our model PWPRec(MI), with the transformer encoder
(10) and multi-interest fusion layer, outperforms the other
two models by 20+% on Recall@1 metrics, and a high
10+% increase for recall with larger K. Similar to
previous experiments, our model gains a more significant
improvement on the public datasets which lacks item
feature information.</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>4.4. Ofline Experimental Results</title>
        <p>several  = 1, 5, 10, 20 . For P impressions, the metric is
defined as:
1
 =1 # total relevant items
(11)
We then explain the experimental results conducted on
diferent pages with diferent datasets.</p>
        <sec id="sec-2-3-1">
          <title>4.4.1. View Item Page Experiments</title>
          <p>The experimental results can be found in Table 3. We
select three other models for comparison: GRU4Rec [1],
NARM [3], SASRec [5]. Our baseline model , described
in [17], is very similar to GRU4Rec but has the
following enhancements: 1) changes the loss function to cross</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>5. Production Engineering</title>
    </sec>
    <sec id="sec-4">
      <title>Architecture</title>
      <p>Details of the continuous improvements we have made
to the engineering architecture of this system can be
seen in our eBay Tech Blog post [23]. Most of the
modeling innovations described in Sections 3.2 and 4 were
A/B tested against the baseline version of the system
described in our previous work [17]. In our previous
approach, most of the model calculations were performed
ofline with daily batch jobs to generate user/item
embeddings and perform KNN for every user embedding
searching over the space of item embeddings. There is a
clear disadvantage, namely the delay between ofline
calculation of predictions (performed daily) and displaying
the recommendations to the user could lead to stale
outdated recommendations and a degraded user experience.</p>
      <p>To overcome this issue and reduce this delay to a few
seconds, we built a state-of-the-art deep learning based
retrieval system utilizing real-time KNN search as well
as near real-time (NRT) user embedding updates, details
displayed in Figure 7.</p>
      <p>To enable fast real-time KNN search for vector em- As a result of this system architecture, the delay
bebeddings, we have built an in-house KNN microservice tween generating personalized recommendations based
based on HNSW [13] method, where a user embedding on the user’s session data and displaying them is reduced
is sent as an input, an ANN search is performed in the to a few seconds. This system is in production serving
item embedding space, and then item recommendations high volume trafic to a diverse set of users. Next we will
discuss our online A/B testing results which support our
ofline model evaluations.</p>
      <sec id="sec-4-1">
        <title>5.1. Online Evaluation</title>
        <p>In order to understand how our models perform online,
we deployed them to serve real world users and
production trafic. We compare results respectively for View
Item Page and Homepage, and the NRT architecture as
well.</p>
        <sec id="sec-4-1-1">
          <title>5.1.1. View Item Page A/B Test</title>
          <p>We performed A/B testing on the View Item Page on the
desktop platform comparing our PWPRec(LS) model to
our previous baseline model [17] named as
GRU4RecEnhanced. Our model outperformed the previous
baseline with a 38.53% increase on purchases. This implies
our model with transformer encoder better captures the
sequential behavior of a user, and the Long-Short fusion
mechanism is also a good choice to automatically
balance the weights captured from long interests and short
interests, better than the previous weighted sum fusion
way.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6. Summary and future work</title>
      <p>In this paper, we presented an approach for generating
5.1.2. NRT A/B Test personalized recommendations by considering diferent
It was interesting to see the impact of the reduced delay user behavior patterns on diferent pages in an
indusbetween recommendation generation and serving on the trial e-commerce setting. Diferent strategies on data
operational metrics of the system as we deployed the formulation and fusion layer adoption have been
elaboNRT engineering architecture to production. The pur- rately designed to capture a user’s sequential behavior
chases were improved by 107% compared to the previous on the View Item Page and the Homepage. The
overofline system. This makes sense from a user experience all structure is based on a two-tower model aiming to
perspective, as the user shopping journey evolves in real learn embeddings of items and users in a shared vector
time, the model embedding is updated in real time, the space. To model the user’s sequential behavior, we adopt
recommendation relevance quality is improved, and op- a causal transformer encoder together with Long-Short
erations metrics are better. [17] fusion or Multi-Interest fusion determined by page
settings on the user tower side. This approach captures the
5.1.3. Homepage Multi-Interest User Scrapes user’s long-short interests and multiple interests well.
In order to verify the efectiveness of our model, we
We are in the process of serving our multi-interest model have conducted experiments on our in-house datasets
online for A/B test. However, we wanted to share some and commonly adopted public datasets as well. All
exmulti-interest user recommendations from production en- periments showed significant improvements over the
vironment to demonstrate the performance of the model. baseline approaches in comparison. Furthermore, a
perWe can see the generated recommendations in Figure 8 sonalized recommender system with NRT engineering
which depicts 3 distinct sets of recommended items based architecture has been launched to production and is now
on the multiple interests of a user from related browsing serving recommendations at scale to eBay buyers. This
history. Based on the user’s past viewed items shown on system reacts quickly based on instant user interactions
the first line, our model captures three interests for this and generates large improvements in the buyer shopping
user, which accurately reveals the intrinsically diverse set experience. Online A/B tests have also been conducted
of interests of a user throughout their shopping journey. for our proposed model as well as the NRT architecture,
which also show increases on downstream business
metrics, such as purchases.</p>
      <p>We are actively working to enhance the performance
and extend the application scenario of our model as well</p>
    </sec>
    <sec id="sec-6">
      <title>7. Acknowledgements</title>
      <p>We wanted to thank the generous support of Sathish
Veeraraghavan, Bing Zhou, Arman Uygur, Marshall
Wu, Sriganesh Madhvanath, Santosh Shahane, Leonard
Dahlmann, Menghan Wang, and Jef Kahn for the help
with the production system as well as review comments
during the manuscript preparation.
as engineering system. One direction of future work is
to incorporate more rich user features (e.g. demographic
features like buyer age and behavioral features like
purchase quantity) as well as item features (e.g. item price,
popularity). Another direction is to add a deep learning
ranking model after the multiple recommendation sets
have been retrieved, in order to further optimize for
operational metrics, like engagement or conversion. Last but
not least, besides the current View Item Page and
Homepage we are serving, we plan to extend our personalized
recommneder system to more scenarios like infinite feed
as well as checkout success placements, in order to give
users more personalized and diverse choice with NRT
experiences in their shopping journey.
[21] Yoochoose, Recsys challenge 2015, 2015. URL: https:
//recsys.acm.org/recsys15/challenge/.
[22] Alimama, User behavior data from taobao for
recommendation, 2018. URL: https://tianchi.aliyun.c
om/dataset/dataDetail?dataId=649&amp;userId=1&amp;lan
g=en-us.
[23] Y. M. Brovman, Building a deep learning based
retrieval system for personalized recommendations,
2022. URL: https://tech.ebayinc.com/engineering/b
uilding-a-deep-learning-based-retrieval-system-f
or-personalized-recommendations/.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>