One email each morning — yesterday's AI, sortedGet it in your inbox

METAL LAB

GenMatch: An End-to-End Generative Matching Framework for Micro-View Order-Dispatching in Ride-Hailing

arXiv:2608.197512026-08-21

DiDi replaced its multi-step ride-hailing dispatch pipeline with one generative model and saw real-world gains

GenMatch is a production system from DiDi that rethinks ride-hailing order-dispatching, replacing the usual pipeline of predicting outcomes, computing values, and running a matching algorithm with a single end-to-end model that directly generates driver-order assignments. It encodes each batch of drivers and orders as a sparse bipartite graph, learns a unified sense of business value from mixed feedback signals like cancellations, and picks pairs one at a time while tracking which candidates remain valid. Deployed and A/B tested live across five cities in DiDi's international markets, it consistently beat the existing production system on completion rates and cancellations.

What they did

  1. Traditional industrial dispatch systems optimize prediction, value calculation, and matching as separate stages, so improving one stage doesn't guarantee a better final assignment — a problem the paper calls cross-stage objective inconsistency
  2. GenMatch reframes dispatch as generation: a Context-Aware Bipartite Encoder models the sparse graph of feasible order-driver pairs, a Business-Aware Utility Learner turns messy feedback (driver answers, passenger/driver cancellations) into one unified value signal, and a State-Aware Pointer Decoder picks pairs sequentially while removing conflicting candidates after each pick
  3. In live A/B tests across five cities, GenMatch improved completion ratio by 3.24% to 4.12% over the existing Kuhn-Munkres-based production pipeline (PDPKM) depending on demand level, and cut post-answer cancellations by up to 8.26% for passengers and 7.96% for drivers
  4. In offline evaluation, GenMatch improved answer ratio, completion ratio, and gross merchandise volume by 0.11%–1.17% and reduced average pickup time by 0.23%–0.72% versus PDPKM, and ablation experiments confirmed every proposed component contributes to these gains
  5. To serve this in production, DiDi rebuilt its infrastructure into a new Batch-Level Generative Dispatch Engine that assembles entire dispatch batches for inference instead of processing pairs independently, with automatic fallback to the old pipeline if anything fails
