Algorithms

Algorithms are directed graphs. In these graphs, each node represents a 'Batch' operation, which can be of four types: Personalized, Sampled, Biased, or Random. Each edge in the graph signifies a 'UserAction', which has two sub-categories: Batch and Signal.

In this system, users have two possible actions: sending signals and requesting new data batches. Each action updates the user's current state in the algorithm, and FirstBatch individually tracks these states.

What is a State?

A State identifies the current node in a session. It changes whenever a user performs an action, triggering two things:

  • Execution of the node's operation type

  • State update through the directed graph based on the user's action

Simple Algorithm

The "simple" algorithm below features three states: Discovery, Recommendation, and Expansion. Each node has its own operation type and associated parameters. Additionally, each node has at least one outgoing signal and batch edge that connects it to other nodes.

Here blue edges represent "batch" action, where purple operations represent "signal" action. An example run for a session starting at "Recommendation" state:

  • User action -> batch

  • Operation: personalized batch, params: {mu: 0, r:0, alpha:0}

  • New state: Expansion

  • User action -> Signal

  • New State: Recommendation

Last updated