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
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
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
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
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
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.
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.
Variant
City I
City II
City III
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
PDPKM
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.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.
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.
Module
Variant
AR↑
CR↑
APT↓
GMV↑
GenMatch
Full
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
Encoder
A1
−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
Learner
A4
−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
Decoder
A8
−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.
Table 3. Online A/B test improvements over PDPKM (T−C). Overall averages the three cities; ∗ indicates p<0.05.
Variant
City III
City IV
City V
Overall
AR ↑
CR ↑
APT ↓
GMV ↑
AR ↑
CR ↑
APT ↓
GMV ↑
AR ↑
CR ↑
APT ↓
GMV ↑
AR ↑
CR ↑
APT ↓
GMV ↑
𝐆𝐞𝐧𝐌𝐚𝐭𝐜𝐡Value
0.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%∗
GenMatch
3.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.
Table 4. Online changes in dispatch effectiveness and experience relative to PDPKM (T−C); ∗ indicates p<0.05.
Metric
Delta (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.
Table 5. Scale statistics of the five experimental cities.
Split
City
Daily Completed Orders
Daily Online Drivers
Avg. Trip Distance (m)
Offline
City I
3.04e+03
0.18e+03
3.47e+03
City II
1.12e+04
0.55e+03
4.41e+03
Offline & Online
City III
5.91e+03
0.43e+03
3.99e+03
Online
City IV
1.73e+03
0.31e+03
4.29e+03
City V
1.38e+04
0.68e+03
4.71e+03
(b) CR (↑)
Table 6. Complete ablation results relative to GenMatch (Full). Values are the mean ± standard deviation of percentage changes over five runs.
Module
Variant
City I
City II
City III
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
AR (%) ↑
CR (%) ↑
APT (%) ↓
GMV (%) ↑
GenMatch
Full
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
Encoder
A1
−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
Learner
A4
−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
Decoder
A6
−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 (↓)
Table 7. Auxiliary prediction AUC relative to PDP, reported as the mean ± standard deviation of percentage changes over five runs.
Variant
City I
City II
City III
𝐀𝐔𝐂DA (%) ↑
𝐀𝐔𝐂PCAA (%) ↑
𝐀𝐔𝐂DCAA (%) ↑
𝐀𝐔𝐂DA (%) ↑
𝐀𝐔𝐂PCAA (%) ↑
𝐀𝐔𝐂DCAA (%) ↑
𝐀𝐔𝐂DA (%) ↑
𝐀𝐔𝐂PCAA (%) ↑
𝐀𝐔𝐂DCAA (%) ↑
PDP
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.00 ± 0.00
0.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 (↑)
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.
λmtl
City I
City II
City 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
10
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.00±0.00
0.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.
Configuration
Symbol
Value
Encoder layers
Lenc
2
Decoder layers
Ldec
2
Hidden dimension
d
128
Matching-attention heads
–
4
Competition-attention heads
–
4
Pointer heads
Pptr
4
Feed-forward dimension
–
512
Dropout ratio
–
0.2
Multi-task shared-layer dimensions
–
[256,256]
Multi-task tower dimensions
–
[256,128,64]
DA loss weight
λDA
1.0
PCAA loss weight
λPCAA
1.0
DCAA loss weight
λDCAA
1.0
Multi-task-loss weight
λmtl
10.0
Maximum orders per batch
–
500
Maximum drivers per batch
–
500
Maximum candidate OD pairs
–
10000
Training epochs
–
50
Optimizer
–
Adam
Learning-rate range
–
×10−5–×10−4
Learning-rate scheduler
–
Cosine
Warm-up epochs
–
3
Weight decay
–
10−4
Batch size per GPU
–
16
Global batch size
–
64
Gradient clipping
–
1.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