Figure 1. Comparison of (a) the end-to-end generative paradigm and (b) the conventional multi-stage paradigm for Micro-View Order-Dispatching.(a) The proposed end-to-end generative dispatch framework, which models each dispatch batch as a whole and directly generates the dispatch result in an autoregressive manner. (b) The conventional multi-stage dispatch paradigm, which performs pair-level prediction, value calculation, and dispatch matching in separate stages.
Figure 1. Comparison of (a) the end-to-end generative paradigm and (b) the conventional multi-stage paradigm for Micro-View Order-Dispatching.(a) The proposed end-to-end generative dispatch framework, which models each dispatch batch as a whole and directly generates the dispatch result in an autoregressive manner. (b) The conventional multi-stage dispatch paradigm, which performs pair-level prediction, value calculation, and dispatch matching in separate stages.
Table 1. Offline performance relative to PDPKM. Values are the mean ± standard deviation of percentage changes over five runs; bold and underline denote the best and second-best results.
VariantCity ICity IICity III
AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑
PDPKM0.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.00
PDPGreedy−1.86 ± 0.05−1.69 ± 0.09−0.24 ± 0.02−0.14 ± 0.01−0.97 ± 0.06−1.26 ± 0.04−0.25 ± 0.01−1.16 ± 0.06−1.92 ± 0.15−2.35 ± 0.18−0.31 ± 0.02−0.19 ± 0.02
PDPGS−0.42 ± 0.02−0.30 ± 0.03−0.06 ± 0.01−0.04 ± 0.00−0.38 ± 0.02−0.54 ± 0.02+0.10 ± 0.01−0.47 ± 0.04−0.79 ± 0.06−0.76 ± 0.07+0.14 ± 0.01−0.27 ± 0.02
D2SN−0.09 ± 0.03+0.18 ± 0.07−0.36 ± 0.02−0.05 ± 0.00−0.03 ± 0.09−0.19 ± 0.11−0.12 ± 0.01−0.47 ± 0.06−0.37 ± 0.12−0.44 ± 0.07−0.03 ± 0.01−0.24 ± 0.04
RLW−0.78 ± 0.04−0.50 ± 0.05+0.42 ± 0.02−0.02 ± 0.00−0.24 ± 0.03−0.48 ± 0.02+0.34 ± 0.03−0.27 ± 0.03−0.68 ± 0.08−0.71 ± 0.08+0.22 ± 0.03−0.16 ± 0.02
V1D3−1.07 ± 0.03−0.81 ± 0.07+0.29 ± 0.01−0.06 ± 0.01−0.39 ± 0.04−0.62 ± 0.03+0.26 ± 0.02−0.57 ± 0.05−0.93 ± 0.10−1.06 ± 0.11+0.18 ± 0.02−0.18 ± 0.02
CoRide−1.51 ± 0.09−1.27 ± 0.14+0.98 ± 0.03−0.13 ± 0.02−0.72 ± 0.08−1.02 ± 0.11+0.67 ± 0.03−0.96 ± 0.06−2.17 ± 0.21−2.54 ± 0.23+0.47 ± 0.04−0.43 ± 0.04
CoopRide−1.13 ± 0.07−0.93 ± 0.11+0.77 ± 0.03−0.10 ± 0.01−0.55 ± 0.06−0.74 ± 0.09+0.58 ± 0.02−0.76 ± 0.05−1.77 ± 0.14−1.33 ± 0.13+0.43 ± 0.04−0.33 ± 0.03
𝐆𝐞𝐧𝐌𝐚𝐭𝐜𝐡Value+0.29 ± 0.02+0.20 ± 0.03−0.76 ± 0.02−0.02 ± 0.00+0.14 ± 0.02−0.09 ± 0.01−0.19 ± 0.01+0.03 ± 0.01+0.46 ± 0.05+0.67 ± 0.06−0.58 ± 0.05+0.24 ± 0.02
GenMatch+0.51 ± 0.03+0.62 ± 0.04−0.72 ± 0.03+0.11 ± 0.01+0.31 ± 0.03+0.23 ± 0.02−0.40 ± 0.03+0.23 ± 0.03+0.83 ± 0.07+1.17 ± 0.12−0.23 ± 0.03+0.55 ± 0.03
Figure 2. GenMatch architecture: (a) Context-Aware Bipartite Encoder, (b) Business-Aware Utility Learner, and (c) State-Aware Pointer Decoder.The GenMatch architecture consists of a Context-Aware Bipartite Encoder, a Business-Aware Utility Learner, and a State-Aware Pointer Decoder. The decoder updates the selected and residual matching states after generating each OD pair.
Figure 2. GenMatch architecture: (a) Context-Aware Bipartite Encoder, (b) Business-Aware Utility Learner, and (c) State-Aware Pointer Decoder.The GenMatch architecture consists of a Context-Aware Bipartite Encoder, a Business-Aware Utility Learner, and a State-Aware Pointer Decoder. The decoder updates the selected and residual matching states after generating each OD pair.
Table 2. Core City III ablations relative to GenMatch (Full), reported as the mean ± standard deviation of percentage changes over five runs. Bold denotes the best result in each column.
ModuleVariantAR↑CR↑APT↓GMV↑
GenMatchFull0.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.00
EncoderA1−2.55 ± 0.12−3.07 ± 0.07+1.16 ± 0.02−2.28 ± 0.15
A2−2.43 ± 0.06−2.69 ± 0.03+1.14 ± 0.01−2.15 ± 0.06
A3−0.39 ± 0.06−0.25 ± 0.03+0.18 ± 0.02−0.40 ± 0.07
LearnerA4−2.76 ± 0.16−3.15 ± 0.08+1.17 ± 0.03−2.32 ± 0.18
A5−2.02 ± 0.08−2.34 ± 0.04+1.53 ± 0.02−1.88 ± 0.09
DecoderA8−1.11 ± 0.04−1.07 ± 0.02+0.86 ± 0.01−1.45 ± 0.05
A9−1.22 ± 0.14−0.96 ± 0.09+0.48 ± 0.04−0.78 ± 0.19
A12−2.46 ± 0.15−3.07 ± 0.20+0.16 ± 0.03−0.91 ± 0.05
Figure 3. Online gains of GenMatch across supply–demand periods (T−C vs. PDPKM).A grouped bar chart comparing low-, moderate-, and peak-demand periods. Completion-ratio gains increase from 3.24 percent to 3.96 percent and 4.12 percent. Passenger cancellation-after-answer ratio decreases by 1.76 percent, 7.71 percent, and 8.26 percent. Driver cancellation-after-answer ratio decreases by 3.48 percent, 4.31 percent, and 7.96 percent.
Figure 3. Online gains of GenMatch across supply–demand periods (T−C vs. PDPKM).A grouped bar chart comparing low-, moderate-, and peak-demand periods. Completion-ratio gains increase from 3.24 percent to 3.96 percent and 4.12 percent. Passenger cancellation-after-answer ratio decreases by 1.76 percent, 7.71 percent, and 8.26 percent. Driver cancellation-after-answer ratio decreases by 3.48 percent, 4.31 percent, and 7.96 percent.
Table 3. Online A/B test improvements over PDPKM (T−C). Overall averages the three cities; ∗ indicates p<0.05.
VariantCity IIICity IVCity VOverall
AR ↑CR ↑APT ↓GMV ↑AR ↑CR ↑APT ↓GMV ↑AR ↑CR ↑APT ↓GMV ↑AR ↑CR ↑APT ↓GMV ↑
𝐆𝐞𝐧𝐌𝐚𝐭𝐜𝐡Value0.88%2.31%∗−7.08%∗2.35%∗0.59%3.06%∗−4.55%∗2.43%∗0.75%∗1.67%∗−4.05%∗1.04%0.77%∗1.93%∗−4.85%∗1.49%∗
GenMatch3.18%∗5.37%∗−2.20%∗4.89%∗1.72%∗4.51%∗−1.68%∗3.93%∗2.01%∗3.26%∗−1.76%∗2.16%∗2.26%∗3.86%∗−1.84%∗2.97%∗
Figure 4. Production architecture of the Batch-Level Generative Dispatch Engine.The production architecture contains a control plane that collects requests, coordinates distributed shards, and assembles dispatch batches, and a compute plane that performs distributed feature extraction, candidate retrieval, and GenMatch inference.
Figure 4. Production architecture of the Batch-Level Generative Dispatch Engine.The production architecture contains a control plane that collects requests, coordinates distributed shards, and assembles dispatch batches, and a compute plane that performs distributed feature extraction, candidate retrieval, and GenMatch inference.
Table 4. Online changes in dispatch effectiveness and experience relative to PDPKM (T−C); ∗ indicates p<0.05.
MetricDelta (T−C)
Dispatch Effectiveness Measures
Broadcast Count−0.17%∗
Answer Count (↑)2.16%∗
Completion Count (↑)3.84%∗
Passenger Experience Measures
Passenger Bad Experience Ratio (PBE) (↓)−15.17%∗
Passenger Cancel Before Answer Ratio (PCBA) (↓)−9.28%∗
Passenger Cancel After Answer Ratio (PCAA) (↓)−7.61%∗
Driver Experience Measures
Driver Income (↑)2.99%∗
Driver Answer Ratio (DA) (↑)13.96%∗
Driver Cancel After Answer Ratio (DCAA) (↓)−6.99%∗
Figure 5. Effect of model capacity relative to the Medium configuration. Error bars denote standard deviations over five runs.Four panels show changes in answer ratio, completion ratio, average pickup time, and gross merchandise volume relative to the Medium configuration across three cities. Six configurations vary encoder depth, decoder depth, and hidden dimension.
Figure 5. Effect of model capacity relative to the Medium configuration. Error bars denote standard deviations over five runs.Four panels show changes in answer ratio, completion ratio, average pickup time, and gross merchandise volume relative to the Medium configuration across three cities. Six configurations vary encoder depth, decoder depth, and hidden dimension.
Table 5. Scale statistics of the five experimental cities.
SplitCityDaily Completed OrdersDaily Online DriversAvg. Trip Distance (m)
OfflineCity I3.04e+030.18e+033.47e+03
City II1.12e+040.55e+034.41e+03
Offline & OnlineCity III5.91e+030.43e+033.99e+03
OnlineCity IV1.73e+030.31e+034.29e+03
City V1.38e+040.68e+034.71e+03
(b) CR (↑)
(b) CR (↑)
Table 6. Complete ablation results relative to GenMatch (Full). Values are the mean ± standard deviation of percentage changes over five runs.
ModuleVariantCity ICity IICity III
AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑AR (%) ↑CR (%) ↑APT (%) ↓GMV (%) ↑
GenMatchFull0.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.00
EncoderA1−2.32 ± 0.04−2.61 ± 0.05+1.74 ± 0.02−0.57 ± 0.04−2.14 ± 0.07−2.55 ± 0.04+1.23 ± 0.04−2.07 ± 0.10−2.55 ± 0.12−3.07 ± 0.07+1.16 ± 0.02−2.28 ± 0.15
A2−2.25 ± 0.02−2.30 ± 0.02+1.61 ± 0.01−0.52 ± 0.02−1.95 ± 0.03−2.36 ± 0.02+1.06 ± 0.02−1.96 ± 0.05−2.43 ± 0.06−2.69 ± 0.03+1.14 ± 0.01−2.15 ± 0.06
A3−0.14 ± 0.02−0.12 ± 0.02+0.13 ± 0.01−0.04 ± 0.01−0.66 ± 0.05−1.04 ± 0.04+0.49 ± 0.03−0.72 ± 0.10−0.39 ± 0.06−0.25 ± 0.03+0.18 ± 0.02−0.40 ± 0.07
LearnerA4−2.47 ± 0.05−2.69 ± 0.06+2.03 ± 0.01−0.59 ± 0.05−2.20 ± 0.09−2.97 ± 0.06+1.28 ± 0.05−2.30 ± 0.15−2.76 ± 0.16−3.15 ± 0.08+1.17 ± 0.03−2.32 ± 0.18
A5−1.83 ± 0.03−1.99 ± 0.03+2.70 ± 0.01−0.45 ± 0.03−1.61 ± 0.05−1.90 ± 0.03+1.44 ± 0.03−1.70 ± 0.08−2.02 ± 0.08−2.34 ± 0.04+1.53 ± 0.02−1.88 ± 0.09
DecoderA6−1.12 ± 0.02−0.49 ± 0.02+0.76 ± 0.01−0.15 ± 0.01−0.98 ± 0.04−0.90 ± 0.02+0.53 ± 0.02−0.52 ± 0.03−1.47 ± 0.07−1.69 ± 0.04+0.63 ± 0.02−0.65 ± 0.04
A7−0.22 ± 0.01−0.18 ± 0.01+0.20 ± 0.00−0.06 ± 0.01−0.11 ± 0.02−0.40 ± 0.01+0.16 ± 0.01−0.24 ± 0.03−0.37 ± 0.05−0.28 ± 0.02+0.17 ± 0.01−0.43 ± 0.04
A8−0.86 ± 0.01−1.55 ± 0.01+1.39 ± 0.00−0.40 ± 0.01−0.67 ± 0.02−1.31 ± 0.01+0.90 ± 0.01−1.37 ± 0.04−1.11 ± 0.04−1.07 ± 0.02+0.86 ± 0.01−1.45 ± 0.05
A9−0.92 ± 0.03−0.63 ± 0.04+0.58 ± 0.02−0.27 ± 0.04−0.52 ± 0.07−1.05 ± 0.05+0.46 ± 0.04−0.69 ± 0.14−1.22 ± 0.14−0.96 ± 0.09+0.48 ± 0.04−0.78 ± 0.19
A10−1.57 ± 0.06−1.31 ± 0.07+1.09 ± 0.02−0.23 ± 0.07−1.35 ± 0.11−1.88 ± 0.07+0.71 ± 0.06−0.82 ± 0.20−1.84 ± 0.20−2.05 ± 0.10+0.73 ± 0.04−0.91 ± 0.24
A11−0.46 ± 0.07−0.85 ± 0.08+0.50 ± 0.03−0.31 ± 0.09−0.29 ± 0.13−1.38 ± 0.08+0.32 ± 0.07−1.12 ± 0.25−0.79 ± 0.24−0.84 ± 0.12+0.42 ± 0.05−1.04 ± 0.30
A12−1.93 ± 0.15−1.79 ± 0.10+0.59 ± 0.03−0.23 ± 0.01−1.08 ± 0.11−1.17 ± 0.14+0.25 ± 0.03−1.09 ± 0.07−2.46 ± 0.15−3.07 ± 0.20+0.16 ± 0.03−0.91 ± 0.05
(c) APT (↓)
(c) APT (↓)
Table 7. Auxiliary prediction AUC relative to PDP, reported as the mean ± standard deviation of percentage changes over five runs.
VariantCity ICity IICity III
𝐀𝐔𝐂DA (%) ↑𝐀𝐔𝐂PCAA (%) ↑𝐀𝐔𝐂DCAA (%) ↑𝐀𝐔𝐂DA (%) ↑𝐀𝐔𝐂PCAA (%) ↑𝐀𝐔𝐂DCAA (%) ↑𝐀𝐔𝐂DA (%) ↑𝐀𝐔𝐂PCAA (%) ↑𝐀𝐔𝐂DCAA (%) ↑
PDP0.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.000.00 ± 0.00
𝐆𝐞𝐧𝐌𝐚𝐭𝐜𝐡MTL+1.62 ± 0.11+0.84 ± 0.04+0.74 ± 0.07+1.79 ± 0.14+0.76 ± 0.05+0.45 ± 0.03+1.74 ± 0.15+0.82 ± 0.05+0.55 ± 0.03
(d) GMV (↑)
(d) GMV (↑)
Table 8. Sensitivity to λmtl relative to the selected value 10. Values are the mean ± standard deviation of percentage changes over five runs. Larger AR, CR, GMV, and AUC and smaller APT are preferred. Bold and underlined values denote the best and second-best results in each column, respectively.
λmtlCity ICity IICity III
AR↑CR↑APT↓GMV↑AR↑CR↑APT↓GMV↑AR↑CR↑APT↓GMV↑
0.01−0.29±0.05−0.44±0.06+0.67±0.01−0.19±0.05−0.27±0.05−0.29±0.06+0.43±0.01−0.57±0.05−0.78±0.05−0.88±0.06+0.22±0.01−0.60±0.05
0.1−0.17±0.02−0.39±0.02+0.37±0.01−0.08±0.02−0.19±0.02−0.22±0.02+0.24±0.01−0.24±0.02−0.49±0.02−0.46±0.02+0.16±0.01−0.35±0.02
1−0.11±0.03−0.07±0.03+0.20±0.01−0.02±0.03−0.08±0.03−0.14±0.03+0.12±0.01−0.18±0.03−0.20±0.03−0.17±0.03+0.05±0.01−0.11±0.03
100.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.000.00±0.00
100+0.21±0.05−0.11±0.06+0.13±0.01+0.05±0.05−0.07±0.05−0.16±0.06−0.13±0.01−0.06±0.05+0.08±0.05−0.33±0.06−0.08±0.01−0.28±0.05
1000−0.30±0.02−0.19±0.02−0.56±0.01−0.05±0.02−0.21±0.02−0.19±0.02−0.36±0.01−0.30±0.02−0.15±0.02−0.39±0.02−0.16±0.01−0.35±0.02
10000−0.67±0.03−0.25±0.03−0.81±0.01−0.17±0.03−0.42±0.03−0.32±0.03−0.47±0.01−0.67±0.03−0.49±0.03−0.44±0.03−0.17±0.01−0.41±0.03
Table 9. Model and training configurations of GenMatch.
ConfigurationSymbolValue
Encoder layersLenc2
Decoder layersLdec2
Hidden dimensiond128
Matching-attention heads4
Competition-attention heads4
Pointer headsPptr4
Feed-forward dimension512
Dropout ratio0.2
Multi-task shared-layer dimensions[256,256]
Multi-task tower dimensions[256,128,64]
DA loss weightλDA1.0
PCAA loss weightλPCAA1.0
DCAA loss weightλDCAA1.0
Multi-task-loss weightλmtl10.0
Maximum orders per batch500
Maximum drivers per batch500
Maximum candidate OD pairs10000
Training epochs50
OptimizerAdam
Learning-rate range×10−5–×10−4
Learning-rate schedulerCosine
Warm-up epochs3
Weight decay10−4
Batch size per GPU16
Global batch size64
Gradient clipping1.0

