FairDiff: Mitigating the Self-Reinforcing Matthew Effect in Diffusion Recommender Models
Organizations: Tsinghua University · University of Science and Technology of China · Huawei Noah’s Ark Lab
Abstract
While the "Matthew Effect" and filter bubbles are widely recognized outcome-level biases in recommender systems, we reveal that Diffusion Recommender Models (DRMs) uniquely compound this issue through their generative dynamics. Rather than merely inheriting data imbalances, DRMs trigger a self-reinforcing amplification of popularity bias. We identify that this phenomenon is driven by two compounding mechanisms. First, while optimization loss is universally dominated by high-frequency items across recommenders, DRMs suffer from a unique structural prior mismatch during generation. Because the forward terminal distribution of long-tailed data deviates significantly from the standard Gaussian prior, reverse sampling trajectories inherently collapse toward high-density popular items, fundamentally suppressing niche item generation. To dismantle this self-reinforcing loop, we propose FairDiff, a plug-and-play fairness-aware diffusion framework. To overcome the popularity-dominated loss, we introduce Popularity Condition Guidance (PCG). Rather than altering the training objective, PCG acts as an inference-time distributional reweighting mechanism, mathematically reshaping the score-based gradient field to penalize high-popularity regions and guide trajectories toward niche semantics. Furthermore, we design a Semantic Calibration (SC) Module to bridge the prior mismatch, aligning the forward and reverse distributions via one-step optimal transport. Comprehensive evaluations demonstrate that FairDiff achieves state-of-the-art performance while effectively mitigating the self-reinforcing Matthew Effect, highlighting its value as a general framework for DRMs.
Figures & tables
| Dataset | Metric | SASRec | BERT4Rec | TiMiRec | TIGER | BASRec | HSTU | ACVAE | CSRec | DreamRec | +FairDiff | DiffuRec | +FairDiff | CDiff4Rec | +FairDiff |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Beauty | H@5 | 3.27 | 2.13 | 1.90 | 3.53 | 5.37 | 5.25 | 2.47 | 5.48 | 5.61 | 6.55 | 5.73 | 6.94 | 5.83 | 7.29 |
| H@10 | 6.26 | 3.72 | 3.34 | 6.23 | 7.03 | 6.29 | 3.88 | 7.08 | 7.13 | 7.99 | 7.21 | 7.96 | 7.71 | 8.69 | |
| H@20 | 8.98 | 5.79 | 5.17 | 9.63 | 10.32 | 10.08 | 6.12 | 7.53 | 10.62 | 11.82 | 10.53 | 11.76 | 10.72 | 11.90 | |
| N@5 | 2.40 | 1.32 | 1.24 | 2.59 | 3.29 | 3.04 | 1.71 | 3.28 | 3.49 | 3.92 | 3.64 | 4.13 | 3.90 | 4.39 | |
| N@10 | 3.23 | 1.83 | 1.71 | 3.26 | 4.21 | 3.97 | 2.07 | 4.18 | 4.19 | 4.78 | 4.44 | 4.89 | 4.65 | 5.21 | |
| N@20 | 3.66 | 2.35 | 2.17 | 3.71 | 4.95 | 4.82 | 2.63 | 5.08 | 4.99 | 5.85 | 5.32 | 5.93 | 5.41 | 6.01 |
| Model | Recall 10 ( ) | NDCG 10( ) | Recall ( ) | NDCG ( ) | APLT ( ) | Exp ( ) |
|---|---|---|---|---|---|---|
| SASRec | 9.62 | 10.94 | 0.33 | 1.57 | 9.47 | 86.29 |
| BERT4Rec | 10.14 | 11.67 | 0.32 | 1.54 | 10.75 | 87.36 |
| TiMiRec | 10.34 | 12.82 | 0.16 | 1.37 | 13.73 | 84.98 |
| TIGER | 10.46 | 12.94 | 0.14 | 1.34 | 10.50 | 88.78 |
| BASRec | 6.45 | 12.76 | 0.35 | 1.66 | 9.49 | 90.54 |
| HSTU | 10.35 | 12.04 | 0.48 | 1.43 | 9.63 | 87.02 |
| Metric | Dim | Pop | SASRec | BERT4Rec | TiMiRec | TIGER | BASRec | HSTU | ACVAE | CSRec | DiffuRec | +FairDiff | DreamRec | +FairDiff | CDiff4Rec | +FairDiff |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| H@20 | Item | Cold | 2.85 | 2.12 | 3.67 | 3.92 | 5.12 | 5.18 | 2.56 | 5.32 | 2.51 | 5.59 | 2.74 | 5.93 | 2.87 | 6.45 |
| Mid | 7.12 | 4.37 | 7.45 | 8.12 | 7.98 | 4.12 | 7.55 | 7.41 | 7.87 | 10.07 | 8.02 | 10.68 | 10.54 | 12.73 | ||
| Hot | 9.42 | 10.23 | 9.05 | 12.75 | 12.08 | 13.90 | 12.32 | 12.94 | 16.09 | 17.35 | 17.21 | 18.58 | 18.08 | 19.14 | ||
| User | Cold | 5.72 | 7.32 | 8.05 | 9.27 | 9.12 | 7.15 | 9.44 | 9.48 | 6.14 | 11.75 | 7.14 | 14.78 | 7.56 | 16.28 | |
| Mid | 8.96 | 8.05 | 9.37 | 10.48 | 10.58 | 10.32 | 8.06 | 10.43 | 8.83 | 11.24 | 9.36 | 14.62 | 9.85 | 14.83 | ||
| Hot | 9.88 | 9.54 | 11.05 | 11.38 | 11.63 | 12.28 | 9.82 | 12.41 | 12.36 | 13.12 | 13.27 | 14.07 | 14.13 | 15.28 |
| Variant | Recall 10 | NDCG 10 | Recall | NDCG | APLT | Exp |
|---|---|---|---|---|---|---|
| CDiff4Rec | 11.29 | 14.13 | 0.58 | 2.49 | 9.33 | 91.23 |
| + PC ( ) | 12.01 | 14.72 | 0.46 | 2.12 | 10.84 | 86.41 |
| + PCG ( ) | 12.94 | 15.53 | 0.22 | 1.63 | 13.41 | 80.36 |
| + PCG ( ) | 12.48 | 15.02 | 0.11 | 1.29 | 14.02 | 78.91 |
| + SC (OT INI) | 12.36 | 15.01 | 0.34 | 1.88 | 12.67 | 84.75 |
| + SC + TS | 13.02 | 15.84 | 0.26 | 1.54 | 14.61 | 79.83 |
| Dataset | # Sequence | # items | # Actions | Avg len | Sparsity |
|---|---|---|---|---|---|
| Beauty | 22,363 | 12,101 | 198,502 | 8.53 | 99.93% |
| Toys | 19,412 | 11,924 | 167,597 | 8.63 | 99.93% |
| ML-1M | 6,040 | 3,416 | 999,611 | 165.50 | 95.16% |
| Steam | 281,428 | 13,044 | 3,485,022 | 12.40 | 99.90% |
| Dataset | Modalities | # Users | # Items | # Interactions | Sparsity |
|---|---|---|---|---|---|
| TikTok | V, A, T | 9,319 | 6,710 | 59,541 | 99.90% |
| Baby | V, T | 19,445 | 7,050 | 139,110 | 99.90% |
| Sports | V, T | 35,598 | 18,357 | 256,308 | 99.96% |
| Backbone | Datasets | Steps | Epochs | Training Time | Inference Time |
|---|---|---|---|---|---|
| DreamRec | Beauty | 350 | 248 | 369 minutes | 344 seconds |
| Toys | 323 | 365 | 472 minutes | 218 seconds | |
| Steam | 5430 | 215 | 1850 minutes | 2245 seconds | |
| ML-1M | 2649 | 301 | 1627 minutes | 180 seconds | |
| +FairDiff | Beauty | 145 | 109 | 163 minutes | 149 seconds |
| Toys | 131 | 153 | 195 minutes | 92 seconds |
| Datasets | Metrics | T-DiffRec | TI-DiffRec | GRU4Rec | +PDRec | +FairDiff | SASRec | +PDRec | +FairDiff | CL4SRec | +PDRec | +FairDiff |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Toy | N@1 | 0.1033 | 0.1058 | 0.0878 | 0.0899 | 0.1137 | 0.1095 | 0.1247 | 0.1426 | 0.1125 | 0.1254 | 0.1575 |
| N@5 | 0.1564 | 0.1618 | 0.1515 | 0.1617 | 0.1749 | 0.1779 | 0.2023 | 0.2218 | 0.1802 | 0.2041 | 0.2471 | |
| N@10 | 0.1758 | 0.1823 | 0.1755 | 0.1879 | 0.2114 | 0.2020 | 0.2286 | 0.2371 | 0.2046 | 0.2305 | 0.2415 | |
| HR@5 | 0.2055 | 0.2151 | 0.2128 | 0.2300 | 0.2451 | 0.2423 | 0.2752 | 0.2913 | 0.2438 | 0.2776 | 0.3048 | |
| HR@10 | 0.2657 | 0.2787 | 0.2874 | 0.3112 | 0.3473 | 0.3169 | 0.3568 | 0.3764 | 0.3195 | 0.3595 | 0.3864 | |
| AUC | 0.5911 | 0.5968 | 0.5670 | 0.5909 | 0.6127 | 0.5771 | 0.6060 | 0.6239 | 0.5805 | 0.6068 | 0.6398 |
| Methods | Movie Music | Book Movie | Book Music | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20% | 50% | 80% | 20% | 50% | 80% | 20% | 50% | 80% | ||||||||||
| MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | MAE | RMSE | |
| TGT | 4.4803 | 5.1580 | 4.4989 | 5.1736 | 4.5020 | 5.1891 | 4.1831 | 4.7536 | 4.2288 | 4.7920 | 4.2123 | 4.8149 | 4.4873 | 5.1672 | 4.5073 | 5.1727 | 4.5024 | 5.2308 |
| CMF | 1.5209 | 2.0158 | 1.6893 | 2.2271 | 2.4186 | 3.0936 | 1.3632 | 1.7918 | 1.5813 | 2.0886 | 2.1577 | 2.6777 | 1.8284 | 2.3829 | 2.1282 | 2.7275 | 3.0130 | 3.6948 |
| DCDCSR | 1.4918 | 1.9210 | 1.8144 | 2.3439 | 2.7194 | 3.3065 | 1.3971 | 1.7346 | 1.6731 | 2.0551 | 2.3618 | 2.7702 | 1.8411 | 2.2955 | 2.1736 | 2.6771 | 3.1405 | 3.5842 |
| SSCDR | 1.3017 | 1.6579 | 1.3762 | 1.7477 | 1.5046 | 1.9229 | 1.2390 | 1.6526 | 1.2137 | 1.5602 | 1.3172 | 1.7024 | 1.5414 | 1.9283 | 1.4739 | 1.8441 | 1.6414 | 2.1403 |
| Dataset | Metric | Dimension | Popularity | SASRec | DIN | BERT4Rec | ComiRec | TiMiRec | TIGER | BASRec | HSTU | ACVAE | CSRec | DiffuRec | +FairDiff | DreamRec | +FairDiff | CDiff4Rec | +FairDiff |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Steam | H@20 | Item | Cold | 0.32 | 0.41 | 0.25 | 0.21 | 0.38 | 0.45 | 0.52 | 0.50 | 0.36 | 0.55 | 0.61 | 0.82 | 0.78 | 0.95 | 0.85 | 1.02 |
| Mid | 4.15 | 4.82 | 3.97 | 3.25 | 4.68 | 4.95 | 5.12 | 4.98 | 4.72 | 5.36 | 5.21 | 5.45 | 5.02 | 5.26 | 5.38 | 5.62 | |||
| Hot | 15.28 | 16.95 | 14.87 | 13.65 | 16.25 | 15.82 | 16.53 | 16.10 | 15.76 | 17.23 | 17.85 | 19.12 | 19.08 | 20.23 | 18.95 | 21.05 | |||
| User | Cold | 6.25 | 7.18 | 6.02 | 5.38 | 6.95 | 7.52 | 7.88 | 7.65 | 7.02 | 8.15 | 7.95 | 16.82 | 17.49 | 18.56 | 8.52 | 19.10 | ||
| Mid | 12.35 | 13.18 | 11.97 | 10.85 | 12.88 | 13.52 | 13.85 | 13.62 | 12.95 | 14.23 | 14.58 | 16.95 | 17.36 | 17.52 | 15.10 | 18.02 | |||
| Hot | 14.82 | 15.95 | 14.56 | 13.98 | 15.78 | 16.25 | 16.68 | 16.35 | 15.89 | 17.52 | 17.95 | 18.88 | 16.27 | 17.35 | 17.23 | 19.05 |
| Dataset | Metric | BPR | LightGCN | VBPR | MMGCN | DualGNN | SLMRec | BM3 | MGCN | Freedom | DiffMM | +FairDiff | Imp. | DiffCL | +FairDiff | Imp. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TikTok | H@5 | 0.013 | 0.022 | 0.017 | 0.025 | 0.027 | 0.028 | 0.031 | 0.034 | 0.035 | 0.037 | 0.053 | +43.24% | 0.043 | 0.058 | +34.9% |
| H@10 | 0.022 | 0.031 | 0.028 | 0.038 | 0.043 | 0.044 | 0.049 | 0.054 | 0.056 | 0.068 | 0.099 | +45.6% | 0.075 | 0.108 | +44.0% | |
| H@20 | 0.040 | 0.052 | 0.049 | 0.062 | 0.068 | 0.071 | 0.078 | 0.085 | 0.089 | 0.110 | 0.128 | +16.4% | 0.122 | 0.139 | +13.9% | |
| N@5 | 0.007 | 0.014 | 0.010 | 0.016 | 0.017 | 0.017 | 0.019 | 0.021 | 0.022 | 0.025 | 0.041 | +64.0% | 0.026 | 0.048 | +84.6% | |
| N@10 | 0.012 | 0.020 | 0.015 | 0.022 | 0.023 | 0.024 | 0.026 | 0.028 | 0.030 | 0.032 | 0.044 | +37.5% | 0.037 | 0.055 | +48.6% | |
| N@20 | 0.019 | 0.028 | 0.022 | 0.031 | 0.033 | 0.034 | 0.037 | 0.040 | 0.042 | 0.045 | 0.052 | +15.6% | 0.049 | 0.067 | +36.7% |
| Setting | Algorithm | N@1 | N@5 | N@10 | N@20 | N@50 | HR@5 | HR@10 | HR@20 | HR@50 | AUC |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Game Toy | T-DiffRec (M) | 0.0981 | 0.1520 | 0.1727 | 0.1934 | 0.2375 | 0.2029 | 0.2673 | 0.3494 | 0.5780 | 0.5924 |
| TI-DiffRec (M) | 0.1053 | 0.1598 | 0.1806 | 0.2008 | 0.2407 | 0.2111 | 0.2759 | 0.3562 | 0.5623 | 0.5932 | |
| SASRec (M) | 0.1267 | 0.2019 | 0.2261 | 0.2490 | 0.2785 | 0.2722 | 0.3472 | 0.4380 | 0.5873 | 0.5951 | |
| PDRec(M) | 0.1302 | 0.2093 | 0.2348 | 0.2574 | 0.2873 | 0.2826 | 0.3616 | 0.4515 | 0.6026 | 0.6106 | |
| +PCG | 0.1395 | 0.2137 | 0.2497 | 0.2674 | 0.2935 | 0.3048 | 0.3784 | 0.4672 | 0.6173 | 0.6392 | |
| +SC | 0.1382 | 0.2125 | 0.2489 | 0.2682 | 0.2931 | 0.3045 | 0.3777 | 0.4668 | 0.6160 | 0.6386 |