# recommendation-system

Published articles for recommendation-system.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How we think about text classification in the LLM era

DevFeed: [How we think about text classification in the LLM era](<https://devfeed.tech/articles/how-we-think-about-text-classification-in-the-llm-era-20322.md>)

Original publisher: [Read original article](<https://medium.engineering/how-we-think-about-text-classification-in-the-llm-era-89a185f79b68?source=rss----2817475205d3---4>)

Author: Raphael Montaud

Published: 2026-08-19T20:00:37Z

Content type: article

Language: en

Sources: [Medium](<https://devfeed.tech/sources/medium.md>)

Topics: [Machine Learning & Artificial Intelligence](<https://devfeed.tech/topics/machine-learning-artificial-intelligence.md>), [Model Development](<https://devfeed.tech/topics/model-development.md>), [LLM Techniques](<https://devfeed.tech/topics/llm-techniques.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Inference](<https://devfeed.tech/topics/ai-inference.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [classification](<https://devfeed.tech/tags/classification.md>), [inference](<https://devfeed.tech/tags/inference.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llms](<https://devfeed.tech/tags/llms.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [models](<https://devfeed.tech/tags/models.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [text-classification](<https://devfeed.tech/tags/text-classification.md>)

### AI overview

Medium explains how it is evaluating LLM-based text classification for updating its aging NSFW model while retaining task-specific machine-learning models. The article states that Snowflake LLM tools were used for inference only and that Medium's user data was not used to train the models.

### Source excerpt

Why we think LLMs can be useful and why we will not replace all of our models with themContext At Medium, we have many Machine Learning models that we use to label stories automatically. These affect what stories we recommend to readers. Here's some examples: a few of our text classification models. All diagrams and charts made by the authorSome Clarifications on our Machine Learning policy Before we go deep on this project, I just wanted to clarify a few things about how we stand regarding AI in general. Medium has been training internal models with user and post data for a long time now. We train models with specific tasks. For example, models that power our recommendations algorithm, or text classification models like the ones presented in this story. All in the goal to improve our product. With the LLM approach I describe in this story, we ARE NOT sharing these models with other companies. And we ARE NOT allowing anyone to train on our users' data and content. Here we used Snowflake LLM tools for inference only (no LLM training was done here) and they are actually hosting all of the models inside their own infrastructure and guarantee that they are not using any of this for training. Shoutout to the Snowflake team for making it so easy and safe to use LLMs on our data! If you want to read more about Medium's stance on AI, I definitely recommend giving these a read: Default No to AI Training on Your Stories Finally, an internet standard for writers' rights vs. AI companies We want your feedback: How can writers use AI to tell human stories? Problem During our roadmap planning we decided that our NSFW model was out of date and it was time to revamp it. This model labels stories as "Not Safe for Work" if they have sexually explicit content, lots of profanity, or basically anything you wouldn't want to read on your big monitor in the middle of an open space! As you can imagine it's a pretty important model. We really need it to make sure our most "interesting" conte

## How Medium Powers Real-Time Recommendations at 1M OPS

DevFeed: [How Medium Powers Real-Time Recommendations at 1M OPS](<https://devfeed.tech/articles/how-medium-powers-real-time-recommendations-at-1m-ops-4879.md>)

Original publisher: [Read original article](<https://www.scylladb.com/2026/08/11/medium-real-time-recommendations/>)

Author: Cynthia Dunlop

Published: 2026-08-11T16:40:45Z

Content type: article

Language: en

Sources: [ScyllaDB](<https://devfeed.tech/sources/scylladb.md>)

Topics: [real-time](<https://devfeed.tech/topics/real-time.md>), [scylladb](<https://devfeed.tech/topics/scylladb.md>), [data](<https://devfeed.tech/topics/data.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [data](<https://devfeed.tech/tags/data.md>), [inference](<https://devfeed.tech/tags/inference.md>), [models](<https://devfeed.tech/tags/models.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [scale](<https://devfeed.tech/tags/scale.md>), [scylladb](<https://devfeed.tech/tags/scylladb.md>), [user-stories](<https://devfeed.tech/tags/user-stories.md>)

### AI overview

The article explains how Medium's ScyllaDB-based feature store supports real-time recommendations. It describes processing user activity and new articles, storing features for recommendation models, and addressing data-modeling challenges as the system scaled to 1 million operations per second.

### Source excerpt

Inside Medium's move from relational features to list features in its ScyllaDB-based feature store "Keep readers reading" is the not-so-simple goal of Medium's recommendations system. To predict what's most likely to appeal to a particular reader at any given time, Medium continuously processes user activity signals (stories read, recommendations shown, follows, likes, etc.). It then immediately correlates that with the steady stream of new articles, which is estimated at millions per month. Smart models and good inference logic are required, but that's not enough. The data must be stored and retrieved quickly enough to remain relevant while the user is [...]

## How Keras 3 Helped Modernise Expedia Group's Lodging Ranking Stack

DevFeed: [How Keras 3 Helped Modernise Expedia Group's Lodging Ranking Stack](<https://devfeed.tech/articles/how-keras-3-helped-modernise-expedia-group-s-lodging-ranking-stack-19734.md>)

Original publisher: [Read original article](<https://medium.com/expedia-group-tech/how-keras-3-helped-modernise-expedia-groups-lodging-ranking-stack-7fec96f052fd?source=rss----38998a53046f---4>)

Author: Conor Worthington

Published: 2026-08-11T11:01:02Z

Content type: article

Language: en

Sources: [Expedia](<https://devfeed.tech/sources/expedia.md>)

Topics: [Keras](<https://devfeed.tech/topics/keras.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Inference Performance](<https://devfeed.tech/topics/inference-performance.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>)

Tags: [data-science](<https://devfeed.tech/tags/data-science.md>), [features](<https://devfeed.tech/tags/features.md>), [framework](<https://devfeed.tech/tags/framework.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [inference](<https://devfeed.tech/tags/inference.md>), [keras](<https://devfeed.tech/tags/keras.md>), [latency](<https://devfeed.tech/tags/latency.md>), [llms](<https://devfeed.tech/tags/llms.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [mixture-of-experts](<https://devfeed.tech/tags/mixture-of-experts.md>), [model-training](<https://devfeed.tech/tags/model-training.md>), [neural-networks](<https://devfeed.tech/tags/neural-networks.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>)

### AI overview

Expedia Group describes modernising its lodging-ranking stack around Keras 3. The changes included rewriting parts of its pipelines, making model training 30% faster and reducing P99 inference latency by two-thirds. The article discusses limitations of the previous Keras 2, eager-training and combined-serving setup, along with the use of newer APIs and accelerator-oriented optimisations.

### Source excerpt

Expedia Group Technology -- DataWhat happened when we treated a framework migration as an architecture modernisation -- and cut P99 inference latency by two-thirdsSt Paul's and millennium bridge, London Expedia Group™ has always been a market leader in providing personalised search experiences for travellers. As our ranking models evolved, we saw an opportunity not just to migrate to Keras 3, but to modernise the broader stack around it so we can better serve travellers. This led us to rewrite key parts of our pipelines that made model training 30% faster and cut P99 inference latency by two-thirds. Our main focus in this blog is to discuss our improvements to lodging ranking -- our service which handles users' search requests and returns a personalised property ranking on top of a lightweight candidate generator. This service is frequently retrained to improve customer experience as we get new signals over time. Example of personalised lodging ranking on Expedia search result page for a London search As such, our velocity to make changes needs to be fast, but more importantly we need to be able to build models which are state-of-the-art, enabling customers to easily find and book the most relevant property for their trip. The problem with Keras 2, eager training and combined serving The challenge was not that the old stack was broken. It was that it had gradually become a limiting factor. On the training side, we were carrying dependencies on older components and missing out on modern Keras APIs, new optimisers, new layers and cleaner support for accelerator-oriented training. On the serving side, we had a path that was simple and operationally familiar, but not especially well suited to aggressively optimised inference for heavier ranking architectures. This blockage on utilising new layers and optimisers has become more pronounced as LLMs see blistering amounts of innovation. Naturally, these new features are only available in Keras 3 or as separate backends from ou

## GenRec: Towards LLM-Native Recommendation at Netflix

DevFeed: [GenRec: Towards LLM-Native Recommendation at Netflix](<https://devfeed.tech/articles/genrec-towards-llm-native-recommendation-at-netflix-137.md>)

Original publisher: [Read original article](<https://netflixtechblog.com/genrec-towards-llm-native-recommendation-at-netflix-f20be6f643e3?source=rss----2615bd06b42e---4>)

Author: Netflix Technology Blog

Published: 2026-07-30T20:10:15Z

Content type: article

Language: en

Sources: [Netflix](<https://devfeed.tech/sources/netflix.md>), [Netflix TechBlog - Medium](<https://devfeed.tech/sources/netflix-techblog-medium.md>)

Topics: [Netflix](<https://devfeed.tech/topics/netflix.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [LLM Techniques](<https://devfeed.tech/topics/llm-techniques.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [vllm](<https://devfeed.tech/topics/vllm.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [feature-engineering](<https://devfeed.tech/tags/feature-engineering.md>), [genai](<https://devfeed.tech/tags/genai.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [large-language-models-llms](<https://devfeed.tech/tags/large-language-models-llms.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llms](<https://devfeed.tech/tags/llms.md>), [netflix](<https://devfeed.tech/tags/netflix.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [vllm](<https://devfeed.tech/tags/vllm.md>)

### AI overview

Netflix presents GenRec, an LLM-backed recommendation ranker trained on Netflix-specific data and objectives. It converts user histories, item metadata, and context into text, uses a catalog-aware scoring head, aligns recommendations with long-term member value and business goals, and runs in prefill-only mode on Netflix's LLM serving stack. In a large-scale A/B test, GenRec improved short- and long-term online metrics while using fewer labeled examples and input signals than a mature production ranker.

### Source excerpt

Authors: Ying Li, Arjun Rao, Shradha Sehgal Introduction Recommendations sit at the heart of the Netflix experience. Our current production models rely on thousands of hand-crafted features over users, items, and interactions, along with specialized architectures for sequence modeling, feature interactions, and multi-task objectives. This stack has evolved over many years to support diverse content types (movies, series, games, live, podcasts) and product surfaces, but its complexity makes it costly to onboard new use cases: adding a content type or surface can require significant feature engineering, architecture change, infrastructure work, and experimentation. At the same time, large language models (LLMs) are changing how we think about recommendation, as shown by recent work such as PLUM, GLIDE, and OneRec-Think. Their broad world knowledge and strong language understanding make it possible to represent user histories and item metadata directly as text, capture rich relationships in a shared semantic space, and steer recommendations via natural-language prompts. However, off-the-shelf LLMs are still far from production-ready recommenders: they often over-recommend globally popular content, hallucinate out-of-catalog items, ignore business constraints, and provide only limited personalization. To address this, we built GenRec, an LLM-backed recommendation ranker that post-trains an internal foundation LLM on Netflix-specific data and objectives. GenRec shows that an LLM-based ranker can match or exceed a mature production system while relying on far fewer labeled examples and input signals. Figure 1: GenRec pipeline. Raw logs of user history, item metadata, and context are transformed via context engineering into natural-language prompts and fed into the GenRec, which runs on vLLM in prefill-only mode and outputs scores for each catalog item, yielding a recommendation ranking. At a high level, GenRec: Verbalizes user histories, item metadata, and context as text

## Pinner Progression: Better Use-Case Representation Driving Weekly Active User Growth at Pinterest

DevFeed: [Pinner Progression: Better Use-Case Representation Driving Weekly Active User Growth at Pinterest](<https://devfeed.tech/articles/pinner-progression-better-use-case-representation-driving-weekly-active-user-growth-at-pinterest-1232.md>)

Original publisher: [Read original article](<https://medium.com/pinterest-engineering/pinner-progression-better-use-case-representation-driving-weekly-active-user-growth-at-pinterest-bd2131ab238a?source=rss----4c5a5f6279b6---4>)

Author: Pinterest Engineering

Published: 2026-07-27T16:01:02Z

Content type: article

Language: en

Sources: [Pinterest Engineering Blog - Medium](<https://devfeed.tech/sources/pinterest-engineering-blog-medium.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Data Science](<https://devfeed.tech/topics/data-science.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [engineering](<https://devfeed.tech/tags/engineering.md>), [growth](<https://devfeed.tech/tags/growth.md>), [interest-exploration](<https://devfeed.tech/tags/interest-exploration.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [pinterest](<https://devfeed.tech/tags/pinterest.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [retention](<https://devfeed.tech/tags/retention.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [understanding-user](<https://devfeed.tech/tags/understanding-user.md>)

### AI overview

Pinterest introduces Pinner Progression, a recommendation-system program that uses persistent User Interest Clusters to improve discovery and make retention a first-class objective alongside engagement.

### Source excerpt

Part 1 of 2 Authors Personalization (Homefeed): Yuke Yan, Chuxi Wang, Andreanne Lemay, Olafur Gudmundsson, Anna Kiyantseva, Krystal Benitez, Jongho Kim, Jiacong He, Rahul Goutam, James Li, Dylan Wang User Understanding: Simin Li, Sufyan Suliman, Yingjian Ding, Hongbo Deng Data Science: Armando Ordorica, Yan Chen, Ellie Zhang, Karim Wahba Introduction Pinterest's mission is to help people discover the inspiration to create a life they love. Our recommendation system serves hundreds of millions of users, surfacing billions of Pins across interests ranging from home renovation to meal planning to wedding decor. The home feed , where much of that discovery happens, is powered by a multi-stage pipeline spanning retrieval, lightweight scoring, ranking, and re-ranking [1][2][3]. Most of our prior work on this pipeline has been optimized for engagement: clicks, saves, downloads, closeups. These are strong signals of immediate relevance, and optimizing for them has driven significant gains across the system [4][5]. The problem is that engagement and retention are different things. A user can save ten sourdough recipes today and churn next month anyway. All we did was feed them more of what they already liked: we never helped them find something new for next time. This post is one of two that introduces Pinner Progression, a program that reframes the home feed recommendation system around retention as a first-class objective. Our core insight is that by augmenting sequential, action-by-action user understanding with holistic, persistent use-case representation, we can reliably anticipate the user's next moves and start to serve recommendations that ignite their serendipitous discovery. In this post, we introduce the key use-case representation signal: User Interest Clusters (UICs) -- and describe its construction, integration into the recommendation stack, and impact on engagement on retention metrics. A follow-up will cover how we predict unseen UICs and conduct systematic us

## Personalizing Airbnb search by learning from the guest journey

DevFeed: [Personalizing Airbnb search by learning from the guest journey](<https://devfeed.tech/articles/personalizing-airbnb-search-by-learning-from-the-guest-journey-1219.md>)

Original publisher: [Read original article](<https://medium.com/airbnb-engineering/personalizing-airbnb-search-by-learning-from-the-guest-journey-bcefd1915624?source=rss----53c7c27702d5---4>)

Author: Daochen Zha

Published: 2026-07-21T17:01:04Z

Content type: article

Language: en

Sources: [The Airbnb Tech Blog - Medium](<https://devfeed.tech/sources/the-airbnb-tech-blog-medium.md>)

Topics: [Transformer](<https://devfeed.tech/topics/transformer.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Temporal data](<https://devfeed.tech/topics/temporal-data.md>), [Data Science](<https://devfeed.tech/topics/data-science.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [blog](<https://devfeed.tech/tags/blog.md>), [conversion](<https://devfeed.tech/tags/conversion.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [research](<https://devfeed.tech/tags/research.md>), [scale](<https://devfeed.tech/tags/scale.md>), [search](<https://devfeed.tech/tags/search.md>), [technology](<https://devfeed.tech/tags/technology.md>), [training](<https://devfeed.tech/tags/training.md>)

### AI overview

Airbnb describes a Transformer-based sequence model for personalizing search by encoding years of guest behavior, including listing views, bookings, reviews, and cancellations. The system learns richer representations of guest preferences to improve listing relevance and booking conversion while addressing very long, noisy event sequences and the cost of training on hundreds of millions of search-label pairs.

### Source excerpt

How we built a Transformer-based sequence model that encodes years of guest behavior to surface the right listings at the right time. By: Daochen Zha, Chun How Tan, Xin Liu, Bin Xu, Han Zhao, Xiaowei Liu, Jun Shi, Tracy Yu, Hui Gao, Huiji Gao, Liwei He, Michael Kinoti, Stephanie Moyerman, and Sanjeev Katariya Introduction Planning a trip on Airbnb rarely happens in a single session. A guest searching for a place to stay in San Francisco might browse dozens of listings over several days, leaving behind a trail of views. Typically, over a period of years, that same guest will have accumulated many previous bookings, reviews, and the occasional cancellation. Taken together, these events reveal a great deal about what that guest values in a stay. For years, Airbnb's search ranking captured this through hand-crafted features: aggregated statistics such as total past bookings or average listing price. These worked well, but as the feature count grew into the hundreds, the approach became harder to scale and increasingly limited in expressiveness. In this blog post, we describe how we built a sequence modeling system that encodes the full guest journey using a Transformer, learning richer representations of guest preferences to deliver more personalized search results. An example of a guest journey, which is typically long, exploratory, and complex.Challenges Event sequences per guest present three core challenges. First, they are dominated by listing views, which account for the vast majority of all events -- some guests accumulate hundreds of thousands of them -- making raw sequences computationally intractable to model directly. The distribution of event types, with the majority being listing views. Second, unlike social media platforms, which optimize for engagement, Airbnb optimizes for booking conversion. Bookings are rare, compared to events, and deliberate, whereas a listing view could reflect genuine intent or simply idle browsing. Building a model that generalizes

## GenPage: Towards End-to-End Generative Homepage Construction at Netflix

DevFeed: [GenPage: Towards End-to-End Generative Homepage Construction at Netflix](<https://devfeed.tech/articles/genpage-towards-end-to-end-generative-homepage-construction-at-netflix-136.md>)

Original publisher: [Read original article](<https://netflixtechblog.com/genpage-towards-end-to-end-generative-homepage-construction-at-netflix-77146fba8a08?source=rss----2615bd06b42e---4>)

Author: Netflix Technology Blog

Published: 2026-06-29T13:01:02Z

Content type: article

Language: en

Sources: [Netflix](<https://devfeed.tech/sources/netflix.md>), [Netflix TechBlog - Medium](<https://devfeed.tech/sources/netflix-techblog-medium.md>)

Topics: [Netflix](<https://devfeed.tech/topics/netflix.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Reinforcement learning](<https://devfeed.tech/topics/reinforcement-learning.md>), [Transformer](<https://devfeed.tech/topics/transformer.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [app](<https://devfeed.tech/tags/app.md>), [diversity](<https://devfeed.tech/tags/diversity.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [feature-engineering](<https://devfeed.tech/tags/feature-engineering.md>), [generation](<https://devfeed.tech/tags/generation.md>), [generative](<https://devfeed.tech/tags/generative.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [netflix](<https://devfeed.tech/tags/netflix.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [reinforcement-learning](<https://devfeed.tech/tags/reinforcement-learning.md>), [rl](<https://devfeed.tech/tags/rl.md>)

### AI overview

This Netflix developer article introduces GenPage, a generative approach that uses a single autoregressive model to construct a personalized homepage by generating recommendation rows, entities, and layout together. It describes replacing a multi-stage recommendation pipeline with end-to-end modeling and using reinforcement learning to optimize whole-page rewards, including interactions such as diversity and the balance between rows.

### Source excerpt

Authors: Lequn Wang, Jiangwei Pan, and Linas Baltrunas Figure 1. Autoregressive homepage generation. GenPage builds a Netflix homepage one row or entity at a time, each one conditioned on what's already on the page and the user's context.Introduction The Netflix homepage is the first thing users see when they open the app and the primary way they discover content to enjoy. Almost every part of it is personalized, including which rows appear, which entities show up within those rows, and how everything is arranged on the page. Constructing that homepage is a genuinely hard problem. It is not simply producing one ranked list. The homepage is a structured, two-dimensional layout, made up of recommendation rows and the entities within them. Here, an entity can be a movie, show, game, live event, or other recommendable item. Each choice can affect the value of the others. Traditionally, it is built through a complex, multi-stage pipeline, with separate components for candidate generation and ranking at both the row and entity levels. We saw an opportunity to rethink this design. Large language models have shown that a single generative model can perform diverse tasks just by generating a response to a prompt. Inspired by this prompt-response paradigm, we trained a single generative model to build the homepage by directly answering one question: Given everything we know about this user and this request, what homepage should we generate to maximize user satisfaction? We call this approach GenPage. It treats the user history and request context as the prompt, and autoregressively generates the entire homepage as the response (Figure 1). Unlike most generative recommenders, such as TIGER, HSTU, and OneRec, which generate flat ranked lists, GenPage generates the rows, entities, and layout together. This shift is motivated by several goals: End-to-end modeling. A single transformer model that constructs the page from raw input signals can replace a complex multi-stage recommen

## From Scoring to Spelling: Rebuilding Ads Retrieval at Instacart

DevFeed: [From Scoring to Spelling: Rebuilding Ads Retrieval at Instacart](<https://devfeed.tech/articles/from-scoring-to-spelling-rebuilding-ads-retrieval-at-instacart-20105.md>)

Original publisher: [Read original article](<https://tech.instacart.com/from-scoring-to-spelling-rebuilding-ads-retrieval-at-instacart-cf36b4e8d1bb?source=rss----587883b5d2ee---4>)

Author: Karuna Ahuja

Published: 2026-06-02T18:50:19Z

Content type: article

Language: en

Sources: [Instacart](<https://devfeed.tech/sources/instacart.md>)

Topics: [Transformer](<https://devfeed.tech/topics/transformer.md>), [recommendations](<https://devfeed.tech/topics/recommendations.md>), [systems](<https://devfeed.tech/topics/systems.md>), [context](<https://devfeed.tech/topics/context.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [bert](<https://devfeed.tech/tags/bert.md>), [context](<https://devfeed.tech/tags/context.md>), [generative](<https://devfeed.tech/tags/generative.md>), [inference](<https://devfeed.tech/tags/inference.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>)

### AI overview

Instacart describes rebuilding its ads retrieval system by moving from a product-scoring encoder to a generative model that predicts product IDs token by token. The system uses contextual shopping sessions and a BERT-like transformer to retrieve sponsored and organic recommendations.

### Source excerpt

Key Contributors: Karuna Ahuja, Marko Avdalovic, Soroush Sobhkhiz, Shrikar Archak, Xiyu Wang, Ji Chao Zhang, Hao Yan Introduction Every time a user opens Instacart, they see product recommendations: on the retailer home page, in search results, and alongside their cart. Many of these recommendations are sponsored products surfaced by a retrieval model that decides which products to show from a vast ads product catalog. A relevant ad helps users discover products they didn't know they needed; a less relevant one generates friction. Two years ago, we introduced Contextual Recommendations (CR), a BERT-based sequence model powering retrieval for both ads and organic recommendations across all major browse surfaces. In this post, we'll focus on our ads retrieval. We will detail how we rebuilt the system, by moving from an encoder that scores products to a generative model that spells them out, token by token. By doing so, we unlocked a new level of contextual matching -- ensuring brands appear exactly when users want them, while simultaneously opening up discovery of thousands of relevant products the previous system couldn't retrieve. Contextual Recommendations: A recap At its core, CR treats grocery shopping as a language modeling task, where atomic product IDs function as tokens and, the finite subset of the catalog it is trained on, acts as its 'vocabulary'. The model leverages the user's real-time session, which includes product views, item page visits, and cart additions, as a sequence of these product tokens. A BERT-like transformer is then trained on millions of authentic shopping sessions to predict the next token (i.e. singular product) in the sequence. This process allows the model to learn and capture complex purchasing patterns, such as the tendency for users who add pasta and olive oil to frequently add garlic next. This single retrieval layer replaced multiple ad-hoc systems and powers recommendation carousels across all major browse surfaces, serving both

## Semantic IDs: Product Understanding at Scale

DevFeed: [Semantic IDs: Product Understanding at Scale](<https://devfeed.tech/articles/semantic-ids-product-understanding-at-scale-20110.md>)

Original publisher: [Read original article](<https://tech.instacart.com/semantic-ids-product-understanding-at-scale-5283e0288f5a?source=rss----587883b5d2ee---4>)

Author: Shrikar Archak

Published: 2026-06-02T16:58:00Z

Content type: article

Language: en

Sources: [Instacart](<https://devfeed.tech/sources/instacart.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [data](<https://devfeed.tech/topics/data.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [embedding](<https://devfeed.tech/tags/embedding.md>), [ids](<https://devfeed.tech/tags/ids.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [product](<https://devfeed.tech/tags/product.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommender-systems](<https://devfeed.tech/tags/recommender-systems.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [scale](<https://devfeed.tech/tags/scale.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

Instacart describes how it built semantic IDs to capture relationships among grocery products that a hierarchical taxonomy misses. The approach uses product embeddings, residual vector quantization, catalog structure, contrastive training, and separate precision and discovery strategies to address cold-start products, sparse categories, and catalog-quality issues.

### Source excerpt

Key Contributors: Shrikar Archak, Karuna Ahuja, Soroush Sobhkhiz, Marko Avdalovic, Xiyu Wang, JiChao Zhang, Hao Yan, Chris Hartley Introduction Operating a grocery catalog at Instacart's scale means managing millions of products across thousands of categories. Every product is assigned to a category in our hierarchical taxonomy like "Dairy > Cheese > Parmesan". These categories provide broad classification, but they miss the connections that drive how customers actually shop. For example, a customer is building a cheese board. They've added Parmigiano Reggiano, and now they need accompaniments. Our taxonomy puts it in "Dairy > Cheese > Parmesan," so a category-based system can suggest other parmesan cheeses. But it can't connect them to the Castelvetrano olives in Pantry > Condiments > Olives, the olive tapenade in Deli > Olives Dips and Spreads, or the crudité and pre-assembled cheese tray in Deli > Prepared Meals > Party Trays. These products live in completely different branches of the catalog, with no shared ancestor below "Food." But any customer would tell you they belong together. This cross-category blindness shows up in three ways. Cold start: new products arrive with zero purchase history. We can assign them to the right category, but a category alone can't connect them to the products customers would actually consider alongside them, so they stay invisible. Tail category coverage: recommendation models learn from volume, so they skew toward popular grocery staples. Products in sparse categories lack the interaction data to surface, and the taxonomy gives the model no bridge to related items in other branches. Catalog quality at scale: with millions of products, mislabeling is inevitable -- a protein bar filed under "Candy," a sparkling water under "Soda." A rigid tree has no way to flag these because the only signal is the label itself. In this post, we walk through how we built semantic IDs at Instacart to address these problems: the embedding choices, th

## Making User-Sequence Data More Cost-Efficient, Faster, and Easier to Use

DevFeed: [Making User-Sequence Data More Cost-Efficient, Faster, and Easier to Use](<https://devfeed.tech/articles/making-user-sequence-data-more-cost-efficient-faster-and-easier-to-use-1231.md>)

Original publisher: [Read original article](<https://medium.com/pinterest-engineering/making-user-sequence-data-more-cost-efficient-faster-and-easier-to-use-2a56a928cae1?source=rss----4c5a5f6279b6---4>)

Author: Pinterest Engineering

Published: 2026-05-21T16:01:00Z

Content type: article

Language: en

Sources: [Pinterest Engineering Blog - Medium](<https://devfeed.tech/sources/pinterest-engineering-blog-medium.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Feature Engineering](<https://devfeed.tech/topics/feature-engineering.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [data-infrastructure](<https://devfeed.tech/tags/data-infrastructure.md>), [datasets](<https://devfeed.tech/tags/datasets.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [feature-engineering](<https://devfeed.tech/tags/feature-engineering.md>), [inference](<https://devfeed.tech/tags/inference.md>), [latency](<https://devfeed.tech/tags/latency.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [pinterest](<https://devfeed.tech/tags/pinterest.md>), [production](<https://devfeed.tech/tags/production.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [systems](<https://devfeed.tech/tags/systems.md>), [train](<https://devfeed.tech/tags/train.md>), [transformers](<https://devfeed.tech/tags/transformers.md>)

### AI overview

Pinterest describes a redesign of its user-sequence platform for ranking, retrieval, and recommendation workloads. The article explains how enriched event sequences support training datasets, offline analysis, online inference, and latency-sensitive production use cases, with goals of reducing cost, improving extensibility, and simplifying debugging.

### Source excerpt

Authors (listed alphabetically) Ads Feature Engineering Infra team: Ajay Venkatakrishnan, Le Zhang Core ML Infra team: Eric Shang, Pihui Wei ML Data team: Connor Votroubek, Yi He User Understanding team: Camilo Munoz, Simin Li If you work on ranking, retrieval, or recommendation systems, you've probably asked for some version of the same thing: "Give me the last N meaningful actions this user took, with the right enrichments, in a format that's easy to train and serve ML models." On paper, that sounds simple. In practice, "user sequences" often become one of the most expensive and fragile parts of the ML data stack. They end up powering everything from training datasets to offline analysis and online inference, so they need to be fresh and complete at the same time. They must remain consistent as you add new events and enrichments. And they have to do all of this while serving latency-sensitive production workloads. This article walks through how we redesigned our user-sequence platform to make these sequences cheaper to run, faster to extend, and easier to debug, while still supporting demanding production use cases. What We Mean by "User Sequence" In this context, a user sequence is an ordered list of recent, relevant events for a user, along with the enrichments (signals) attached to each event. Here, enrichments mean all the extra signals we attach to raw events, so they're useful for models: embeddings (for example, Pin or query representations), contextual features (such as surface, device, or country), and derived attributes or counters that describe how the user interacted with a piece of content over time. A concrete example helps. Imagine a sequence made up of the last 500 engagements a user had with Pinterest Pins. Each event in that sequence might carry a timestamp, an action type, the surface where the action occurred, and a handful of embedding features or categorical attributes. As a data primitive, user sequences are powerful. They capture temporal b

## How Whatnot's Hourly ML Feature Pipeline Safely Handled a Failed Update

DevFeed: [How Whatnot's Hourly ML Feature Pipeline Safely Handled a Failed Update](<https://devfeed.tech/articles/the-ml-feature-pipeline-that-got-slower-and-no-one-noticed-23713.md>)

Original publisher: [Read original article](<https://medium.com/whatnot-engineering/the-ml-feature-pipeline-that-got-slower-and-no-one-noticed-8e90c224eae3?source=rss----162aeca881b0---4>)

Author: Whatnot Engineering

Published: 2026-05-07T16:01:01Z

Content type: article

Language: en

Sources: [Whatnot Engineering](<https://devfeed.tech/sources/whatnot-engineering.md>)

Topics: [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [data](<https://devfeed.tech/topics/data.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [data](<https://devfeed.tech/tags/data.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [feature](<https://devfeed.tech/tags/feature.md>), [feature-engineering](<https://devfeed.tech/tags/feature-engineering.md>), [feature-store](<https://devfeed.tech/tags/feature-store.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [ml](<https://devfeed.tech/tags/ml.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [run](<https://devfeed.tech/tags/run.md>)

### AI overview

Whatnot describes how its hourly ML feature pipeline handled a bad pull request that caused a feature group to produce zero rows. The online feature store served last-known-good features for up to two days, anomaly monitors detected the row-count drop, and the team reverted the change before the freshness gap became significant. The post shares lessons about safe degradation and operating frequently updated recommendation features.

### Source excerpt

David Kawashima, Miguel Fernandez-Montes Cuberta, Ford Bohrmann | Discovery A bad PR went out just as our hourly feature pipeline was about to run. The pipeline was responsible for recomputing fresh user behavior signals used in livestream ranking on the home feed. These features capture recent user intent: watches, bids, orders aggregated across users, sellers, and categories. A missed feature update means that the system stops responding to user signals immediately. This PR release caused one of our feature groups to suddenly produce zero rows ... but nothing broke! Even though a critical feature group for the model stopped updating, the online feature store continued serving the last-known-good features, buffered by a 2-day TTL and nothing broke explicitly. Our anomaly monitors went off immediately, flagging the drop in row counts. The team identified the bad change and reverted it before the freshness gap grew large enough to matter. No corrupted data reached production. The system absorbed the failure and degraded safely. This graceful degradation didn't happen by accident; it was the result of hardened processes from years of lived experience, seeing the way these systems can degrade in obvious or subtle ways. In this post, we share some of those lessons learned. The system: hourly feature pipeline Whatnot is a highly dynamic marketplace where buyers' preferences change at a moment's notice. A buyer might research a laptop, join a football-card break a few hours later, and buy chocolate before logging off for the night. Daily feature updates capture long-term preferences but miss intra-day shifts. To keep up with these rapidly changing buyer interests (in 2025) we moved from daily to hourly updates for features that power our ML feed ranking models. Fresher features are a critical component for capturing the live nature of the Whatnot marketplace, where the inventory available to purchase changes in real time. Moving from daily to hourly updates was a meaningful

## How Whatnot's Taxonomy Keeps Pace with a Marketplace That Won't Sit Still

DevFeed: [How Whatnot's Taxonomy Keeps Pace with a Marketplace That Won't Sit Still](<https://devfeed.tech/articles/how-whatnot-s-taxonomy-keeps-pace-with-a-marketplace-that-won-t-sit-still-23710.md>)

Original publisher: [Read original article](<https://medium.com/whatnot-engineering/how-whatnots-taxonomy-keeps-pace-with-a-marketplace-that-won-t-sit-still-ba934c2e4a8d?source=rss----162aeca881b0---4>)

Author: Whatnot Engineering

Published: 2026-03-25T14:22:19Z

Content type: article

Language: en

Sources: [Whatnot Engineering](<https://devfeed.tech/sources/whatnot-engineering.md>)

Topics: [recommendations](<https://devfeed.tech/topics/recommendations.md>), [bug](<https://devfeed.tech/topics/bug.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [ai](<https://devfeed.tech/tags/ai.md>), [bug](<https://devfeed.tech/tags/bug.md>), [ecommerce](<https://devfeed.tech/tags/ecommerce.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [platform](<https://devfeed.tech/tags/platform.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [taxonomy](<https://devfeed.tech/tags/taxonomy.md>)

### AI overview

Whatnot describes how it redesigned its marketplace taxonomy to change more rapidly across countries and discovery surfaces. The article explains why onboarding, browse, search, and recommendations need different taxonomy treatments, using supply-aware onboarding and the Labubu category as examples.

### Source excerpt

Marcus Gee | Discovery The hottest trends don't happen over months, but start suddenly. At Whatnot, our best sellers update their strategies in real time to stay in step with the market. Connecting buyers and sellers in this fast-changing landscape is one of the most important problems Whatnot solves, but in 2025, it was a major challenge. In this post, we're going to walk through how we overhauled the taxonomy system to evolve more rapidly, so our team could help new communities grow. There is No Single Taxonomy Whatnot supports over 200 categories across seven countries, and that number increases weekly. Our taxonomy is a platform primitive that underpins nearly every discovery experience. It shapes onboarding (what categories new users see), browse (how they navigate), search (how results are ranked), and recommendations (what their feed looks like). A bug in taxonomy doesn't break one feature; it degrades the entire discovery surface. That makes every change high-stakes. Here's what we learned the hard way: maintaining a single taxonomy doesn't work. A single taxonomy can't optimally serve onboarding, browse, and search at the same time, because these surfaces have different goals. Let's look at two examples to understand why: When new users join Whatnot, they choose categories they're interested in. That choice shapes the first feed they see. If a user selects a niche category with limited supply, their initial experience may feel sparse or low quality. For this reason, onboarding taxonomies are country-specific and supply-aware. We fold categories into broader parents, reorder them, or exclude them based on local marketplace density. Categories play a critical role in connecting enthusiasts and sellers. When Labubu surged in 2025, it was subcategorized under Toys, and new users struggled to find relevant shows. When we elevated Labubu to the first page of onboarding (a similar treatment given to other big categories like Pokémon Cards), it reduced this frictio

## Engineering stories behind the Medium Daily Digest Algorithm: Part 2

DevFeed: [Engineering stories behind the Medium Daily Digest Algorithm: Part 2](<https://devfeed.tech/articles/engineering-stories-behind-the-medium-daily-digest-algorithm-part-2-20318.md>)

Original publisher: [Read original article](<https://medium.engineering/engineering-stories-behind-the-medium-daily-digest-algorithm-part-2-c977ad0b134f?source=rss----2817475205d3---4>)

Author: Raphael Montaud

Published: 2025-08-28T11:31:36Z

Content type: article

Language: en

Sources: [Medium](<https://devfeed.tech/sources/medium.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [bloom-filter](<https://devfeed.tech/tags/bloom-filter.md>), [database](<https://devfeed.tech/tags/database.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [migration](<https://devfeed.tech/tags/migration.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

Medium explains how it reduced the cost and maintenance burden of filtering for its Daily Digest by replacing Bloom Filters with user-based direct database queries. The article is part of a four-part series about incremental improvements to the recommendation algorithm.

### Source excerpt

How we made our filtering 10x cheaper by removing our Bloom Filters Bloom Filters are great tools to make fast and cheap filtering. They also come with plenty of problems and can easily get expensive and cumbersome. We switched to user-based direct database queries, which made our filtering cheaper and easy to maintain. Here's the full breakdown of that migration. Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium's Daily Digest over the past year. When we started this work, the Digest was suboptimal -- and since it's a huge distribution surface, reaching millions of readers every day, we started working on incremental improvements.By the end of these projects, the digest was 10% more likely to convert users to paying members, less expensive to run, more flexible and easier to maintain and it's now providing higher quality recommendations for all our users, including our "power readers".This is told through the lens of our engineering team tackling a series of challenges one by one. Medium has a small team but we operate on a big scale. We're working our way through some technical debt and at the same time, striving to provide the best experience for our readers. This is the source of many interesting challenges.I hope this series helps you understand how the recommendations algorithm work and can help others who are facing similar technical challenges. This is probably the most technical story in the series, but I will keep it as simple as possible and hopefully this is interesting for non-technical readers too. Some Concepts Here's a little cheat sheet with some concepts you may need to follow along with this story You may need this to understand the rest of this postBloom Filters at Medium A lot of the filters I mention in this series are backed by Bloom Filters (I've described some of those filtering rules in Part 1 if you haven't read it already). We use Bloom filters to remove stories we think won't interest readers fro

## Engineering stories behind the Medium Daily Digest Algorithm: Part 1

DevFeed: [Engineering stories behind the Medium Daily Digest Algorithm: Part 1](<https://devfeed.tech/articles/engineering-stories-behind-the-medium-daily-digest-algorithm-part-1-20317.md>)

Original publisher: [Read original article](<https://medium.engineering/engineering-stories-behind-the-medium-daily-digest-algorithm-part-1-909a7ca5e807?source=rss----2817475205d3---4>)

Author: Raphael Montaud

Published: 2025-08-26T11:31:37Z

Content type: article

Language: en

Sources: [Medium](<https://devfeed.tech/sources/medium.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This engineering article begins a four-part series about improving Medium's Daily Digest recommendation algorithm. It describes a mismatch between recommendations in the Digest and the homepage feed, despite both using the same algorithm, model, and features, and introduces an investigation into differences in filtering.

### Source excerpt

How we made our email story recommendations better In this Part 1, you'll understand how we improved one of the main ways our users are exposed to our product and how that led to a massive 7% increase on the average reading time for the digest users. Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium's Daily Digest over the past year. When we started this work, the Digest was suboptimal -- and since it's a huge distribution surface, reaching millions of readers every day, we started working on incremental improvements.By the end of these projects, the digest was 10% more likely to convert users to paying members, less expensive to run, more flexible and easier to maintain and it's now providing higher quality recommendations for all our users, including our "power readers".This is told through the lens of our engineering team tackling a series of challenges one by one. Medium has a small team but we operate on a big scale. We're working our way through some technical debt and at the same time, striving to provide the best experience for our readers. This is the source of many interesting challenges.I hope this series helps you understand how the recommendations algorithm work and can help others who are facing similar technical challenges.Some Concepts Here's a little cheat sheet with some concepts you may need to follow along with this story You may need this to understand the rest of this postThe Discovery A little while back, Leigh, our Machine Learning Engineer and model training guru, started noticing something weird. The recommended stories in his digest were consistently not great matches for his reading profile. At the same time, the recommended stories in his homepage feed (what we call the "For You" feed) were consistently very well targeted. This was a bit puzzling and unexpected. Those two recommendation surfaces rely on exactly the same algorithm. We source stories the same way, and we rank them using the same mo

## Engineering stories behind the Medium Daily Digest Algorithm: Part 4

DevFeed: [Engineering stories behind the Medium Daily Digest Algorithm: Part 4](<https://devfeed.tech/articles/engineering-stories-behind-the-medium-daily-digest-algorithm-part-4-20319.md>)

Original publisher: [Read original article](<https://medium.engineering/engineering-stories-behind-the-medium-daily-digest-algorithm-part-4-ec7136f21acd?source=rss----2817475205d3---4>)

Author: Raphael Montaud

Published: 2025-08-25T18:31:30Z

Content type: article

Language: en

Sources: [Medium](<https://devfeed.tech/sources/medium.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [daily](<https://devfeed.tech/tags/daily.md>), [database](<https://devfeed.tech/tags/database.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [issue](<https://devfeed.tech/tags/issue.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This engineering article examines how Medium investigated repetitive Daily Digest recommendations reported by power users and made incremental improvements to the underlying algorithm. The series reports that the work improved conversion to paying memberships by 10%, reduced operating costs, and made the system more flexible and maintainable.

### Source excerpt

Cross-Digest diversification In this part 4, we'll see how we went from investigating a few complaints from digest power users to improving our digest recommendations across the board. Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium's Daily Digest over the past year. When we started this work, the Digest was suboptimal -- and since it's a huge distribution surface, reaching millions of readers every day, we started working on incremental improvements.By the end of these projects, the digest was 10% more likely to convert users to paying members, less expensive to run, more flexible and easier to maintain and it's now providing higher quality recommendations for all our users, including our "power readers".This is told through the lens of our engineering team tackling a series of challenges one by one. Medium has a small team but we operate on a big scale. We're working our way through some technical debt and at the same time, striving to provide the best experience for our readers. This is the source of many interesting challenges.I hope this series helps you understand how the recommendations algorithm work and can help others who are facing similar technical challenges.Some Concepts Here's a little cheat sheet with some concepts you may need to follow along this story You may need this to understand the rest of this postUser Complaints After we shipped all the changes mentioned in the previous installments of this series, we started seeing some support tickets coming in related to the digest: User complaints that started off our investigation I think we should appreciate the level of thoughtfulness our users put in those support tickets. We review those carefully and we take pride in reading and answering every support tickets. Those were forwarded to the recommendation team and we immediately thought that maybe we oversteered to much when we removed some of the filtering rules for the digest. User digests were too repet

## Inside Glassdoor's Multi-Stage Recommendation System

DevFeed: [Inside Glassdoor's Multi-Stage Recommendation System](<https://devfeed.tech/articles/inside-glassdoor-s-multi-stage-recommendation-system-22611.md>)

Original publisher: [Read original article](<https://medium.com/glassdoor-engineering/inside-glassdoors-multi-stage-recommendation-system-cee58b52a75a?source=rss----288d984af747---4>)

Author: Prateek Shekhar

Published: 2025-08-12T19:37:39Z

Content type: article

Language: en

Sources: [Glassdoor Engineering](<https://devfeed.tech/sources/glassdoor-engineering.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [recommendations](<https://devfeed.tech/topics/recommendations.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [ordering](<https://devfeed.tech/topics/ordering.md>), [ann](<https://devfeed.tech/topics/ann.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [ann](<https://devfeed.tech/tags/ann.md>), [glassdoor](<https://devfeed.tech/tags/glassdoor.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [recommender-systems](<https://devfeed.tech/tags/recommender-systems.md>)

### AI overview

This article gives a high-level overview of Glassdoor's hybrid, multi-stage recommendation system. It describes how the system uses user behavior, similar-user behavior, and item features to produce personalized recommendations for the Community Feed, Email, and Push notifications, with stages including candidate generation, filtering, scoring, and ordering.

### Source excerpt

Introduction: Recommendation systems are central to modern digital platforms, delivering personalized content by intelligently analyzing user behavior and preferences through advanced algorithms. Widely used in e-commerce, streaming services, social media, and online learning, they drive user satisfaction, engagement, and retention while supporting business growth. Typically, these systems operate using one or more of the following approaches: Collaborative Filtering: This approach examines user behavior by comparing how users interact with items. It identifies patterns by analyzing similar user actions. For example, if two users have watched or purchased similar items, the system will recommend those same items to other users with similar behavior. Content-Based Filtering: In this approach, the system analyzes the characteristics of the items themselves, such as text, images, or other features. It recommends items that have features similar to those a user has previously liked. For example, if a user enjoyed books with specific keywords, the system will suggest books with those exact keywords. Hybrid Approach: This approach combines collaborative and content-based filtering to enhance personalization and accuracy. It utilizes user behavior patterns in conjunction with item features, offering more personalized and accurate recommendations. At Glassdoor, our Community Feed, Email, and Push notifications are powered by a recommendation system that follows a hybrid approach. It analyzes individual users' behavior, such as posts, comments, and reactions, as well as the behavior of similar users, to deliver tailored, personalized recommendations. This post presents a high-level overview of the multi-stage architecture behind our system, highlighting candidate generation, filtering, scoring, ordering, and supporting infrastructure. Glassdoor's Recommendation System ArchitectureFigure 1: Glassdoor's Recommendation System Architecture Glassdoor's Recommendation System follo

## Unlocking the Power of Customization: How Our Enrichment System Transforms Recommendation Data...

DevFeed: [Unlocking the Power of Customization: How Our Enrichment System Transforms Recommendation Data...](<https://devfeed.tech/articles/unlocking-the-power-of-customization-how-our-enrichment-system-transforms-recommendation-data-23727.md>)

Original publisher: [Read original article](<https://medium.com/booking-com-development/unlocking-the-power-of-customization-how-our-enrichment-system-transforms-recommendation-data-e71832fc4ef4?source=rss----1c36c35f9c76---4>)

Author: Juan Pablo Lorenzo

Published: 2025-06-18T08:02:41Z

Content type: article

Language: en

Sources: [Booking.com Development - Medium](<https://devfeed.tech/sources/booking-com-development-medium.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [AI, ML & Data Engineering](<https://devfeed.tech/topics/ai-ml-data-engineering.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [data](<https://devfeed.tech/tags/data.md>), [java](<https://devfeed.tech/tags/java.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

This Booking.com engineering article describes an Enrichment System for its Recommendation Platform. The system is intended to provide reusable contextual data about recommendations, while addressing the complexity and tight coupling of the previous enrichment process.

### Source excerpt

Unlocking the Power of Customization: How Our Enrichment System Transforms Recommendation Data Enrichments How are accurate property prices on Booking.com connected to machine learning that recommends appealing property photos? What about the number of users who have wishlisted a property? And how can developers assess if their recommendation models effectively boost traveler clicks? None of these pieces of information are recommendations on their own, but they're crucial when providing our travelers good recommendations. For years, our Recommendation Platform has handled this process, but we needed a better way. Recommendation Platform is a service created to empower teams with adaptive, scalable, and personalized recommendations. These recommendations are integrated into every step of the customer journey, covering everything from attractions and flights to travel destinations and accommodation. We allow teams to use machine learning models combining multiple providers to achieve traveler recommendations. The platform is developed to be self-served and new use cases could be implemented by those teams. Check out our Self-Serve Platform for Scalable ML Recommendations article for a deeper look into how the platform works. Recommendations are valuable by themselves, but in most cases, information about the specific recommendation is just as important. Previously, adding such information was complex, lacked isolation, and had limited reusability. The new Enrichment System aims to overcome these challenges. The Enrichment System is a unified, extensible and scalable approach to support enrichments in the Recommendation Platform. When using data to develop new capabilities, being fast and efficient is key. But our previous enrichment process often stood as a barrier rather than a facilitator. Here's why: Complexity of implementation: imagine a developer eager to enhance a recommendation with new data insights. Under the old system, implementing a new enrichment require

## Announcing Laravel Support and PHP PDO Interface

DevFeed: [Announcing Laravel Support and PHP PDO Interface](<https://devfeed.tech/articles/announcing-laravel-support-and-php-pdo-interface-5889.md>)

Original publisher: [Read original article](<https://turso.tech/blog/announcing-laravel-support>)

Author: Levy Albuquerque

Published: 2025-01-09T00:00:00Z

Content type: release

Language: en

Sources: [Turso Blog](<https://devfeed.tech/sources/turso-blog.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [Turso](<https://devfeed.tech/topics/turso.md>), [PHP](<https://devfeed.tech/topics/php.md>), [libSQL](<https://devfeed.tech/topics/libsql.md>), [PHP Data Objects (PDO)](<https://devfeed.tech/topics/pdo.md>), [Composer](<https://devfeed.tech/topics/composer.md>), [Eloquent ORM](<https://devfeed.tech/topics/eloquent.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [features](<https://devfeed.tech/tags/features.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [libsql](<https://devfeed.tech/tags/libsql.md>), [orm](<https://devfeed.tech/tags/orm.md>), [php](<https://devfeed.tech/tags/php.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [turso](<https://devfeed.tech/tags/turso.md>)

### AI overview

Turso announces official Laravel support through the open-source libsql-laravel adapter and PHP PDO interface. The technical preview integrates with Laravel's database layer, supports local SQLite and Turso configurations, and removes the need for custom PHP extensions. The article also demonstrates migrations, Eloquent models, vector embeddings, and similarity searches for a movie recommendation system.

### Source excerpt

Use Turso natively with Laravel through our new 'libsql-laravel' adapter and PHP PDO interface. No custom PHP extensions, just a database URL and auth token.

## Location-Based Fashion Recommendations at Myntra

DevFeed: [Location-Based Fashion Recommendations at Myntra](<https://devfeed.tech/articles/decoding-the-regional-fashion-signatures-using-ai-20134.md>)

Original publisher: [Read original article](<https://medium.com/myntra-engineering/decoding-the-fashion-signature-using-embeddings-b21221806b7d?source=rss----7484818e9f88---4>)

Author: Siddhartha Devapujula

Published: 2024-04-22T11:25:37Z

Content type: tutorial

Language: en

Sources: [Myntra](<https://devfeed.tech/sources/myntra.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [recommendations](<https://devfeed.tech/topics/recommendations.md>)

Tags: [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [ecommerce](<https://devfeed.tech/tags/ecommerce.md>), [fashion](<https://devfeed.tech/tags/fashion.md>), [location-based](<https://devfeed.tech/tags/location-based.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [personalisation](<https://devfeed.tech/tags/personalisation.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [search](<https://devfeed.tech/tags/search.md>)

### AI overview

Myntra explains how machine-learning recommendation systems can use location as user side information to improve personalized fashion recommendations, including for cold-start users.

### Source excerpt

Authored By Rohit Gupta & Siddhartha Devapujula Introduction Millions of users visit Myntra daily to upgrade their wardrobes and millions of items are listed on the platform at any given time. Users neither have the time nor the capability to scroll through this vast list of items. Even after applying category and attribute filters, usually the number of items is still in thousands. Hence it becomes critical that the top search results for any user are both relevant and personalized. Just like search, many other recommendation widgets across the platform face the same challenges. Fashion Diversity -- Every Region has its own Fashion Showing each user the best styles for them from a catalog of million plus products is where machine learning based recommendation systems come into play. From search results on google to your netflix home screen, recommendation systems are working in the background to get you the best results. It is impossible to imagine modern age internet experience without these systems. The uber goal of these models is to take the user features and the vast list of items as input ,and generate a small personalized list of items for each user. For these systems to work, we mainly use the user's historical activity on the platform. In this blog we will see how using other kinds of user details can also enhance the quality of recommendations. In the next sections, we dive into the details of recommendation systems and related techniques. We explain the motivation for a location based recommendation system and how we built one at Myntra. Later we discuss a few use cases at Myntra, results and potential future work. Basics of recommendation systems This is a very simple read about recommendation systems by Google -- Recommendations: What and Why? | Machine Learning | Google for Developers. Readers can skip if they are already aware of this. Traditional recommendation models focus on using the user's historical interactions on the platform to learn. This wor

## From Pre-trained to Fine-tuned: Nextdoor's Path to Effective Embedding Applications

DevFeed: [From Pre-trained to Fine-tuned: Nextdoor's Path to Effective Embedding Applications](<https://devfeed.tech/articles/from-pre-trained-to-fine-tuned-nextdoor-s-path-to-effective-embedding-applications-20338.md>)

Original publisher: [Read original article](<https://engblog.nextdoor.com/from-pre-trained-to-fine-tuned-nextdoors-path-to-effective-embedding-applications-3a13b56d91aa?source=rss----5e54f11cdfdf---4>)

Author: Karthik Jayasurya

Published: 2023-09-07T11:31:32Z

Content type: article

Language: en

Sources: [Nextdoor](<https://devfeed.tech/sources/nextdoor.md>)

Topics: [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Fine-tuning](<https://devfeed.tech/topics/fine-tuning.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Natural language processing](<https://devfeed.tech/topics/nlp.md>), [Transformer](<https://devfeed.tech/topics/transformer.md>), [Development](<https://devfeed.tech/topics/development.md>), [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>)

Tags: [deep-learning](<https://devfeed.tech/tags/deep-learning.md>), [development](<https://devfeed.tech/tags/development.md>), [embedding](<https://devfeed.tech/tags/embedding.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [knowledge-graph](<https://devfeed.tech/tags/knowledge-graph.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [ml](<https://devfeed.tech/tags/ml.md>), [models](<https://devfeed.tech/tags/models.md>), [ranking](<https://devfeed.tech/tags/ranking.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

Nextdoor describes its evolution from using pre-trained transformer models as embedding feature extractors to fine-tuning embeddings with unlabelled and labeled data. The article covers how embeddings are developed, featurized, and served at scale for applications including notification scoring and feed ranking.

### Source excerpt

Background The majority of ML models at Nextdoor are typically driven by a large number of features that are primarily either continuous or discrete in nature. The personalized features usually stem from historical aggregations or real-time summarization of interaction features, typically captured through logged tracking events. However, representing content through deep understanding using information behind it (text/image) is crucial for modeling nuanced user signals and better personalizing complex user behavior across many of our products. In the rapidly evolving field of NLP, utilizing transformer models to perform representation learning effectively and efficiently has become increasingly important for user understanding and improving their product experience. Towards that, we have built a lot of entity embedding models spanning entities such as posts, comments, users, search queries & classifieds. We first leveraged deep understanding of content and used that to derive embeddings for meta entities like users based on their past interacted content. These powerful representations are found to be very crucial towards extracting meaningful features for some of the biggest ML ranking systems at Nextdoor such as notifications scoring and feed ranking. By making them readily available and building to scale, we can drive adoption of state-of-the-art reliably and put them in the hands of ML Engineers for rapidly building performant models across the company. This blog primarily focuses on how we iterated on the development of embedding models, how they are featurized and served at large scale into various product applications as well as some of the challenges encountered during this process. We summarize the evolution of work across three sections. In section 1, the focus is to leverage state-of-the-art pre-trained models to rapidly evaluate the value of embeddings models as feature extractors. Section 2 describes how to fine-tune embeddings using unlabelled data for

## Building a Real-Time Recommendation System with Personalized Suggestions in Under 100ms

DevFeed: [Building a Real-Time Recommendation System with Personalized Suggestions in Under 100ms](<https://devfeed.tech/articles/what-it-takes-to-build-a-real-time-recommendation-system-18632.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/real-time-recommendation-system>)

Author: Joe Karlsson

Published: 2023-07-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tinybird](<https://devfeed.tech/sources/tinybird.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [real-time](<https://devfeed.tech/tags/real-time.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendation-systems](<https://devfeed.tech/tags/recommendation-systems.md>), [scalable-analytics-architecture](<https://devfeed.tech/tags/scalable-analytics-architecture.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

A tutorial on building a real-time recommendation system that serves personalized suggestions in under 100 milliseconds.

### Source excerpt

Real-time recommendation systems drive revenue but most are too slow. Here's how to serve personalized suggestions in under 100ms.

## Personalized Fishbowl Recommendations with Learned Embeddings: Part 1

DevFeed: [Personalized Fishbowl Recommendations with Learned Embeddings: Part 1](<https://devfeed.tech/articles/personalized-fishbowl-recommendations-with-learned-embeddings-part-1-22615.md>)

Original publisher: [Read original article](<https://medium.com/glassdoor-engineering/personalized-fishbowl-recommendations-with-learned-embeddings-part-1-6031abe84661?source=rss----288d984af747---4>)

Author: Ahmad Khan

Published: 2022-01-07T21:48:24Z

Content type: article

Language: en

Sources: [Glassdoor Engineering](<https://devfeed.tech/sources/glassdoor-engineering.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>)

Tags: [doc2vec](<https://devfeed.tech/tags/doc2vec.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [fishbowl](<https://devfeed.tech/tags/fishbowl.md>), [glassdoor](<https://devfeed.tech/tags/glassdoor.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [word-embeddings](<https://devfeed.tech/tags/word-embeddings.md>)

### AI overview

Glassdoor's Fishbowl team describes the recommendation problem created by a growing volume of posts and explains the move from recency and global-popularity rankings toward personalized recommendations using machine learning and learned embeddings.

### Source excerpt

Glassdoor recently acquired Fishbowl, a professional networking community where working professionals can have workplace related conversations with other peers in the industry. Fishbowl users can anonymously write posts and see posts from other anonymous users in what we call "bowls": a collection of posts related to a certain workplace, industry or topic. Bowls can be an effective way to gain insights into workplace topics and conversations. The anonymous nature of the app can further encourage honest and frank discussion on topics users may otherwise feel uncomfortable discussing. Users can subscribe to different bowls and then see new posts from their subscribed bowls show up in their main home feed when they open the app. Every day Fishbowl users post thousands of new posts. With a growing and increasingly active user base that number will keep increasing. Surfacing the most interesting content to users can therefore become increasingly challenging with scale and a lack of personalization can detract from the overall user experience. Given the large number of possible posts to recommend and the small number of posts that can be surfaced to the user in app at any time, we have a typical recommendation system problem. From Global Rankings to Personalized Recommendations To personalize the posts recommended to a user we decided to use Machine Learning shortly after Glassdoor's acquisition. Prior to this Fishbowl just used the recency and global popularity of a post to sort what to show users in app. At the time of starting the project we also did not collect any explicit user click data that could have defined our problem into a classic supervised learning problem (e.g: predicting the probability of a user clicking a post given they saw the post). While we collected data on what posts a user anonymously liked or commented on we did not collect good data on if they saw or clicked a post at the time. Why is this important? If training a supervised model, we can use s

## Mindful Experimentation: Evaluate Recommendation System Performance using A/B Testing at Headspace

DevFeed: [Mindful Experimentation: Evaluate Recommendation System Performance using A/B Testing at Headspace](<https://devfeed.tech/articles/mindful-experimentation-evaluate-recommendation-system-performance-using-a-b-testing-at-headspace-24577.md>)

Original publisher: [Read original article](<https://medium.com/headspace-engineering/mindful-experimentation-evaluate-recommendation-system-performance-using-a-b-testing-at-headspace-3c8c05d0ae3b?source=rss-3da90e297190------2>)

Author: Headspace

Published: 2021-11-29T23:34:41Z

Content type: article

Language: en

Sources: [Stories by Headspace on Medium](<https://devfeed.tech/sources/stories-by-headspace-on-medium.md>)

Topics: [recommendation systems](<https://devfeed.tech/topics/recommendation-systems.md>), [A/B Testing](<https://devfeed.tech/topics/a-b-testing.md>), [data](<https://devfeed.tech/topics/data.md>), [Machine Learning & Artificial Intelligence](<https://devfeed.tech/topics/machine-learning-artificial-intelligence.md>)

Tags: [a-b-testing](<https://devfeed.tech/tags/a-b-testing.md>), [causal-inference](<https://devfeed.tech/tags/causal-inference.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [headspace](<https://devfeed.tech/tags/headspace.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [product-experimentation](<https://devfeed.tech/tags/product-experimentation.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>)

### AI overview

This article describes how Headspace evaluates its personalized Content Customizer recommendation system with online controlled experiments, or A/B tests. It explains why the full recommendation system should be assessed before production and outlines experiment design, including recommendation surfaces, supported platforms, and audience selection.

### Source excerpt

Author: Rohan Singh Rajput. Rohan is a Senior Data Scientist at Headspace. He combines his passion for Machine Learning with Causal Inference to improve the mindfulness and meditation practices of Headspace users. "If you can't measure it, you can't improve it." -- Peter Drucker. Motivation Content Customizer is Headspace's personalized recommendation system. Content Customizer uses historical data to train its machine learning model and provide personalized recommendations to the users, helping them discover more relevant content. There are various components involved in building a recommendation system, and the ML model is only one of them. Therefore, it is essential to evaluate the effectiveness of the recommendation system as a whole before deploying it to production. Online Controlled Experiments help us to assess our system's impact with statistical evidence. Online Controlled Experiments, a.k.a A/B testing, are the gold standard for estimating causality with high probability. A data-driven decision-making culture helps estimate the measurement's uncertainty to refute the null hypothesis based on experimental data. Furthermore, a random assignment of the users into a control-treatment group allows us to safely ignore the unobserved factors and model the parameters as random variables1. Experiment Design The following components are required to design the experiment. Recommendation Surface Area: We have a total of three surface areas for this experiment: First, in the Today tab, we will use the last three slots to display ML recommendations. Figure 1: Dynamic Playlist on Today's Tab Second is the Hero module, which is the top banner area of the Meditate/Sleep/Focus/Move tabs. Lastly, we will be using the recommended sub-tabs that also have three slots each for ML-powered content. Figure 2: Hero and Recommended Module of other four tabs In total, we have 19 places available for the experiment. The platform for Recommendation: Headspace serves on multiple platform

## Personalized search with a custom Solr plugin

DevFeed: [Personalized search with a custom Solr plugin](<https://devfeed.tech/articles/personalized-search-with-a-custom-solr-plugin-32024.md>)

Original publisher: [Read original article](<https://tech.finn.no2018/04/10/personalized-search/>)

Author: Henrik Falch

Published: 2018-04-10T06:00:00Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [personalization](<https://devfeed.tech/topics/personalization.md>), [recommendations](<https://devfeed.tech/topics/recommendations.md>), [API](<https://devfeed.tech/topics/api.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [backend](<https://devfeed.tech/tags/backend.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [query](<https://devfeed.tech/tags/query.md>), [recommendation-system](<https://devfeed.tech/tags/recommendation-system.md>)

### AI overview

This article describes FINN.no's work to improve classified-ad search relevance by combining Solr scores with recommendation scores. It discusses testing a custom Solr plugin that uses an existing recommendations API and lists requirements for personalization, algorithm changes, and score balancing.

### Source excerpt

Background On FINN.no people can search for classified ads, where the backend system is using Solr as the search engine. Default sorting on the vertical "torget" is by relevancy, which is based on Solr score. The Solr score for a document is again calculated from query relevance and the ad's published date. Here is an example searching for the word chair: Non-personalized search The first and third ad are bought positions, while the rest are sorted by published time and the importance of the word chair (Norwegian: stol). In the fall of 2017, we started experimenting with ways to improve the relevancy sorting. Our first try was by boosting geo distance, ads close to my position would get a higher score. But we could not see any positive changes for our product KPIs. Then we wanted to try sort by mixing scores from both Solr and our recommendation system. Our recommendation system already had an api where we could send a user id and a list of ad ids, and receive a recommendation score for each of the ads. A new solution We evaluated a few different solutions, mainly: learning to rank in Solr custom Solr plugin using the existing recommendations api Since we already had a system for recommendations, and awesome data scientists tuning the algorithms and so on, we chose to test the latter. An uncertainty was if we could get the response times needed for a search. Solr SearchComponent A Solr search component contains several phases used by the search handler. As we do not use sharded indices for the search we wanted to test, these are the important phases: prepare - Preparing the response -> parsing request parameters process - Processing the request for the current component Requirements the personalization score should influence the order of the search result we want to easily be able to change recommendation algorithm, and test a new one against the current search (with or without personalization) we also wanted to tune Solr score/recommendation score balance We theref

[Next page](<https://devfeed.tech/tags/recommendation-system.md?cursor=WyIyMDE4LTA0LTEwVDA2OjAwOjAwKzAwOjAwIiwgIjljNTM3YzY2LTQyN2MtNGI0Yy04OWVkLWE4ZTRkN2Q2OTE4NSJd>)