Why it matters

This is described as the first generative, end-to-end dispatch framework deployed in a real production ride-hailing system, offering a template for collapsing multi-stage industrial pipelines (common in recommendation, search, and advertising too) into a single trained model. It also documents concrete engineering solutions for running batch-level generative inference under strict latency constraints at scale.

Terms in this paper

  • bipartite graph · a graph with two separate groups of nodes (here, orders and drivers) where connections only go between the groups
  • pointer decoder · a generative model component that selects one item at a time from a changing set of remaining candidates
  • Kuhn-Munkres matching · a classic algorithm for finding the highest-value one-to-one pairing between two groups
  • A/B test · an experiment comparing a new system against the current one by splitting real user traffic between them
  • multi-task learning · training one model to predict several related outcomes at once, such as driver answers and cancellations

Original abstract (English)

Micro-View Order-Dispatching assigns available drivers to passenger orders within each dispatch batch and is critical to the service quality and operational efficiency of ride-hailing platforms. Mainstream industrial solutions follow a multi-stage paradigm of model prediction, value calculation, and dispatch matching. Although dispatch quality is determined by the final batch-level assignment, these stages optimize different intermediate objectives. This cross-stage objective inconsistency means that improving a single stage does not necessarily improve the overall dispatch result. We therefore formulate Micro-View Order-Dispatching as a generative matching problem and propose GenMatch, an end-to-end Generative Matching framework and the first such framework deployed in a real-world production environment. Applying generative modeling to this problem introduces three challenges. First, each dispatch batch forms a dynamic sparse bipartite graph, requiring efficient structured batch-level encoding. Second, replacing the hand-crafted value function requires learning unified business utility from heterogeneous feedback. Third, directly generating an assignment requires tracking the evolving matching state because each selected order-driver pair changes the remaining feasible candidates. GenMatch addresses these challenges with a Context-Aware Bipartite Encoder, a Business-Aware Utility Learner, and a State-Aware Pointer Decoder. Extensive offline evaluations and online A/B tests in five cities across DiDi's international ride-hailing markets show consistent improvements over competitive baselines, confirming the effectiveness and practicality of GenMatch for industrial order-dispatching.

Authors · Chuang Liu, Yuxueqing Zhang, Tengfei Lyu, Zirui Yuan, Weiqi Hu, Yanghan Cheng, Ming Wang, Li Ma, Zihao Lu

Read on arXiv

Latest papers

All papers →

Latest from METAL LAB

Figures: Chuang Liu et al., arXiv:2608.19751, arxiv-nonexclusive