Hybrid Batch and On-Demand Recommendation Engine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing recommendation systems often face issues where software engineers may not fully understand the logic behind recommendation algorithms, leading to unintended changes, provide stale recommendations, and take excessive time to generate recommendations, potentially frustrating clients and resulting in lost sales.

Innovation Solution

A system that combines batch-processing and on-demand processing to efficiently provide recommendations, utilizing a database for client and item data, executable code for composable algorithms, and an algorithm engine that determines the execution method based on metadata, allowing for real-time or scheduled execution and result caching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If recommendation algorithms are executed using traditional on-demand processing, then recommendations can be provided in real-time, but the system may take an inordinate amount of time to provide recommendations, frustrating clients and causing lost sales

Engineering Contradiction:
Improverecommendation generation speedVSAvoidclient waiting time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The recommendation system is segmented into two distinct processing modes: batch-processing for pre-computing recommendations on large datasets, and on-demand processing for real-time individual recommendations. This segmentation allows the system to handle different types of requests efficiently, reducing overall client waiting time while maintaining comprehensive recommendation capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by executing batch-processing tasks that pre-compute recommendations before they are actually needed. These pre-computed results are stored and can be quickly retrieved when clients make requests, eliminating the need for time-consuming real-time computations and significantly reducing client waiting time.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If software engineers manually manage recommendation algorithms, then they can implement and maintain the system, but engineers may not fully understand the algorithm logic and may inadvertently change functions, reducing reliability

Engineering Contradiction:
Improvesystem implementation easeVSAvoidalgorithm function reliability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

An intermediary layer is introduced between the software engineers and the recommendation algorithms. This layer provides standardized interfaces and abstraction mechanisms that allow engineers to implement and maintain the system without needing to deeply understand the complex algorithm logic. The intermediary protects the algorithms from inadvertent changes while maintaining ease of system implementation and management.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If recommendation systems use batch-processing for large datasets, then processing efficiency is improved, but recommendations may become stale if not updated frequently enough

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidrecommendation freshness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements dynamic processing strategies where the choice between batch-processing and on-demand processing is not fixed but adapts based on the specific requirements of each recommendation request. This dynamics allows the system to maintain high processing efficiency for bulk operations while ensuring recommendation freshness for time-sensitive queries, resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10956960B2Method, medium, and system for batch-processing and on-demand processing to provide recommendations
Publication Date: 2021.03.23 STITCH FIX INC
  • US10956960B2 patent drawing
  • US10956960B2 patent drawing
  • US10956960B2 patent drawing

AI summary

Systems and methods described herein, which utilize a combination of batch-processing and on-demand processing to provide recommendations, can include database(s) that store client data, item data, and executable code for composable algorithms that utilize the client data and/or the item data to provide recommendations. The system also includes a batch-process results data store that stores results of composable algorithms executed using batch-processing. Additionally, the system includes an algorithm engine that accepts calls to composable algorithms and output results thereof. The algorithm engine determines which called composable algorithms are designated as being executable using batch-processing, and which are designated as being executable using on-demand processing. The algorithm engine returns results of called composable algorithms designated as being executable using on-demand processing by executing the executable code thereof, and returns results of called composable algorithms designated as being executable using batch-demand-processing by obtaining the results from the batch-process results data store.