Vela: User Behavior as Supervision
Training models from user histories is hard to score consistently; Vela turns earlier behavior into evidence and later behavior into prediction targets, alongside rubric-judged summaries and explanations.
Read the paper ↗What it is
- Visible history and hidden future A user’s timeline is split: earlier events are shown to the model, while later events can serve as outcomes to predict.
- Two ways to supervise Some questions ask what the user will do next; others ask for a summary or an explanation grounded in the history already shown.
- Leakage-aware task design A task avoids giving away a future event in one question when another question is meant to predict that same event.
Why it matters
Ordinary user histories are records, not ready-made training examples. This setup turns them into questions with either observed outcomes or evidence-based judging criteria, while preserving a meaningful boundary between what the model sees and what it must infer.
Before getting into the machinery, here is the basic idea: take a person’s past behavior, show some of it to a model, and ask questions whose answers can be checked against what happened later—or judged for how well they are grounded in the visible past. That matters because real histories contain signals about interests and habits, but a training task needs both a clear prompt and a way to evaluate the answer.
-
A record becomes useful when it has a boundary: The canonical example is a viewing history. If I show you the videos someone watched earlier and hide the later watches, I can ask what they are likely to watch next. The earlier events are evidence; the later events give the prediction target. Vela applies this idea to timestamped behavior records, including views, searches, purchases, posts, follows, and dislikes. The analogy to a closed-book test is useful, but it breaks if the “answer” is not a single item or if the visible history is too thin to support a guess. So the real question is: what can I ask when a future outcome is not the right kind of answer?
-
Prediction and interpretation need different scorecards: Consider the same viewing history. “Which account will this person follow?” can be compared with a follow that actually appears later. “What interests does this history suggest?” has no one exact string to match, so it needs criteria for whether the summary is supported by the visible record. Vela calls these Predictive and Rubric questions. Objective prediction gives a candidate list; Open-prediction asks for a free-form guess. Open asks for a summary, while Attribution asks why a supplied future action makes sense given the past. In mechanism terms, one scorecard checks against an observed outcome; the other checks whether the answer satisfies grounded criteria. Why not just put all four question types into every task?
-
The questions must not hand each other the answer: Here is the catch: suppose I ask you to predict a future purchase, then also ask you to explain that very purchase while showing it to you. The explanation question has leaked the target. Vela avoids using a Predictive question and an Attribution question for the same future event. This is like not giving away a test answer in the next question; unlike a classroom test, though, these tasks are built from a person’s actual history and can combine multiple questions about different evidence. So how do we construct questions that fit the evidence without crossing that boundary?
The practical answer is to use behavior categories and templates. A template is eligible when the relevant kind of behavior is present; prediction prompts can be formed around future outcomes, while summary and explanation prompts are grounded in visible history, with rubrics to judge them. The template inventory spans the six behavior categories and four question types. Overall, I like the separation of scorecards: exact outcomes are good supervision when available, and rubrics are a better fit for answers that should be grounded but need not have one canonical wording. The remaining question is how to choose which tasks are worth keeping—a separate stage of the framework.
Read the deep dive
Why People Wanted It
A user history contains evidence about preferences and habits, but simply handing that history to a model does not tell it what to learn or how to score its answer. The practical question is how to turn naturally occurring behavior into tasks with an observable target, without making every useful question depend on a single exact answer. Vela’s move is to divide a history into what the model may see and what remains hidden, then build both prediction tasks and evidence-grounded interpretation tasks around that split.
The Core Move
Treat a chronological behavior history as both context and supervision: earlier events are visible, later events are withheld, and a task combines questions scored either against those later events or against a rubric grounded in the visible record.
Let be the event sequence and let be the cutoff. The model receives and answers a task ; the future supplies targets for predictive questions. Predictive answers use future behavior as reference, while rubric answers are judged against task-specific criteria.
Why the Two Families Need Different Scores
Now the version for readers who want more of the machinery: the split creates two distinct supervision contracts, not merely two styles of prompt. Predictive questions have an answer source in the hidden future. Rubric questions instead have criteria tied to the visible history or to whether an explanation is supported by that history.
For Objective questions, the prompt includes candidate items, and selected candidates are matched against the future-derived answer set. Open-prediction removes the candidate list; a scorer extracts predicted items, maps semantic equivalents to reference items, and computes set-F1. The candidate list makes the target space explicit, while free-form prediction permits a wider response but requires normalization before scoring.
For Rubric questions, each answer is assessed against criteria with scores in . If there are criteria, the question score is . In words, the score is the equal-weight average of the criterion scores, rather than an exact-match test against one canonical sentence. A task score can then average question scores: . In words, each question contributes equally to the composite task score.
Why Attribution Must Not Give Away Prediction
Here is the part that gets technical: Attribution questions use a future event as something to explain, whereas Open-prediction questions ask the model to infer future events. If both questions expose the same event in one task, the explanation prompt has already leaked the prediction target.
The task synthesis rule therefore avoids selecting both a Predictive template and an Attribution template for the same future event. This preserves the distinction between inferring an outcome from visible evidence and explaining an outcome that has been supplied. Objective and Open-prediction are the two Predictive types; Open and Attribution are the two Rubric types. Open summarizes attributes, interests, or language style from visible history; Attribution explains a supplied future behavior using that visible history.
Why Templates Follow the Available Evidence
Now for the deeper construction constraint: templates are eligible only when their required behavior categories occur in the relevant segment. Histories are divided into segments while keeping each behavior record intact; within a segment, an earlier portion becomes visible and a later portion becomes hidden. Predictive questions are constructed by predefined rules, while Open and Attribution questions use a composer to produce a concrete question and rubric from the permitted evidence.
This means the task is not just a question pasted onto a log. Its type determines which evidence may be used to construct it and how an answer can be judged: future behavior supplies predictive references, while visible evidence grounds summaries and explanations. A separate module covers difficulty filtering and trajectory construction.
Minimal Causal Code
This deliberately plain loop shows the information boundary. The scorer receives future events only for predictive targets; rubric evaluation uses criteria built from the allowed evidence.
for history in histories:
cutoff = choose_cutoff(history)
visible = history[:cutoff]
future = history[cutoff:]
task = make_questions(visible, future)
answers = model(task, visible)
scores = []
for question, answer in zip(task, answers):
if question.kind in ("objective", "open_prediction"):
score = compare_with_future(answer, question, future)
else:
score = judge_against_rubric(answer, question.rubric, visible)
scores.append(score)
task_score = sum(scores) / len(scores)
What You Gain, and What You Lose
The gain is a supervision scheme that uses the same behavior history for two complementary jobs: predicting observed outcomes and interpreting visible evidence. Predictions have concrete future-derived references; summaries and explanations can be scored without pretending there is only one correct wording.
The tradeoff is that rubric scoring depends on criteria and a scorer, while open prediction needs semantic extraction and matching. The visible/hidden boundary also matters: show the future too early, and prediction stops measuring inference. Finally, answers are only as informative as the available histories and eligible templates; this turns behavior into supervision, not a guarantee that every task is useful.
Earlier behavior is evidence, later behavior is a target—and the task must not let one question reveal the other’s answer.