SlideShare a Scribd company logo
1 of 71
Download to read offline
Personalized Recommendations and
Search with Retrieval and Ranking at
scale on Hopsworks
MLOps World 2022
Jim Dowling, CEO, Hopsworks
https://www.kaggle.com/competitions/h-and-m-personalized-fashion-recommendations
H&M Personalized Fashion Recommendations
Personalized product recommendations based on previous purchases
● articles.csv - detailed metadata for each article_id available for purchase
● customers.csv - metadata for each customer_id
● transactions_train.csv - purchases for each customer with date
Predict the article_ids each customer will purchase.
Recommender systems are information filtering systems that personalize
the information coming to a user based on her historical interests, the
relevance of the information, and the current context (e.g., what is trending).
Some paradigms for recommender systems:
● Collaborative filtering
● Content-based filtering
● Social and demographic recommenders
● Contextual recommendation algorithms
Recommender Systems
Facebook posts
Batch
Collaborative filtering
Content-based
Netflix movies
Batch
Collaborative filtering
Content-based
Alibaba products
Real-time
Item-to-Item
TikTok
Real-time
Retrieval and Ranking
Freshest features
Spotify Weekly
Batch
Collaborative filtering
Content-based
MovieLens
Batch
Collaborative filtering
Content-based
Youtube clips
Real-time
Retrieval and Ranking
U2I and I2I
“It's digital crack”, Andrej Karpathy
Analytical/Batch Recommendation Systems
Database or
KV-Store
Batch Program
(with model) Model Registry
download model
Operational
Services
Reports
consume predictions
store predictions
read batch data for scoring
Feature
Store
Analytical (Batch) Recommendation Service
Facebook posts
Batch
Collaborative filtering
Content-based
Netflix movies
Batch
Collaborative filtering
Content-based
Alibaba products
Real-time
Item-to-Item
TikTok
Real-time
Retrieval and Ranking
Freshest features
Spotify Weekly
Batch
Collaborative filtering
Content-based
MovieLens
Batch
Collaborative filtering
Content-based
Youtube clips
Real-time
Retrieval and Ranking
U2I and I2I
“It's digital crack”, Andrej Karpathy
Operational/Online Recommendation Systems
Business
Value
Analytical ML
Operational ML
with historical data
Operational ML
with real-time data
BI:
DESCRIPTIVE & DIAGNOSTIC
ANALYTICS
AI:
PREDICTIVE & PRESCRIPTIVE
ANALYTICS
Artisanal ML
(Laptop ML)
Structured
Data
‘Big’ Data
Increase Business Value with more Real-Time Recommendations
User History & Context
Item 2
millions
or
billions
Hundreds Dozens
Candidate
Generation
Ranking
Item1
Item 3
Item 4
Item 5
Item
Corpus
Online Recommendations: Retrieval and Ranking Architecture
3-Stage Retrieval, Filtering, Ranking
Personalized Music
Discovery Playlist:
● Retrieval: Nearest neighbor search in
item embedding space
● Filtering: Remove tracks user has
heard before (e.g. w/ Bloom Filters)
● Ranking: Re-use embedding space
distance from and tade off between
score, similarity and BPm to reduce
jarring track transitions
Social Media Feed:
● Retrieval: Random walks on social
graph to find new items in user’s
network
● Filtering: Remove posts from muted or
blocked users
● Ranking: Predict user’s likelihood of
interacting with posts, but “twiddle” the
list so adjacent posts are from different
authors
Examples by Nvidia - https://www.youtube.com/watch?v=5qjiY-kLwFY
3-Stage Retrieval, Filtering, Ranking
eCommerce “Add to Cart”:
● Retrieval: Look up items commonly
co-purchased with cart contents
● Filtering: Remove candidate items that are
currently out of stock (or already in your
cart)
● Ranking: Predict how likely to buy each
candidate item the user is, but reorder to
maximize expected revenue
Social Media Feed:
● Retrieval: Many candidate sources for the
various rows/shelves/banners
● Filtering: Remove items that aren’t
licensed for streaming in user’s country
● Ranking: Predict user’s stream time for
each item, but arrange a set of shelves
that trade off between predicted relevance
and matching the genre distribution of the
user’s previous consumption
Examples by Nvidia - https://www.youtube.com/watch?v=5qjiY-kLwFY
[Image credit: https://eugeneyan.com/writing/system-design-for-discovery/ ]
Online and Offline Infrastructure for Retrieval/Ranking
(Two-Tower) Operational Recommendation Service
Feature Store
history+context
Model Serving
Model
Deployments
user-embedding/rank
Recommend me stuff!
Data Sources
Model Registry
feature
pipelines
deploy
Vector Database
Embeddings
similarity search
User/query embedding
model - user history and
context.
Item embedding model
Built Approx Nearest
Neighbor (ANN) Index with
items and item embedding
model.
User/Query and Item
Embeddings
With the ranking model,
score all the candidate
items with both user and
item features, ensuring,
candidate diversity.
Ranking
Remove candidate items
for various reasons:
• underage user
• item sold out
• item bought
before
• item not available
in user’s region
Filtering
Retrieve candidate items
based on the user
embedding from the ANN
Index
Retrieval
Create Embeddings - then Retrieval, Filtering, Ranking
Retrieval and Ranking for Fashion Recommendations
User/query
Embedding
Retrieve closest
candidates with
similarity search
Filter & Enrich
with features for
candidates
Add customer
prior purchases,
age, location, etc
Ranking
Model
Ranked
candidates
Candidate 1
Candidate 2
Candidate N
less than 100ms
User/query
Embedding
Retrieve closest
candidates with
similarity search
Filter & Enrich
with features for
candidates
Add customer
prior purchases,
age, location, etc
Ranking
Model
Hopsworks
Feature
Store
KServe
OpenSearch
(FAISS)
KServe
Ranked
candidates
Candidate 1
Candidate 2
Candidate N
Online Infrastructure
Online Infrastructure for Retrieval and Ranking
Hopsworks
Feature
Store
Hopsworks
Feature
Store
KServe
OpenSearch
(FAISS)
KServe
transactions
Feature Engineering
User Data
Articles Data
User/query and Item
Embedding Models
Model Training
Compute embeddings
for items/users and
add to ANN index
Spark App
Model Training
Ranking Model
deploy
deploy
build index
Offline Infrastructure for Ranking and Retrieval
01.
Embeddings
● An embedding is a mapping of a discrete — categorical — variable to a
vector of continuous numbers: [1.119, 4.341, ….,1.334]
● Create a denser representation of the categories and maintain some of
the implicit relationship information between items
Word2Vec Embeddings
Image Embeddings enable Similarity Search
Embeddings
Can a “user query” find “items”
with similarity search?
Yes, by mapping the “user query” embedding
into the “item” embedding space.
Representation learning for retrieval usually involves supervised learning with labeled
or pseudo-labeled data from user-item interactions.
Two-Tower Embedding Model
[Image Credit: Roman Grebennikov, Findify - https://www.youtube.com/watch?v=BskjQPkrYec ]
Feature Logging - Generate Training Data for Embedding Models
Log user-item interactions as training data for our two-tower model.
H&M Website
Search
Item 1
Item 2
Item 3
Item 4
Purchase 3
Click 2
Click 3
Score: 0
Item 1
Score: 1
Item 2
Score: 5
Item 3
Score: 0
Item 4
Features
Features
Features
Features
How do we create Training Data for our Embedding Models?
Implicit Feedback vs Explicit Feedback
Imagine the user sees a feed and selects the fifth item in
the list. This shows us that the first four items should
have been ranked lower in the list. We can train our ranker
model with this sort of data.
You can also train a model with explicit feedback by
introducing a user feedback/rating system in your
application.
Negative examples should also be used when training
- items labeled "irrelevant" to a given query.
Item Embedding
Trainable (neural network) Encoder
Static item features:
name, description, tags
language, location
genre, price, etc
(From Database/DW)
The Item Embedding Model
User/Query Embedding
Trainable (neural network) Encoder
User profile features:
languages, location
preferences, age, etc
(From Database/DW)
User Search History
User Click History
(From Event Logs or Data Lake)
The User/Query Embedding Model
Sigmoid, Dot Product, …
User and Item Embeddings
are the same length Item Embedding
Trainable (neural network) Encoder
Static item
features
User/Query Embedding
Trainable (neural network) Encoder
Static user
features
User Session
History
User Click
History
TensorFlow has the tensorflow-recommenders library to train two-tower embedding models.
Our training data, transactions.csv, consists of customer and article pairs. You need to provide only positive pairs, where the
customer purchased an article. Training produces 2 models: an item encoder model and a user encoder model.
The dot product of a user embedding and item
embedding pair that interacted is high and the
dot product of a non interacting pair is close to 0
Training the Query and Item Embedding Models with Two Towers
[Source: https://cloud.google.com/blog/products/ai-machine-learning/vertex-matching-engine-blazing-fast-and-massively-scalable-nearest-neighbor-search ]
Create embeddings for Items, insert them into embedding space
(aka build an Approximate Nearest Neighbor (ANN) Index)
02.
Vector Database -
Similarity Search with
Embeddings
A vector database (or embedding store): a
database for durably storing embeddings and
supporting similarity search (nearest neighbor
search)
Approximate nearest neighbor (ANN) algorithms
provide fast nearest neighbor search, O(log(n))
● Facebook’s FAISS uses Hierarchical
Navigable Small World Graphs (HNSW)
● Google ScaNN
HNSW Graph Search
Vector Database
PUT my-knn-index-1
{
"settings": {
"index": {
"knn": true,
"knn.space_type": "cosinesimil"
}
},
"mappings": {
"properties": {
"my_vector1": {
"type": "knn_vector",
"dimension": 2
},
"my_vector2": {
"type": "knn_vector",
"dimension": 4 }
]}}
https://opensearch.org/docs/latest/search-plugins/knn
Create a k-NN nearest neighbour Index in OpenSearch. In the following
slides, we will add entries to the index. Then query it with approximate
nearest neighbor search. Then query it with additional filters.
OpenSearch k-NN: Create Index
POST _bulk
{ "index": { "_index": "my-knn-index-1", "_id": "1" } }
{ "my_vector1": [1.5, 2.5], "price": 12.2 }
{ "index": { "_index": "my-knn-index-1", "_id": "2" } }
{ "my_vector1": [2.5, 3.5], "price": 7.1 }
{ "index": { "_index": "my-knn-index-1", "_id": "3" } }
{ "my_vector1": [3.5, 4.5], "price": 12.9 }
{ "index": { "_index": "my-knn-index-1", "_id": "4" } }
{ "my_vector1": [5.5, 6.5], "price": 1.2 }
{ "index": { "_index": "my-knn-index-1", "_id": "5" } }
{ "my_vector1": [4.5, 5.5], "price": 3.7 }
{ "index": { "_index": "my-knn-index-1", "_id": "6" } }
{ "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 10.3 }
{ "index": { "_index": "my-knn-index-1", "_id": "7" } }
{ "my_vector2": [2.5, 3.5, 5.6, 6.7], "price": 5.5 }
{ "index": { "_index": "my-knn-index-1", "_id": "8" } }
{ "my_vector2": [4.5, 5.5, 6.7, 3.7], "price": 4.4 }
{ "index": { "_index": "my-knn-index-1", "_id": "9" } }
{ "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 8.9 }
Note that each entry has a unique “_id” and an additional “price” attribute.
my_vector1 has an embedding of length 2.
my_vector2 has an embedding of length 4.
OpenSearch k-NN: Insert Embeddings into Index
GET my-knn-index-1/_search
{
"size": 2,
"query": {
"knn": {
"my_vector2": {
"vector": [2, 3, 5, 6],
"k": 2
}
}
}
}
k is the number of neighbors the search of each graph will return.
The size option indicates how many results the query actually
returns.
OpenSearch k-NN: Similarity search using Index
GET my-knn-index-1/_search
{
"size": 2,
"query": {
"knn": {
"my_vector2": {
"vector": [2, 3, 5, 6],
"k": 2
}
}
},
"post_filter": {
"range": {
"price": {
"gte": 5,
"lte": 10
}
}
}
}
We are filtering results so that we only get candidates with a price
between 5-10.
OpenSearch k-NN: Similarity search using Index with filtering
03.
Ranking and Refining
Recommenations
Each instance (user-item pair)
is represented with a list of
features, retrieved from the
feature store.
Training data is the user-item
features and the label is the
relevance ratings.
Ranking models should be fast
- low latency to rank 100s of
candidates, so decision trees
are popular.
What does a Ranking Model do?
The ranking stage should consider additional criteria or constraints.
If the system always recommend items that are "closest" to the user/query embedding, the
candidates tend to be very similar to each other.
Re-rank items based on genre or other metadata to ensure diversity.
When ranking, we can include features that were not feasible during candidate generation.
Use the feature store to retrieve features such as user persona (e.g., demographics, price propensity),
item metadata (e.g., attributes, engagement statistics), cross features (e.g., interaction between
each feature pair), and media embeddings.
Building a ranking model with TF Recommenders: https://www.youtube.com/watch?v=ZkwJo5HRjiQ
https://www.tensorflow.org/recommenders/examples/basic_ranking
Ranking Models - reordering and the feature store
Tags and Metadata - Refine your Recommendations/Search
Feature helps generate candidates in ANN search
Static/Dynamic Filter Candidates.
Book 1
Book 2
Book N
Sci-Fi
Drama
Non-Fiction
Vector DB
Ranking Stage
OR
Static attributes. Filter ANN results in OpenSearch
Book 1 Feature1 Feature2 … TAG
Tags, Metadata - Refining your Search by Filtering
04.
Offline Infrastructure for
Ranking and Retrieval
Offline Infrastructure for Ranking and Retrieval
Hopsworks
Feature
Store
KServe
OpenSearch
(FAISS)
KServe
Kafka
transactions
Feature Engineering
(Spark/Python/SQL)
Data Warehouse user,
item profiles
Historical transactions
User/query and Item
Embedding Models
Model Training
Compute embeddings
for items/users and
add to ANN index
Spark App
Model Training
Ranking Model
deploy
deploy
build index
Data
Engineer
Data
Scientist
ML
Engineer
Data Dump Model
Enterprise
Data
Model
Serving
What is a Feature Store for Machine Learning?
models need operational data
Feature Store
Data
Engineer
Data Scientist
ML
Engineer
Enterprise
Data
Model
Serving
No Feature Store
What are the System Properties of Recommendation Systems?
Availability
(uptime)
Latency
(response time)
Feature
Freshness
(age)
Throughput
(speed)
Apart from the accuracy of your ML models, you have to worry about…
Why should I care about Performance and Availability ?
Availability: Embedded in-memory DB crashes on Black
Friday at e-retailer, produces random recommendations
Freshness: Video streaming service switches from
Spark Streaming to Flink, improving feature
freshness from 10s down to 2s, improving the
engagement rate.
Latency: A real-time recommendation service for a
music streaming company returns 250 candidates
during retrieval, then it needs 250 lookups from the
feature store in < 30ms for ranking.
Throughput: Online retail store produces increasing
number of sales, needs to switch feature pipeline
from Pandas to PySpark.
Throughput: Online retail store produces increasing
number of sales, needs to switch feature pipeline
from Pandas to PySpark.
Why should I care about Performance and Availability ?
Availability: Embedded in-memory DB crashes on Black
Friday at e-retailer, produces random recommendations.
Freshness: Video streaming service switches from
Spark Streaming to Flink, improving feature
freshness from 10s down to 2s, improving the
engagement rate.
Latency: A real-time recommendation service for a
music streaming company returns 250 candidates
during retrieval, then it needs 250 lookups from the
feature store in < 30ms for ranking.
Throughput: Online retail store produces increasing
number of sales, needs to switch feature pipeline
from Pandas to PySpark.
Why should I care about Performance and Availability ?
Freshness: Video streaming service switches from
Spark Streaming to Flink, improving feature
freshness from 10s down to 2s, improving the
engagement rate.
Latency: A real-time recommendation service for a
music streaming company returns 250 candidates
during retrieval, then it needs 250 lookups from the
feature store in < 30ms for ranking.
Availability: Embedded in-memory DB crashes on Black
Friday at e-retailer, produces random recommendations.
Availability: Embedded in-memory DB crashes on Black
Friday at e-retailer, produces random recommendations.
Why should I care about Performance and Availability ?
Freshness: Video streaming service switches from
Spark Streaming to Flink, improving feature
freshness from 10s down to 2s, improving the
engagement rate.
Latency: A real-time recommendation service for a
music streaming company returns 250 candidates
during retrieval, then it needs 250 lookups from the
feature store in < 30ms for ranking.
Throughput: Online retail store produces increasing
number of sales, needs to switch feature pipeline
from Pandas to PySpark.
Feature Store
HOPSWORKS
Feature Pipeline
Inference
Data
Training Data /
Batch Data
Write API, Online/Offline Read APIs
Online API
Offline API
Online
Offline
External
Training Data
Model Registry
& Deployment
Projects
Feature Groups
Feature
Views
Online
Offline
External
Spark
Spark
Streaming
Flink
Feature Engineering: APIs & Connectors
Hopsworks
APIs
Frameworks
Pandas
Feature Engineering: SQL & Connectors
Online
Offline
External
Training Data
Model Registry
& Deployment
Projects
Feature Groups
Feature
Views
Online
Offline
External
Redshift
(Amazon)
Snowflake
Amazon S3
ADLS
(Azure)
JDBC
(MySQL,
Postgres,
MongoDB)
HopsFS
Hopsworks
Connectors
Storage Connectors
Feature Groups
Web logs
Customers
Articles
Transactions
Data
Warehouse
Feature Views
Ranking
Retrieval
Feature Store
Online API
Offline API
Serve
Train
Write to Feature Groups, Read from Feature Views
< 1ms KV lookup
>100M KV Lookups/sec
>99.999% availability
>1 PB storage
RonDB - Hopsworks’ Online Feature Store
https://www.rondb.com
Feature Views
Ranking
Retrieval
Feature Store
Training Data
Training Models
customers.csv articles.csv retrieval.csv
Ranking
User/Query
Embedding
Item
Embedding
Model Registry
Models
Feature Store
HOPSWORKS
Feature Pipeline
Precomputed Features
(Context, Historical)
Retrieval and
Ranking
Application
(Click or Search)
Online API
Feature Store used for Online for Retrieval and Ranking
05.
Hopsworks = Feature Store
+ VectorDB + Model Serving
Feature Store
HOPSWORKS
Feature Pipeline
Precomputed Features
(Context, Historical)
Training Data
Retrieval and
Ranking
Application
(Click or Search)
Online API
Offline API
Hopsworks for Retrieval and Ranking
Model
Registry
OpenSearch
ANN
KServe
(Model Serving)
a. User Query
1. Enrich Query with
User History, Profile, and
Context
Hopsworks
Feature Store
OpenSearch
2. Compute
User/Query
Embedding
3. Retrieve Candidates
4. Enrich Candidates
using Feature Store
5. Score Candidates
with Ranking Model
KServe
Query,
Req-ID
Ranked
Results
<ReqID,
outcome>
Hopsworks Ranking and Retrieval Service
Feature Logging
b. Item Selected
06.
Case Study:
Spotify Music Search
Goal:
Support Spotify Personalized Search in a Retrieval
and Ranking Architecture.
Benchmark the highest throughput, lowest latency
key-value stores to identify one that could scale to
handle millions of concurrent lookups per second
on Spotify’s workloads.
Systems:
Aerospike and RonDB were identified as the only
systems capable of meeting the triple goals of
High Throughput, Low Latency, and High
Availability. Other databases such as Redis,
Cassandra, BigTable were not considered for
availability or latency or throughput reasons.
Feature Store
Ranking
and
Retrieval
Lookup Features
Feature Values
Feature Pipelines
Benchmarking Online Feature Stores
Hardware Benchmark Setup on GCP: RonDB (NDB) vs Aerospike. The Java Client
nodes are the clients performing the reads/writes on the Data Nodes. When the
cluster is provisioned with 8 RonDB (NDB) data nodes, it has 832GB of usable
in-memory storage, when a replication factor of 2 is used.
Benchmark Setup
Throughput: higher is better. Each feature store operation was a batch of 250 key-value lookups, meaning with 8
clients for a 8-node RonDB cluster, there are >2m lookups/sec.
Average throughput of the clients in both 6 and 8 node setup of RonDB
and Aerospike
N. of clients
RonDB 8 Nodes
RonDB 6 Nodes
Aerospike 6 nodes
Aerospike 8 nodes
1250
1000
750
500
250
1 2 4 8
Ops/Sec
Benchmark Results - Throughput
Latency: lower is better. Each feature store operation was a batch of 250 key-value lookups. So, for RonDB, the P99 when
performing 250 primary operations in a single transaction is under 30ms.
Average latency of the clients in both 6 node setup of RonDB and Aerospike
N. of clients
RonDB P75
RonDB P99 Aerospike P99
Aerospike P75
50
40
30
20
10
0
1 2 4 8
Latency
(ms)
Benchmark Results - Latency
RonDB 35% Higher Throughput
RonDB 30% Better Latency
Based on Public Report from Spotify
comparing Aerospike and RonDB (NDB Cluster) as Feature Stores
http://kth.diva-portal.org/smash/get/diva2:1556387/FULLTEXT01.pdf
Benchmark Results
07.
Ranking and Retrieval
with Hopsworks
H&M Recommendation Service
Today’s Workshop: Retrieval and Ranking Platform in Python
create feature groups for articles, customers, transactions
● articles.csv
● customers.csv
● transactions_train.csv
create feature view for retrieval model (training data)
build opensearch KNN index with embeddings for all articles
train two-tower model - user and article embedding models
create feature view for retrieval model (training data)
train ranking model
deploy models to KServe + glue code for Hopsworks, OpenSearch
Feature Groups
transactions.csv
Customers
Articles
Transactions
Feature Views
retrieval
Feature Store
Transaction = (customer_id, article_id, timestamp, channel)
1_feature_engineering.ipynb 2a_create_retrieval_feature_views.ipynb
articles.csv
customers.csv
OpenSearch kNN
ANN Index
Python Program
with Item
Embedding Model
Item Corpus
Encode all items
Insert all pairs
(ID, embedding)
3_build_index.ipynb
Model Registry
Customer Embedding Model
Article Embedding Model
TensorFlow
Two-Tower
Training
Training Data
Register User & Item
Embedding Models
2b_train_retrieval_model.ipynb
4a_create_ranking_feature_views.ipynb 4b_train_ranking_model.ipynb
Feature Groups
Customers
Articles
Transactions
Feature Views
Ranking
Feature Store
Transaction = (customer_id, article_id, timestamp, channel)
Model Registry
Ranking Model
TensorFlow Program
with Item
Embedding Model
Register Ranking Model
Training
Data
Logs: Inputs, Predictions
predict
(https)
Predictor
devices
Kafka
Istio
Feature Store
Transformer
Metrics
5_create_deployment.ipynb
Transformer
Predictor
Ranking Model
User/Query Model
1
2
3
4 2, 4
5
6
7
08.
Where next for
Retrieval and Ranking
Architectures?
more data -> better models -> more users -> more data->
…
Feature
Store
Recommende
r
(Website, etc)
Models &
Embedding
s
Model
Training
Feature
Pipeline &
Monitoring
Feature
Store
Enterprise
Data
logs
Online API Offline API
Build out your Data-for-AI Flywheel
https://ai.facebook.com/blog/powered-by-ai-instagrams-explore-recommender-system/
DSLs for Recommendation Systems
Democratize the development of Recommendation Systems
Hopsworks is the platform for ML collaboration,
powered by the leading
Python-centric Enterprise Feature Store.
London
IDEALondon,
69 Wilson St.
London
UK
Silicon Valley
470 Ramona St
Palo Alto
California
USA
⭐ Stockholm
Hopsworks AB
Medborgarplatsen 25
118 72 Stockholm
Sweden
www.hopsworks.ai
Open &
modular
Efficiency
At Scale
Compliance
Governance

More Related Content

What's hot

Engagement, metrics and "recommenders"
Engagement, metrics and "recommenders"Engagement, metrics and "recommenders"
Engagement, metrics and "recommenders"Mounia Lalmas-Roelleke
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Xavier Amatriain
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introductionLiang Xiang
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineNYC Predictive Analytics
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringViet-Trung TRAN
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?blueace
 
Session-based recommendations with recurrent neural networks
Session-based recommendations with recurrent neural networksSession-based recommendations with recurrent neural networks
Session-based recommendations with recurrent neural networksZimin Park
 
A Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at NetflixA Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at NetflixJaya Kawale
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender SystemsT212
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experienceMounia Lalmas-Roelleke
 
Recommendation at Netflix Scale
Recommendation at Netflix ScaleRecommendation at Netflix Scale
Recommendation at Netflix ScaleJustin Basilico
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at NetflixJustin Basilico
 
Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019Faisal Siddiqi
 
Knowledge Graph Embeddings for Recommender Systems
Knowledge Graph Embeddings for Recommender SystemsKnowledge Graph Embeddings for Recommender Systems
Knowledge Graph Embeddings for Recommender SystemsEnrico Palumbo
 
Past, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectivePast, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectiveJustin Basilico
 
Recommendation system
Recommendation system Recommendation system
Recommendation system Vikrant Arya
 
Vector databases and neural search
Vector databases and neural searchVector databases and neural search
Vector databases and neural searchDmitry Kan
 

What's hot (20)

Engagement, metrics and "recommenders"
Engagement, metrics and "recommenders"Engagement, metrics and "recommenders"
Engagement, metrics and "recommenders"
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Session-Based Recommender Systems
Session-Based Recommender SystemsSession-Based Recommender Systems
Session-Based Recommender Systems
 
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
 
Recommender system introduction
Recommender system   introductionRecommender system   introduction
Recommender system introduction
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engine
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filtering
 
How to build a recommender system?
How to build a recommender system?How to build a recommender system?
How to build a recommender system?
 
Session-based recommendations with recurrent neural networks
Session-based recommendations with recurrent neural networksSession-based recommendations with recurrent neural networks
Session-based recommendations with recurrent neural networks
 
A Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at NetflixA Multi-Armed Bandit Framework For Recommendations at Netflix
A Multi-Armed Bandit Framework For Recommendations at Netflix
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Personalizing the listening experience
Personalizing the listening experiencePersonalizing the listening experience
Personalizing the listening experience
 
Recommendation at Netflix Scale
Recommendation at Netflix ScaleRecommendation at Netflix Scale
Recommendation at Netflix Scale
 
Artwork Personalization at Netflix
Artwork Personalization at NetflixArtwork Personalization at Netflix
Artwork Personalization at Netflix
 
Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019Netflix talk at ML Platform meetup Sep 2019
Netflix talk at ML Platform meetup Sep 2019
 
Knowledge Graph Embeddings for Recommender Systems
Knowledge Graph Embeddings for Recommender SystemsKnowledge Graph Embeddings for Recommender Systems
Knowledge Graph Embeddings for Recommender Systems
 
Past, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry PerspectivePast, Present & Future of Recommender Systems: An Industry Perspective
Past, Present & Future of Recommender Systems: An Industry Perspective
 
Recommendation system
Recommendation system Recommendation system
Recommendation system
 
Vector databases and neural search
Vector databases and neural searchVector databases and neural search
Vector databases and neural search
 

Similar to Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022

Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks AlbaTorrado
 
Recsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakRecsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakDeepak Agarwal
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Shrutika Oswal
 
Architecting AI Solutions in Azure for Business
Architecting AI Solutions in Azure for BusinessArchitecting AI Solutions in Azure for Business
Architecting AI Solutions in Azure for BusinessIvo Andreev
 
Webinar: Increase Conversion With Better Search
Webinar: Increase Conversion With Better SearchWebinar: Increase Conversion With Better Search
Webinar: Increase Conversion With Better SearchLucidworks
 
Connecting social media to e commerce
Connecting social media to e commerceConnecting social media to e commerce
Connecting social media to e commercecloudtechnologies42
 
In search of better deep Recommender Systems
In search of better deep Recommender Systems In search of better deep Recommender Systems
In search of better deep Recommender Systems SK Reddy
 
How recommender systems work
How recommender systems work How recommender systems work
How recommender systems work SK Reddy
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learningRajesh Muppalla
 
Boosting Personalization In SaaS Using Machine Learning.pdf
Boosting Personalization  In SaaS Using Machine Learning.pdfBoosting Personalization  In SaaS Using Machine Learning.pdf
Boosting Personalization In SaaS Using Machine Learning.pdfReza Rahimi
 
Recommendation engines
Recommendation enginesRecommendation engines
Recommendation enginesGeorgian Micsa
 
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE
 
Digital Trails Dave King 1 5 10 Part 2 D3
Digital Trails   Dave King   1 5 10   Part 2   D3Digital Trails   Dave King   1 5 10   Part 2   D3
Digital Trails Dave King 1 5 10 Part 2 D3Dave King
 
Context Mining and Integration in Web Predictive Analytics
Context Mining and Integration in Web Predictive AnalyticsContext Mining and Integration in Web Predictive Analytics
Context Mining and Integration in Web Predictive AnalyticsJulia Kiseleva
 
Boosting Personalization In SaaS Using Machine Learning
Boosting Personalization  In SaaS Using Machine LearningBoosting Personalization  In SaaS Using Machine Learning
Boosting Personalization In SaaS Using Machine LearningGlorium Tech
 

Similar to Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022 (20)

meetup-talk
meetup-talkmeetup-talk
meetup-talk
 
Recsys 2016
Recsys 2016Recsys 2016
Recsys 2016
 
Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks
 
Recsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and DeepakRecsys2016 Tutorial by Xavier and Deepak
Recsys2016 Tutorial by Xavier and Deepak
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence
 
Architecting AI Solutions in Azure for Business
Architecting AI Solutions in Azure for BusinessArchitecting AI Solutions in Azure for Business
Architecting AI Solutions in Azure for Business
 
Webinar: Increase Conversion With Better Search
Webinar: Increase Conversion With Better SearchWebinar: Increase Conversion With Better Search
Webinar: Increase Conversion With Better Search
 
Connecting social media to e commerce
Connecting social media to e commerceConnecting social media to e commerce
Connecting social media to e commerce
 
In search of better deep Recommender Systems
In search of better deep Recommender Systems In search of better deep Recommender Systems
In search of better deep Recommender Systems
 
How recommender systems work
How recommender systems work How recommender systems work
How recommender systems work
 
Continuous delivery for machine learning
Continuous delivery for machine learningContinuous delivery for machine learning
Continuous delivery for machine learning
 
Boosting Personalization In SaaS Using Machine Learning.pdf
Boosting Personalization  In SaaS Using Machine Learning.pdfBoosting Personalization  In SaaS Using Machine Learning.pdf
Boosting Personalization In SaaS Using Machine Learning.pdf
 
29.4 mb
29.4 mb29.4 mb
29.4 mb
 
29.4 Mb
29.4 Mb29.4 Mb
29.4 Mb
 
Recommendation engines
Recommendation enginesRecommendation engines
Recommendation engines
 
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
 
Digital Trails Dave King 1 5 10 Part 2 D3
Digital Trails   Dave King   1 5 10   Part 2   D3Digital Trails   Dave King   1 5 10   Part 2   D3
Digital Trails Dave King 1 5 10 Part 2 D3
 
Context Mining and Integration in Web Predictive Analytics
Context Mining and Integration in Web Predictive AnalyticsContext Mining and Integration in Web Predictive Analytics
Context Mining and Integration in Web Predictive Analytics
 
Maruti gollapudi cv
Maruti gollapudi cvMaruti gollapudi cv
Maruti gollapudi cv
 
Boosting Personalization In SaaS Using Machine Learning
Boosting Personalization  In SaaS Using Machine LearningBoosting Personalization  In SaaS Using Machine Learning
Boosting Personalization In SaaS Using Machine Learning
 

More from Jim Dowling

ARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdfARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdfJim Dowling
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfJim Dowling
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleJim Dowling
 
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfPyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfJim Dowling
 
_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdf_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdfJim Dowling
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Jim Dowling
 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupJim Dowling
 
Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021Jim Dowling
 
Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21Jim Dowling
 
Hopsworks Feature Store 2.0 a new paradigm
Hopsworks Feature Store  2.0   a new paradigmHopsworks Feature Store  2.0   a new paradigm
Hopsworks Feature Store 2.0 a new paradigmJim Dowling
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Jim Dowling
 
GANs for Anti Money Laundering
GANs for Anti Money LaunderingGANs for Anti Money Laundering
GANs for Anti Money LaunderingJim Dowling
 
Berlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowlingBerlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowlingJim Dowling
 
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala UniversityInvited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala UniversityJim Dowling
 
Hopsworks data engineering melbourne april 2020
Hopsworks   data engineering melbourne april 2020Hopsworks   data engineering melbourne april 2020
Hopsworks data engineering melbourne april 2020Jim Dowling
 
The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines Jim Dowling
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyJim Dowling
 
Hopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, SunnyvaleHopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, SunnyvaleJim Dowling
 
Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019 Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019 Jim Dowling
 
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019Jim Dowling
 

More from Jim Dowling (20)

ARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdfARVC and flecainide case report[EI] Jim.docx.pdf
ARVC and flecainide case report[EI] Jim.docx.pdf
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
 
Serverless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData SeattleServerless ML Workshop with Hopsworks at PyData Seattle
Serverless ML Workshop with Hopsworks at PyData Seattle
 
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdfPyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
PyCon Sweden 2022 - Dowling - Serverless ML with Hopsworks.pdf
 
_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdf_Python Ireland Meetup - Serverless ML - Dowling.pdf
_Python Ireland Meetup - Serverless ML - Dowling.pdf
 
Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning Building Hopsworks, a cloud-native managed feature store for machine learning
Building Hopsworks, a cloud-native managed feature store for machine learning
 
Ml ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science MeetupMl ops and the feature store with hopsworks, DC Data Science Meetup
Ml ops and the feature store with hopsworks, DC Data Science Meetup
 
Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021Hops fs huawei internal conference july 2021
Hops fs huawei internal conference july 2021
 
Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21Hopsworks MLOps World talk june 21
Hopsworks MLOps World talk june 21
 
Hopsworks Feature Store 2.0 a new paradigm
Hopsworks Feature Store  2.0   a new paradigmHopsworks Feature Store  2.0   a new paradigm
Hopsworks Feature Store 2.0 a new paradigm
 
Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks Metadata and Provenance for ML Pipelines with Hopsworks
Metadata and Provenance for ML Pipelines with Hopsworks
 
GANs for Anti Money Laundering
GANs for Anti Money LaunderingGANs for Anti Money Laundering
GANs for Anti Money Laundering
 
Berlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowlingBerlin buzzwords 2020-feature-store-dowling
Berlin buzzwords 2020-feature-store-dowling
 
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala UniversityInvited Lecture on GPUs and Distributed Deep Learning at Uppsala University
Invited Lecture on GPUs and Distributed Deep Learning at Uppsala University
 
Hopsworks data engineering melbourne april 2020
Hopsworks   data engineering melbourne april 2020Hopsworks   data engineering melbourne april 2020
Hopsworks data engineering melbourne april 2020
 
The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines The Bitter Lesson of ML Pipelines
The Bitter Lesson of ML Pipelines
 
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and MaggyAsynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
Asynchronous Hyperparameter Search with Spark on Hopsworks and Maggy
 
Hopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, SunnyvaleHopsworks at Google AI Huddle, Sunnyvale
Hopsworks at Google AI Huddle, Sunnyvale
 
Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019 Hopsworks in the cloud Berlin Buzzwords 2019
Hopsworks in the cloud Berlin Buzzwords 2019
 
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
HopsML Meetup talk on Hopsworks + ROCm/AMD June 2019
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022

  • 1. Personalized Recommendations and Search with Retrieval and Ranking at scale on Hopsworks MLOps World 2022 Jim Dowling, CEO, Hopsworks
  • 2. https://www.kaggle.com/competitions/h-and-m-personalized-fashion-recommendations H&M Personalized Fashion Recommendations Personalized product recommendations based on previous purchases ● articles.csv - detailed metadata for each article_id available for purchase ● customers.csv - metadata for each customer_id ● transactions_train.csv - purchases for each customer with date Predict the article_ids each customer will purchase.
  • 3. Recommender systems are information filtering systems that personalize the information coming to a user based on her historical interests, the relevance of the information, and the current context (e.g., what is trending). Some paradigms for recommender systems: ● Collaborative filtering ● Content-based filtering ● Social and demographic recommenders ● Contextual recommendation algorithms Recommender Systems
  • 4. Facebook posts Batch Collaborative filtering Content-based Netflix movies Batch Collaborative filtering Content-based Alibaba products Real-time Item-to-Item TikTok Real-time Retrieval and Ranking Freshest features Spotify Weekly Batch Collaborative filtering Content-based MovieLens Batch Collaborative filtering Content-based Youtube clips Real-time Retrieval and Ranking U2I and I2I “It's digital crack”, Andrej Karpathy Analytical/Batch Recommendation Systems
  • 5. Database or KV-Store Batch Program (with model) Model Registry download model Operational Services Reports consume predictions store predictions read batch data for scoring Feature Store Analytical (Batch) Recommendation Service
  • 6. Facebook posts Batch Collaborative filtering Content-based Netflix movies Batch Collaborative filtering Content-based Alibaba products Real-time Item-to-Item TikTok Real-time Retrieval and Ranking Freshest features Spotify Weekly Batch Collaborative filtering Content-based MovieLens Batch Collaborative filtering Content-based Youtube clips Real-time Retrieval and Ranking U2I and I2I “It's digital crack”, Andrej Karpathy Operational/Online Recommendation Systems
  • 7. Business Value Analytical ML Operational ML with historical data Operational ML with real-time data BI: DESCRIPTIVE & DIAGNOSTIC ANALYTICS AI: PREDICTIVE & PRESCRIPTIVE ANALYTICS Artisanal ML (Laptop ML) Structured Data ‘Big’ Data Increase Business Value with more Real-Time Recommendations
  • 8. User History & Context Item 2 millions or billions Hundreds Dozens Candidate Generation Ranking Item1 Item 3 Item 4 Item 5 Item Corpus Online Recommendations: Retrieval and Ranking Architecture
  • 9. 3-Stage Retrieval, Filtering, Ranking Personalized Music Discovery Playlist: ● Retrieval: Nearest neighbor search in item embedding space ● Filtering: Remove tracks user has heard before (e.g. w/ Bloom Filters) ● Ranking: Re-use embedding space distance from and tade off between score, similarity and BPm to reduce jarring track transitions Social Media Feed: ● Retrieval: Random walks on social graph to find new items in user’s network ● Filtering: Remove posts from muted or blocked users ● Ranking: Predict user’s likelihood of interacting with posts, but “twiddle” the list so adjacent posts are from different authors Examples by Nvidia - https://www.youtube.com/watch?v=5qjiY-kLwFY
  • 10. 3-Stage Retrieval, Filtering, Ranking eCommerce “Add to Cart”: ● Retrieval: Look up items commonly co-purchased with cart contents ● Filtering: Remove candidate items that are currently out of stock (or already in your cart) ● Ranking: Predict how likely to buy each candidate item the user is, but reorder to maximize expected revenue Social Media Feed: ● Retrieval: Many candidate sources for the various rows/shelves/banners ● Filtering: Remove items that aren’t licensed for streaming in user’s country ● Ranking: Predict user’s stream time for each item, but arrange a set of shelves that trade off between predicted relevance and matching the genre distribution of the user’s previous consumption Examples by Nvidia - https://www.youtube.com/watch?v=5qjiY-kLwFY
  • 11. [Image credit: https://eugeneyan.com/writing/system-design-for-discovery/ ] Online and Offline Infrastructure for Retrieval/Ranking
  • 12. (Two-Tower) Operational Recommendation Service Feature Store history+context Model Serving Model Deployments user-embedding/rank Recommend me stuff! Data Sources Model Registry feature pipelines deploy Vector Database Embeddings similarity search
  • 13. User/query embedding model - user history and context. Item embedding model Built Approx Nearest Neighbor (ANN) Index with items and item embedding model. User/Query and Item Embeddings With the ranking model, score all the candidate items with both user and item features, ensuring, candidate diversity. Ranking Remove candidate items for various reasons: • underage user • item sold out • item bought before • item not available in user’s region Filtering Retrieve candidate items based on the user embedding from the ANN Index Retrieval Create Embeddings - then Retrieval, Filtering, Ranking
  • 14. Retrieval and Ranking for Fashion Recommendations User/query Embedding Retrieve closest candidates with similarity search Filter & Enrich with features for candidates Add customer prior purchases, age, location, etc Ranking Model Ranked candidates Candidate 1 Candidate 2 Candidate N less than 100ms
  • 15. User/query Embedding Retrieve closest candidates with similarity search Filter & Enrich with features for candidates Add customer prior purchases, age, location, etc Ranking Model Hopsworks Feature Store KServe OpenSearch (FAISS) KServe Ranked candidates Candidate 1 Candidate 2 Candidate N Online Infrastructure Online Infrastructure for Retrieval and Ranking Hopsworks Feature Store
  • 16. Hopsworks Feature Store KServe OpenSearch (FAISS) KServe transactions Feature Engineering User Data Articles Data User/query and Item Embedding Models Model Training Compute embeddings for items/users and add to ANN index Spark App Model Training Ranking Model deploy deploy build index Offline Infrastructure for Ranking and Retrieval
  • 18. ● An embedding is a mapping of a discrete — categorical — variable to a vector of continuous numbers: [1.119, 4.341, ….,1.334] ● Create a denser representation of the categories and maintain some of the implicit relationship information between items Word2Vec Embeddings Image Embeddings enable Similarity Search Embeddings
  • 19. Can a “user query” find “items” with similarity search? Yes, by mapping the “user query” embedding into the “item” embedding space. Representation learning for retrieval usually involves supervised learning with labeled or pseudo-labeled data from user-item interactions. Two-Tower Embedding Model
  • 20. [Image Credit: Roman Grebennikov, Findify - https://www.youtube.com/watch?v=BskjQPkrYec ] Feature Logging - Generate Training Data for Embedding Models Log user-item interactions as training data for our two-tower model. H&M Website Search Item 1 Item 2 Item 3 Item 4 Purchase 3 Click 2 Click 3 Score: 0 Item 1 Score: 1 Item 2 Score: 5 Item 3 Score: 0 Item 4 Features Features Features Features
  • 21. How do we create Training Data for our Embedding Models? Implicit Feedback vs Explicit Feedback Imagine the user sees a feed and selects the fifth item in the list. This shows us that the first four items should have been ranked lower in the list. We can train our ranker model with this sort of data. You can also train a model with explicit feedback by introducing a user feedback/rating system in your application. Negative examples should also be used when training - items labeled "irrelevant" to a given query.
  • 22. Item Embedding Trainable (neural network) Encoder Static item features: name, description, tags language, location genre, price, etc (From Database/DW) The Item Embedding Model
  • 23. User/Query Embedding Trainable (neural network) Encoder User profile features: languages, location preferences, age, etc (From Database/DW) User Search History User Click History (From Event Logs or Data Lake) The User/Query Embedding Model
  • 24. Sigmoid, Dot Product, … User and Item Embeddings are the same length Item Embedding Trainable (neural network) Encoder Static item features User/Query Embedding Trainable (neural network) Encoder Static user features User Session History User Click History TensorFlow has the tensorflow-recommenders library to train two-tower embedding models. Our training data, transactions.csv, consists of customer and article pairs. You need to provide only positive pairs, where the customer purchased an article. Training produces 2 models: an item encoder model and a user encoder model. The dot product of a user embedding and item embedding pair that interacted is high and the dot product of a non interacting pair is close to 0 Training the Query and Item Embedding Models with Two Towers
  • 25. [Source: https://cloud.google.com/blog/products/ai-machine-learning/vertex-matching-engine-blazing-fast-and-massively-scalable-nearest-neighbor-search ] Create embeddings for Items, insert them into embedding space (aka build an Approximate Nearest Neighbor (ANN) Index)
  • 26. 02. Vector Database - Similarity Search with Embeddings
  • 27. A vector database (or embedding store): a database for durably storing embeddings and supporting similarity search (nearest neighbor search) Approximate nearest neighbor (ANN) algorithms provide fast nearest neighbor search, O(log(n)) ● Facebook’s FAISS uses Hierarchical Navigable Small World Graphs (HNSW) ● Google ScaNN HNSW Graph Search Vector Database
  • 28. PUT my-knn-index-1 { "settings": { "index": { "knn": true, "knn.space_type": "cosinesimil" } }, "mappings": { "properties": { "my_vector1": { "type": "knn_vector", "dimension": 2 }, "my_vector2": { "type": "knn_vector", "dimension": 4 } ]}} https://opensearch.org/docs/latest/search-plugins/knn Create a k-NN nearest neighbour Index in OpenSearch. In the following slides, we will add entries to the index. Then query it with approximate nearest neighbor search. Then query it with additional filters. OpenSearch k-NN: Create Index
  • 29. POST _bulk { "index": { "_index": "my-knn-index-1", "_id": "1" } } { "my_vector1": [1.5, 2.5], "price": 12.2 } { "index": { "_index": "my-knn-index-1", "_id": "2" } } { "my_vector1": [2.5, 3.5], "price": 7.1 } { "index": { "_index": "my-knn-index-1", "_id": "3" } } { "my_vector1": [3.5, 4.5], "price": 12.9 } { "index": { "_index": "my-knn-index-1", "_id": "4" } } { "my_vector1": [5.5, 6.5], "price": 1.2 } { "index": { "_index": "my-knn-index-1", "_id": "5" } } { "my_vector1": [4.5, 5.5], "price": 3.7 } { "index": { "_index": "my-knn-index-1", "_id": "6" } } { "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 10.3 } { "index": { "_index": "my-knn-index-1", "_id": "7" } } { "my_vector2": [2.5, 3.5, 5.6, 6.7], "price": 5.5 } { "index": { "_index": "my-knn-index-1", "_id": "8" } } { "my_vector2": [4.5, 5.5, 6.7, 3.7], "price": 4.4 } { "index": { "_index": "my-knn-index-1", "_id": "9" } } { "my_vector2": [1.5, 5.5, 4.5, 6.4], "price": 8.9 } Note that each entry has a unique “_id” and an additional “price” attribute. my_vector1 has an embedding of length 2. my_vector2 has an embedding of length 4. OpenSearch k-NN: Insert Embeddings into Index
  • 30. GET my-knn-index-1/_search { "size": 2, "query": { "knn": { "my_vector2": { "vector": [2, 3, 5, 6], "k": 2 } } } } k is the number of neighbors the search of each graph will return. The size option indicates how many results the query actually returns. OpenSearch k-NN: Similarity search using Index
  • 31. GET my-knn-index-1/_search { "size": 2, "query": { "knn": { "my_vector2": { "vector": [2, 3, 5, 6], "k": 2 } } }, "post_filter": { "range": { "price": { "gte": 5, "lte": 10 } } } } We are filtering results so that we only get candidates with a price between 5-10. OpenSearch k-NN: Similarity search using Index with filtering
  • 33. Each instance (user-item pair) is represented with a list of features, retrieved from the feature store. Training data is the user-item features and the label is the relevance ratings. Ranking models should be fast - low latency to rank 100s of candidates, so decision trees are popular. What does a Ranking Model do?
  • 34. The ranking stage should consider additional criteria or constraints. If the system always recommend items that are "closest" to the user/query embedding, the candidates tend to be very similar to each other. Re-rank items based on genre or other metadata to ensure diversity. When ranking, we can include features that were not feasible during candidate generation. Use the feature store to retrieve features such as user persona (e.g., demographics, price propensity), item metadata (e.g., attributes, engagement statistics), cross features (e.g., interaction between each feature pair), and media embeddings. Building a ranking model with TF Recommenders: https://www.youtube.com/watch?v=ZkwJo5HRjiQ https://www.tensorflow.org/recommenders/examples/basic_ranking Ranking Models - reordering and the feature store
  • 35. Tags and Metadata - Refine your Recommendations/Search
  • 36. Feature helps generate candidates in ANN search Static/Dynamic Filter Candidates. Book 1 Book 2 Book N Sci-Fi Drama Non-Fiction Vector DB Ranking Stage OR Static attributes. Filter ANN results in OpenSearch Book 1 Feature1 Feature2 … TAG Tags, Metadata - Refining your Search by Filtering
  • 38. Offline Infrastructure for Ranking and Retrieval Hopsworks Feature Store KServe OpenSearch (FAISS) KServe Kafka transactions Feature Engineering (Spark/Python/SQL) Data Warehouse user, item profiles Historical transactions User/query and Item Embedding Models Model Training Compute embeddings for items/users and add to ANN index Spark App Model Training Ranking Model deploy deploy build index
  • 39. Data Engineer Data Scientist ML Engineer Data Dump Model Enterprise Data Model Serving What is a Feature Store for Machine Learning? models need operational data Feature Store Data Engineer Data Scientist ML Engineer Enterprise Data Model Serving No Feature Store
  • 40. What are the System Properties of Recommendation Systems? Availability (uptime) Latency (response time) Feature Freshness (age) Throughput (speed) Apart from the accuracy of your ML models, you have to worry about…
  • 41. Why should I care about Performance and Availability ? Availability: Embedded in-memory DB crashes on Black Friday at e-retailer, produces random recommendations Freshness: Video streaming service switches from Spark Streaming to Flink, improving feature freshness from 10s down to 2s, improving the engagement rate. Latency: A real-time recommendation service for a music streaming company returns 250 candidates during retrieval, then it needs 250 lookups from the feature store in < 30ms for ranking. Throughput: Online retail store produces increasing number of sales, needs to switch feature pipeline from Pandas to PySpark.
  • 42. Throughput: Online retail store produces increasing number of sales, needs to switch feature pipeline from Pandas to PySpark. Why should I care about Performance and Availability ? Availability: Embedded in-memory DB crashes on Black Friday at e-retailer, produces random recommendations. Freshness: Video streaming service switches from Spark Streaming to Flink, improving feature freshness from 10s down to 2s, improving the engagement rate. Latency: A real-time recommendation service for a music streaming company returns 250 candidates during retrieval, then it needs 250 lookups from the feature store in < 30ms for ranking.
  • 43. Throughput: Online retail store produces increasing number of sales, needs to switch feature pipeline from Pandas to PySpark. Why should I care about Performance and Availability ? Freshness: Video streaming service switches from Spark Streaming to Flink, improving feature freshness from 10s down to 2s, improving the engagement rate. Latency: A real-time recommendation service for a music streaming company returns 250 candidates during retrieval, then it needs 250 lookups from the feature store in < 30ms for ranking. Availability: Embedded in-memory DB crashes on Black Friday at e-retailer, produces random recommendations.
  • 44. Availability: Embedded in-memory DB crashes on Black Friday at e-retailer, produces random recommendations. Why should I care about Performance and Availability ? Freshness: Video streaming service switches from Spark Streaming to Flink, improving feature freshness from 10s down to 2s, improving the engagement rate. Latency: A real-time recommendation service for a music streaming company returns 250 candidates during retrieval, then it needs 250 lookups from the feature store in < 30ms for ranking. Throughput: Online retail store produces increasing number of sales, needs to switch feature pipeline from Pandas to PySpark.
  • 45. Feature Store HOPSWORKS Feature Pipeline Inference Data Training Data / Batch Data Write API, Online/Offline Read APIs Online API Offline API
  • 46. Online Offline External Training Data Model Registry & Deployment Projects Feature Groups Feature Views Online Offline External Spark Spark Streaming Flink Feature Engineering: APIs & Connectors Hopsworks APIs Frameworks Pandas
  • 47. Feature Engineering: SQL & Connectors Online Offline External Training Data Model Registry & Deployment Projects Feature Groups Feature Views Online Offline External Redshift (Amazon) Snowflake Amazon S3 ADLS (Azure) JDBC (MySQL, Postgres, MongoDB) HopsFS Hopsworks Connectors Storage Connectors
  • 48. Feature Groups Web logs Customers Articles Transactions Data Warehouse Feature Views Ranking Retrieval Feature Store Online API Offline API Serve Train Write to Feature Groups, Read from Feature Views
  • 49. < 1ms KV lookup >100M KV Lookups/sec >99.999% availability >1 PB storage RonDB - Hopsworks’ Online Feature Store https://www.rondb.com
  • 50. Feature Views Ranking Retrieval Feature Store Training Data Training Models customers.csv articles.csv retrieval.csv Ranking User/Query Embedding Item Embedding Model Registry Models
  • 51. Feature Store HOPSWORKS Feature Pipeline Precomputed Features (Context, Historical) Retrieval and Ranking Application (Click or Search) Online API Feature Store used for Online for Retrieval and Ranking
  • 52. 05. Hopsworks = Feature Store + VectorDB + Model Serving
  • 53. Feature Store HOPSWORKS Feature Pipeline Precomputed Features (Context, Historical) Training Data Retrieval and Ranking Application (Click or Search) Online API Offline API Hopsworks for Retrieval and Ranking Model Registry OpenSearch ANN KServe (Model Serving)
  • 54. a. User Query 1. Enrich Query with User History, Profile, and Context Hopsworks Feature Store OpenSearch 2. Compute User/Query Embedding 3. Retrieve Candidates 4. Enrich Candidates using Feature Store 5. Score Candidates with Ranking Model KServe Query, Req-ID Ranked Results <ReqID, outcome> Hopsworks Ranking and Retrieval Service Feature Logging b. Item Selected
  • 56. Goal: Support Spotify Personalized Search in a Retrieval and Ranking Architecture. Benchmark the highest throughput, lowest latency key-value stores to identify one that could scale to handle millions of concurrent lookups per second on Spotify’s workloads. Systems: Aerospike and RonDB were identified as the only systems capable of meeting the triple goals of High Throughput, Low Latency, and High Availability. Other databases such as Redis, Cassandra, BigTable were not considered for availability or latency or throughput reasons. Feature Store Ranking and Retrieval Lookup Features Feature Values Feature Pipelines Benchmarking Online Feature Stores
  • 57. Hardware Benchmark Setup on GCP: RonDB (NDB) vs Aerospike. The Java Client nodes are the clients performing the reads/writes on the Data Nodes. When the cluster is provisioned with 8 RonDB (NDB) data nodes, it has 832GB of usable in-memory storage, when a replication factor of 2 is used. Benchmark Setup
  • 58. Throughput: higher is better. Each feature store operation was a batch of 250 key-value lookups, meaning with 8 clients for a 8-node RonDB cluster, there are >2m lookups/sec. Average throughput of the clients in both 6 and 8 node setup of RonDB and Aerospike N. of clients RonDB 8 Nodes RonDB 6 Nodes Aerospike 6 nodes Aerospike 8 nodes 1250 1000 750 500 250 1 2 4 8 Ops/Sec Benchmark Results - Throughput
  • 59. Latency: lower is better. Each feature store operation was a batch of 250 key-value lookups. So, for RonDB, the P99 when performing 250 primary operations in a single transaction is under 30ms. Average latency of the clients in both 6 node setup of RonDB and Aerospike N. of clients RonDB P75 RonDB P99 Aerospike P99 Aerospike P75 50 40 30 20 10 0 1 2 4 8 Latency (ms) Benchmark Results - Latency
  • 60. RonDB 35% Higher Throughput RonDB 30% Better Latency Based on Public Report from Spotify comparing Aerospike and RonDB (NDB Cluster) as Feature Stores http://kth.diva-portal.org/smash/get/diva2:1556387/FULLTEXT01.pdf Benchmark Results
  • 61. 07. Ranking and Retrieval with Hopsworks H&M Recommendation Service
  • 62. Today’s Workshop: Retrieval and Ranking Platform in Python create feature groups for articles, customers, transactions ● articles.csv ● customers.csv ● transactions_train.csv create feature view for retrieval model (training data) build opensearch KNN index with embeddings for all articles train two-tower model - user and article embedding models create feature view for retrieval model (training data) train ranking model deploy models to KServe + glue code for Hopsworks, OpenSearch
  • 63. Feature Groups transactions.csv Customers Articles Transactions Feature Views retrieval Feature Store Transaction = (customer_id, article_id, timestamp, channel) 1_feature_engineering.ipynb 2a_create_retrieval_feature_views.ipynb articles.csv customers.csv
  • 64. OpenSearch kNN ANN Index Python Program with Item Embedding Model Item Corpus Encode all items Insert all pairs (ID, embedding) 3_build_index.ipynb Model Registry Customer Embedding Model Article Embedding Model TensorFlow Two-Tower Training Training Data Register User & Item Embedding Models 2b_train_retrieval_model.ipynb
  • 65. 4a_create_ranking_feature_views.ipynb 4b_train_ranking_model.ipynb Feature Groups Customers Articles Transactions Feature Views Ranking Feature Store Transaction = (customer_id, article_id, timestamp, channel) Model Registry Ranking Model TensorFlow Program with Item Embedding Model Register Ranking Model Training Data
  • 66. Logs: Inputs, Predictions predict (https) Predictor devices Kafka Istio Feature Store Transformer Metrics 5_create_deployment.ipynb Transformer Predictor Ranking Model User/Query Model 1 2 3 4 2, 4 5 6 7
  • 67. 08. Where next for Retrieval and Ranking Architectures?
  • 68. more data -> better models -> more users -> more data-> … Feature Store Recommende r (Website, etc) Models & Embedding s Model Training Feature Pipeline & Monitoring Feature Store Enterprise Data logs Online API Offline API Build out your Data-for-AI Flywheel
  • 70. Hopsworks is the platform for ML collaboration, powered by the leading Python-centric Enterprise Feature Store. London IDEALondon, 69 Wilson St. London UK Silicon Valley 470 Ramona St Palo Alto California USA ⭐ Stockholm Hopsworks AB Medborgarplatsen 25 118 72 Stockholm Sweden