Back to Feed
Agents / Reinforcement Learning

Simulating Realistic Human Shopping Behavior

Original: Towards Faithful Simulation of Human Shopping Behavior

Listen to the summary

Uses a voice available on your device

Audio options
On this page 5 sections
Related concepts 4 concepts

Key Takeaways

  • RecVerse utilizes a GUI-grounded approach that views interfaces through screenshots to generate multi-turn user behavior.
  • The model achieves significant improvements in behavioral fidelity and intent consistency over existing baselines.
  • The authors released the USB dataset to provide interactive e-commerce GUI trajectory data for future simulation research.
  • Reinforcement learning, when applied to the simulator, increased item-level F1 scores from 4.27 to 7.19 and Hit Rate from 5.92 to 10.45.

Summary & Methodology Analysis

RecVerse is a GUI-grounded simulation agent built on the Qwen3.5-2B backbone. It processes e-commerce interfaces by perceiving pixel-level screenshots, allowing it to navigate multi-turn trajectories. To optimize performance, the researchers utilize trajectory-level reinforcement learning, a technique that optimizes agents based on the final outcome of a sequence rather than just step-by-step imitation, alongside a hierarchical memory architecture that maintains situational context, interaction history, and high-level user intent. The system is trained using the Megatron-LM framework to ensure efficient distributed training across the model parameters. The methodology relies on macro-level rewards to align agent actions like clicking, adding to cart, or purchasing with observed real-world distributions. Micro-level rewards are also employed to enforce intent consistency, specifically by aligning the agent's category-based decisions with intended product goals. When tested against the STA baseline, RecVerse with reinforcement learning improved item-level F1 scores from 4.27 to 7.19 and Hit Rate from 5.92 to 10.45. The agent's performance in matching user browsing statistics is further bolstered by the inclusion of the USB dataset, which provides the necessary interactive e-commerce trajectories for training and evaluation. Despite these gains, the researchers note that while scaling the model improves intent modeling, it does not consistently replicate all dimensions of user browsing behavior. Future iterations will require enhanced personalization and more sophisticated modeling of individual browsing preferences to bridge the remaining performance gap identified by human evaluation.

Interactive System Flowchart

Click diagram to expand and zoom

Illustrative Implementation

A short sketch of the paper's core idea, not the authors' own code.

# Illustrative sketch (not from the paper)
import torch
import torch.nn as nn

# Backbone model (e.g., Qwen3.5-2B placeholder)
class Backbone(nn.Module):
    def forward(self, img):
        # encode screenshot to latent
        return torch.randn(1, 768)  # mock embedding

# Hierarchical memory containers
class WorkingMemory:
    def __init__(self, capacity=5):
        self.buf = []
        self.cap = capacity
    def update(self, embed):
        self.buf.append(embed)
        if len(self.buf) > self.cap:
            self.buf.pop(0)
    def get(self):
        return torch.stack(self.buf) if self.buf else torch.zeros(1, 768)

class EpisodicMemory:
    def __init__(self):
        self.records = []
    def add(self, text):
        self.records.append(text)
    def get(self):
        return " ".join(self.records)

class PreferenceMemory:
    def __init__(self):
        self.intent = None
    def distill(self, episodic_text):
        # simple heuristic to set high‑level intent
        self.intent = "category:" + episodic_text.split()[0] if episodic_text else None
    def get(self):
        return self.intent

# Policy network using backbone + memories
class RecVerseAgent(nn.Module):
    def __init__(self):
        super().__init__()
        self.backbone = Backbone()
        self.policy_head = nn.Linear(768, 10)  # 10 possible actions
        self.working = WorkingMemory()
        self.episodic = EpisodicMemory()
        self.preference = PreferenceMemory()
    def forward(self, screenshot, action_text):
        embed = self.backbone(screenshot)
        self.working.update(embed)
        self.episodic.add(action_text)
        self.preference.distill(self.episodic.get())
        # combine current embed with intent embedding (mocked)
        intent_vec = torch.randn(1, 768)
        state = embed + intent_vec
        logits = self.policy_head(state)
        return logits

# Trajectory‑level RL loop (simplified)
agent = RecVerseAgent()
optimizer = torch.optim.Adam(agent.parameters(), lr=1e-4)
for episode in range(10):  # mock episodes
    log_probs = []
    rewards = []
    for step in range(5):  # mock steps per trajectory
        screenshot = torch.randn(3, 224, 224)  # placeholder image tensor
        action_text = "click"  # placeholder textual observation
        logits = agent(screenshot, action_text)
        dist = torch.distributions.Categorical(logits=logits)
        action = dist.sample()
        log_probs.append(dist.log_prob(action))
        # mock macro and micro rewards
        macro = 1.0 if action.item() == 2 else 0.0
        micro = 0.5 if agent.preference.get() and "category" in agent.preference.get() else 0.0
        rewards.append(macro + micro)
    # trajectory‑level return
    R = sum(rewards)
    loss = -torch.stack(log_probs).sum() * R
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Cross-Examination & FAQs

A deeper dive clarifying mechanics, constraints, and baseline evaluations.

Q1. What is the primary goal of the RecVerse agent?

RecVerse aims to simulate faithful human shopping behavior by perceiving e-commerce GUIs through screenshots and generating realistic multi-turn trajectories.

Q2. What data is used to train and test these models?

The researchers use the USB dataset, which is an interactive e-commerce GUI trajectory dataset designed for multi-turn user simulation.

Q3. How does this research help engineers?

It provides a framework for generating realistic user simulation data that can be used to evaluate and refine e-commerce systems.

Q4. What is the backbone model for RecVerse?

All trainable models utilize Qwen3.5-2B as the backbone.

Q5. How much did reinforcement learning improve the agent's performance compared to the STA baseline?

Reinforcement learning improved the item-level F1 score from 4.27 to 7.19, the Hit Rate from 5.92 to 10.45, and the HCO from 23.11 to 32.64.

Q6. Does scaling the model solve all behavioral simulation issues?

No, scaling strengthens intent modeling but does not uniformly match all browsing statistics, and some behavioral dimensions still require further calibration.

Q7. What infrastructure was used for training?

The authors conducted distributed training using the Megatron-LM framework.

Q8. Are there limitations to the current simulation capabilities?

Yes, human evaluation indicates a performance gap between the simulator and real-world users, implying a need for better personalization and individual preference modeling.

Q9. Does the paper specify the number of layers in the model?

The paper does not specify the layer count.

Flag an issue

What is wrong with this summary?

What is wrong?