2. 无差异偏好的匹配市场

无差异偏好的匹配市场

  • [1. 背景介绍](#1. 背景介绍)
    • [1.1. 匹配市场](#1.1. 匹配市场)
    • [1.2. 多臂老虎机](#1.2. 多臂老虎机)
    • [1.3. 匹配市场中的老虎机学习问题](#1.3. 匹配市场中的老虎机学习问题)
    • [1.4. 无偏差市场](#1.4. 无偏差市场)
  • [2. 中心化设定下的算法](#2. 中心化设定下的算法)
  • [2. 去中心化设定下的算法](#2. 去中心化设定下的算法)

1. 背景介绍

近期有一系列丰富的研究工作探讨了匹配市场(Matching Markets)中的参与者如何通过彼此间的迭代交互,来学习其未知的偏好。在多臂老虎机(Bandit Problem)问题的框架下,市场的两方参与者可以分别被建模为"玩家"(Players)和"臂"(Arms)。为了确保市场的稳定性,研究目标通常是最小化每位玩家的稳定遗憾(Stable Regret)。

  • 尽管现有工作为玩家的稳定遗憾提供了显著的理论上界,但这些结果在很大程度上依赖于"每位参与者都拥有严格偏好排名"这一假设。
  • 然而,在实际应用中,多个候选者(例如劳动力市场中的工人或入学申请中的学生)通常表现出相当的水平,这使得参与者(例如雇主或学校)难以区分并对偏好进行精确排序。

1.1. 匹配市场

双边匹配市场是经济学和运筹学中的一个核心概念。它提供了一个正式的框架来模拟两组截然不同的主体之间的交互,并在劳动力市场、学校录取、住房分配等领域有着广泛的应用。每个主体(如雇主)对另一方(如劳动力市场中的工人)都有自己的偏好,并寻求形成互利的配对。为了维持市场的稳定性,从而避免主体的不满以及未来的效率低下,一系列丰富的研究探讨了如何在市场中寻找稳定匹配,其中 Gale-Shapley 算法是最经典的算法之一。所有这些研究都假设主体的偏好是预先已知的。

然而,在现实应用中,对偏好的先验知识并不总是完全确定的。例如,雇主通常在聘用工人之前无法精确评估其能力。

  • 基于暂时性偏好估计所达成的稳定匹配,可能无法确保长期稳定性。
  • 随着 Upwork(在线劳动力平台)和 Amazon Mechanical Turk(众包平台)等在线市场的兴起,雇主越来越能够通过其发布的多个任务驱动的迭代匹配过程,来学习原本不确定的偏好。

1.2. 多臂老虎机

多臂老虎机是刻画主体学习不确定信息过程的经典模型,它也为撮合市场中的主体学习其未知偏好提供了解决方案。

经典的 多臂老虎机(MAB) 模型包含一个玩家(Player)和 K K K 个臂(Arms)。每个臂 a j a_j aj 都关联着一个未知的奖励 μ j \mu_j μj。玩家通过迭代选择来学习这些知识。玩家的目标是最大化累积奖励,这等同于最小化累积遗憾(Cumulative Regret)------即最优奖励与所获奖励之间的累积差距。

为了实现这一长期目标,玩家面临着探索与利用的权衡困境:

  • 探索:旨在选择观察次数较少的臂,以便更好地了解该臂的特性。
  • 利用:旨在选择表现较好的臂,以积累尽可能多的奖励。

解决这一问题的常用策略包括:先探索后提交(Explore-Then-Commit, ETC)、置信区间上界(Upper Confidence Bound, UCB)以及汤普森采样(Thompson Sampling, TS)。

1.3. 匹配市场中的老虎机学习问题

撮合市场中的老虎机学习问题近期引起了学术界的极大关注。在这种情境下,市场的两方参与者可以被建模为"玩家"(Players)和"臂"(Arms),玩家可以通过与臂的交互来学习其未知的偏好。

  • Das & Kamenica (2005) 首先引入了这一框架并提出了经验性解决方案。
  • Liu et al. (2020) 进一步给出了正式的理论公式,并推导出具有稳定遗憾(Stable Regret)理论保障的算法。稳定遗憾被定义为:稳定匹配下的奖励与交互过程中实际获得的奖励之间的累积差距。

在撮合市场场景中,由于多个主体之间存在相互干扰,单个玩家的选择很容易被"阻塞",这使得探索与利用之间的权衡变得更具挑战性。

  • 为了避免玩家之间的冲突,Liu et al. (2020) 考虑了中心化设置(Centralized setting),即由一个中心平台收集参与者的信息并为玩家分配合作伙伴。
  • 一系列丰富的后续研究试图通过考虑去中心化设置(Decentralized setting)来改进稳定遗憾的上界并推广该模型。

1.4. 无偏差市场

尽管这些研究成果具有重要意义,但现有工作无一例外都假设每个市场参与者都拥有严格的偏好排名,即对不同候选者的偏好值均不相同。然而,这一假设在现实中可能并不成立。

在劳动力市场和学校录取等许多应用场景中,多个候选者通常表现出相近的水平,从而导致偏好排名中出现平局(Ties)。特别是在大型市场中,对所有候选者维持一份严格的偏好排名不仅极其耗时,而且需要投入大量精力,而区分排名靠前的相近候选者所带来的边际收益却可能微乎其微。因此,为了提高算法的实用性和稳健性,处理参与者的无差异偏好(Indifferent preferences)至关重要。

目前,撮合市场领域最前沿的方法采用"先探索后 Gale-Shapley"策略(Explore-then-Gale-Shapley)来应对探索与利用之间的权衡(Zhang et al., 2022;Kong & Li, 2023;Kong et al., 2024)。在这些方法中,探索过程会一直持续,直到玩家识别出所有的偏好间隙(Preference gaps),随后算法转入利用阶段,应用 Gale-Shapley 算法(Gale & Shapley, 1962)来实现稳定匹配。然而,一旦两个"臂"表现出完全相同的偏好值,探索过程就永远不会停止,从而导致算法产生 O ( T ) O(T) O(T) 阶的遗憾值(其中 T T T 代表总时间跨度)。在存在无差异偏好的情况下,算法在平衡探索与利用时面临着新的困难:长时间的探索会产生额外的遗憾,而过早停止探索则可能导致排名估计错误,进而导致非稳定的匹配结果。

在这项工作中,我们尝试克服撮合市场中存在"无差异偏好"的老虎机学习问题所带来的上述挑战。尽管现有结果均假设市场参与者拥有严格的偏好排名,但我们探讨了这些结果是否可以扩展到无差异偏好的设定中。

  • 如表 1 所示,仅有 Liu et al. (2020) 和 Basu et al. (2021) 的方法可以应用于无差异偏好情况。然而,他们的方案要么需要预先知道最小偏好间隙 Δ \Delta Δ,要么会产生指数级的遗憾值。
  • 针对中心化和去中心化设定,我们提出了一种更合适的策略来平衡探索与利用------臂引导的自适应探索算法(Arm-guided Adaptive Exploration)。在该算法中,玩家仅探索向其发出"提议"的臂,并自适应地剔除次优臂。这种设计允许玩家自由探索,而无需显式区分探索和利用过程。

我们证明了该算法可以实现 O ( N K log ⁡ T / Δ 2 ) O(NK \log T / \Delta^2) O(NKlogT/Δ2) 阶的稳定遗憾,其中 N N N 是玩家数量, K K K 是臂的数量, T T T 是总时间跨度, Δ \Delta Δ 是最小非零间隙。我们进行了广泛的实验,结果表明,与现有基准方案相比,我们的算法具有出色的有效性和持续的领先优势。

References Stable regret bound Setting Holds under indifference?
Liu et al. (2020) O ( N K log ⁡ T Δ 2 ) O\left(\frac{NK \log T}{\Delta^2}\right) O(Δ2NKlogT) C ✘~(Corollary 9)~
Liu et al. (2021) O ( N 5 K 2 log ⁡ 2 T ρ N 4 Δ 2 ) O\left(\frac{N^5 K^2 \log^2 T}{\rho^{N^4} \Delta^2}\right) O(ρN4Δ2N5K2log2T) D ✘~(Lemma 8)~
Kong et al. (2022) O ( N 5 K 2 log ⁡ 2 T ρ N 4 Δ 2 ) O\left(\frac{N^5 K^2 \log^2 T}{\rho^{N^4} \Delta^2}\right) O(ρN4Δ2N5K2log2T) D ✘~(Lemma 1)~
Zhang et al. (2022) O ( K log ⁡ T Δ 2 ) O\left(\frac{K \log T}{\Delta^2}\right) O(Δ2KlogT) D ✘~(2nd paragraph in page 16)~
Kong & Li (2023) O ( K log ⁡ T Δ 2 ) O\left(\frac{K \log T}{\Delta^2}\right) O(Δ2KlogT) D ✘~(Lemma 4)~
Kong et al. (2024) O ( N 2 log ⁡ T Δ 2 ) O\left(\frac{N^2 \log T}{\Delta^2}\right) O(Δ2N2logT) C & D ✘~(Lemma A.5)~
Liu et al. (2020) O ( K log ⁡ T Δ 2 ) O\left(\frac{K \log T}{\Delta^2}\right) O(Δ2KlogT) C (Known Δ \Delta Δ)
Basu et al. (2021) O ( K log ⁡ 1 + ϵ T + 2 Δ − 2 / ϵ ) O\left(K \log^{1+\epsilon} T + 2^{\Delta^{-2/\epsilon}}\right) O(Klog1+ϵT+2Δ−2/ϵ) D
Ours O ( N K log ⁡ T Δ 2 ) O\left(\frac{NK \log T}{\Delta^2}\right) O(Δ2NKlogT) C & D

表 1:相关研究结果对比。 N N N 为玩家数量, K K K 为臂的数量, Δ \Delta Δ 在现有工作中代表所有玩家对不同臂的最小偏好间隙;若结果在无差异偏好(Indifference)情况下成立,则 Δ \Delta Δ 代表所有玩家对不同臂的最小非零偏好间隙。 ρ \rho ρ 和 ϵ \epsilon ϵ 为超参数。 C C C 和 D D D 分别代表中心化(Centralized)和去中心化(Decentralized)设定。我们使用微小字体标注了原始证明中在无差异设定下失效的部分,并在附录 A 中提供了更多细节。

2. 中心化设定下的算法

在本节中,我们将介绍所提出的基于臂引导 GS 的自适应探索算法(AE-AGS)。为了更好地传达该算法的核心思想,我们首先展示其中心化版本(算法 1)。在这一设定下,存在一个中心平台负责收集市场参与者的信息并计算匹配结果。(先看算法3,再到算法1,最后算法2)


Algorithm 1 adaptive exploration with arm-guided GS (AE-AGS)

1: for time slot t = 1 , 2 , ... t = 1, 2, \dots t=1,2,... do

2: \quad Collect the arms' preference rankings ( π j , i ) i ∈ [ N ] (\pi_{j,i})_{i \in [N]} (πj,i)i∈[N] from each arm a j ∈ K a_j \in \mathcal{K} aj∈K

3: \quad Collect the matched times ( T i , j ) j ∈ [ K ] (T_{i,j}){j \in [K]} (Ti,j)j∈[K] and the comparison matrix ( Better ( i , j , j ′ ) ) j , j ′ ∈ [ K ] (\text{Better}(i, j, j')){j,j' \in [K]} (Better(i,j,j′))j,j′∈[K] from each player p i ∈ N p_i \in \mathcal{N} pi∈N

4: \quad Compute A ( t ) = Subroutine-of-AE-AGS ( π j , i , T i , j , Better ( i , j , j ′ ) ) i ∈ [ N ] , j , j ′ ∈ [ K ] A(t) = \text{Subroutine-of-AE-AGS}(\pi_{j,i}, T_{i,j}, \text{Better}(i, j, j'))_{i \in [N], j,j' \in [K]} A(t)=Subroutine-of-AE-AGS(πj,i,Ti,j,Better(i,j,j′))i∈[N],j,j′∈[K]

5: \quad Assign the arm A i ( t ) A_i(t) Ai(t) to each player p i ∈ N p_i \in \mathcal{N} pi∈N

6: end for


具体而言,在每个时隙 t t t,每个臂 a j a_j aj 都会向中心平台提交其偏好排名 ( π j , i ) i ∈ [ N ] (\pi_{j,i})_{i \in [N]} (πj,i)i∈[N](第 2 行)。

  • 如果多个玩家具有相同的偏好,该臂可以随机打破平局(随机排序)。
  • 每个玩家 p i p_i pi 维护一个计数器 T i , j T_{i,j} Ti,j,表示 p i p_i pi 与臂 a j a_j aj 匹配的次数。
  • 玩家还维护一个针对每对臂的比较矩阵 B e t t e r Better Better。 B e t t e r ( i , j , j ′ ) = 1 Better(i, j, j') = 1 Better(i,j,j′)=1 表示 p i p_i pi 估计其对 a j a_j aj 的偏好高于 a j ′ a_j' aj′;而 B e t t e r ( i , j , j ′ ) = 0 Better(i, j, j') = 0 Better(i,j,j′)=0 则表示 p i p_i pi 仍无法区分 a j a_j aj 与 a j ′ a_j' aj′ 的表现,或者估计其对 a j ′ a_j' aj′ 的偏好高于 a j a_j aj。玩家会将该计数器和比较矩阵提交给中心平台(第 3 行)。
  • 随后,中心平台将根据收集到的信息计算匹配结果 A ( t ) A(t) A(t)(第 4 行),并将目标臂 A i ( t ) A_i(t) Ai(t) 分配给玩家 p i p_i pi(第 5 行)。

Algorithm 2 Subroutine-of-AE-AGS(匹配)
Input: Arms' preference rankings ( π j , i ) j ∈ [ K ] , i ∈ [ N ] (\pi_{j,i}){j \in [K], i \in [N]} (πj,i)j∈[K],i∈[N], player-arm matched times ( T i , j ) i ∈ [ N ] , j ∈ [ K ] (T{i,j}){i \in [N], j \in [K]} (Ti,j)i∈[N],j∈[K], comparison matrix ( Better ( i , j , j ′ ) ) i ∈ [ N ] , j , j ′ ∈ [ K ] (\text{Better}(i, j, j')){i \in [N], j,j' \in [K]} (Better(i,j,j′))i∈[N],j,j′∈[K]

1: Initialize: ∀ p i ∈ N \forall p_i \in \mathcal{N} ∀pi∈N, its available arm set A i = ∅ \mathcal{A}_i = \emptyset Ai=∅, temporarily matched arm m i = − 1 m_i = -1 mi=−1;
∀ a j ∈ K \quad \forall a_j \in \mathcal{K} ∀aj∈K, its current proposing ranking s j = 1 s_j = 1 sj=1, temporarily matched player m j − 1 = − 1 m_j^{-1} = -1 mj−1=−1

2: while ∃ a j : m j − 1 = − 1 \exists a_j : m_j^{-1} = -1 ∃aj:mj−1=−1 and s j ≤ N s_j \leq N sj≤N do

3: \quad Denote p i p_i pi as the player who ranked at the position s j s_j sj, i.e., p i : = π j , s j p_i := \pi_{j, s_j} pi:=πj,sj

4: \quad Update the available arm set: A i = A i ∪ { a j } \mathcal{A}_i = \mathcal{A}_i \cup \{a_j\} Ai=Ai∪{aj}

5: \quad Compute the estimated sub-optimal arm set in A i \mathcal{A}_i Ai:
D i = { a j ∈ A i : ∃ j ′ ∈ A i s.t. Better ( i , j ′ , j ) = 1 } \quad \quad \mathcal{D}_i = \{ a_j \in \mathcal{A}_i : \exists j' \in \mathcal{A}_i \text{ s.t. Better}(i, j', j) = 1 \} Di={aj∈Ai:∃j′∈Ai s.t. Better(i,j′,j)=1}

6: \quad Update the temporarily matched arm of p i p_i pi as m i ∈ arg ⁡ min ⁡ j ∈ A i ∖ D i T i , j m_i \in \arg \min_{j \in \mathcal{A}_i \setminus \mathcal{D}i} T{i,j} mi∈argminj∈Ai∖DiTi,j
\quad \quad Suppose a k a_k ak is the temporarily matched arm of p i p_i pi, i.e., a k = m i a_k = m_i ak=mi, update m k − 1 = p i m_k^{-1} = p_i mk−1=pi

7: \quad for a j ′ ∈ A i a_{j'} \in \mathcal{A}i aj′∈Ai and a j ′ ≠ m i a{j'} \neq m_i aj′=mi do

8: s j ′ = s j ′ + 1 , m j ′ − 1 = − 1 \quad \quad s_{j'} = s_{j'} + 1, m_{j'}^{-1} = -1 sj′=sj′+1,mj′−1=−1

9: \quad end for

10: end while
Output: Matching outcome m = ( m i ) i ∈ [ N ] m = (m_i)_{i \in [N]} m=(mi)i∈[N]


计算 A ( t ) A(t) A(t) 的详细步骤总结在 AE-AGS 子程序算法(算法 2)中。

总的来说,算法 2 可以被看作是一个基于 GS 算法的自适应探索算法,并由"臂"方担任提议方。

  • 各臂将根据提交的偏好排名,向其最青睐的玩家发出提议(第 3 行)。
  • 在收到的提议中,玩家首先会计算出估计的次优臂,即:如果存在一个臂 a j ′ a_{j'} aj′ 使得玩家 p i p_i pi 确定其偏好 a j ′ a_{j'} aj′ 超过 a j a_j aj,那么臂 a j a_j aj 就可以被视为次优臂(第 5 行)。
  • 每个玩家 p i p_i pi 都会从具有潜在最优性的臂中,接受匹配次数最少的那个臂的提议(第 6 行)。
  • 如果某个臂未被其提议的玩家接受,它将向下一个偏好的玩家发出提议(第 8 行)。
  • 直到所有臂都已匹配,或者所有臂都已经向全部 N N N 个玩家发过提议(第 2 行),算法停止并输出最终匹配结果。

值得注意的是,算法 2 确保在停止时,所有玩家都被分配到了不同的臂,因为 N ≤ K N \leq K N≤K。


Algorithm 3 AE-AGS (centralized version, from the view of player p i p_i pi)

1: Initialize: ∀ j ∈ [ K ] , μ ^ i , j = 0 , T i , j = 0 \forall j \in [K], \hat{\mu}{i,j} = 0, T{i,j} = 0 ∀j∈[K],μ^i,j=0,Ti,j=0
∀ j , j ′ ∈ [ K ] , Better ( i , j , j ′ ) = 0 \quad \forall j, j' \in [K], \text{Better}(i, j, j') = 0 ∀j,j′∈[K],Better(i,j,j′)=0 // Better ( i , j , j ′ ) = 1 \text{Better}(i, j, j') = 1 Better(i,j,j′)=1 implies that p i p_i pi considers that a j a_j aj is better than a j ′ a_{j'} aj′, Better ( i , j , j ′ ) = 0 \text{Better}(i, j, j') = 0 Better(i,j,j′)=0 otherwise

2: for time slot t = 1 , 2 , ... t = 1, 2, \dots t=1,2,... do

3: \quad Compute the upper and lower confidence bounds for each arm a j ∈ K a_j \in \mathcal{K} aj∈K as
UCB i , j = μ ^ i , j + 6 log ⁡ T / T i , j , LCB i , j = μ ^ i , j − 6 log ⁡ T / T i , j \quad \quad \text{UCB}{i,j} = \hat{\mu}{i,j} + \sqrt{6 \log T / T_{i,j}} , \text{LCB}{i,j} = \hat{\mu}{i,j} - \sqrt{6 \log T / T_{i,j}} UCBi,j=μ^i,j+6logT/Ti,j ,LCBi,j=μ^i,j−6logT/Ti,j
\quad \quad // If T i , j = 0 T_{i,j} = 0 Ti,j=0, then UCB i , j = ∞ , LCB i , j = − ∞ \text{UCB}{i,j} = \infty, \text{LCB}{i,j} = -\infty UCBi,j=∞,LCBi,j=−∞

4: \quad Update Better for any j , j ′ ∈ [ K ] j, j' \in [K] j,j′∈[K]: Better ( i , j , j ′ ) = 1 \text{Better}(i, j, j') = 1 Better(i,j,j′)=1 if LCB i , j ( t ) > UCB i , j ′ ( t ) \text{LCB}{i,j}(t) > \text{UCB}{i,j'}(t) LCBi,j(t)>UCBi,j′(t)

5: \quad Submit ( T i , j ) j ∈ [ K ] , ( Better ( i , j , j ′ ) ) j , j ′ ∈ [ K ] (T_{i,j}){j \in [K]}, (\text{Better}(i, j, j')){j,j' \in [K]} (Ti,j)j∈[K],(Better(i,j,j′))j,j′∈[K] to the central platform

6: \quad Receive A i ( t ) A_i(t) Ai(t) from the central platform and select this arm, receive reward X i , A i ( t ) ( t ) X_{i, A_i(t)}(t) Xi,Ai(t)(t)

7: \quad if p i p_i pi is successfully accepted by A i ( t ) A_i(t) Ai(t) then

8: μ ^ i , A i ( t ) = ( X i , A i ( t ) ( t ) + μ ^ i , A i ( t ) ⋅ T i , A i ( t ) ) / ( T i , A i ( t ) + 1 ) , T i , A i ( t ) = T i , A i ( t ) + 1 \quad \quad \hat{\mu}{i, A_i(t)} = (X{i, A_i(t)}(t) + \hat{\mu}{i, A_i(t)} \cdot T{i, A_i(t)}) / (T_{i, A_i(t)} + 1), T_{i, A_i(t)} = T_{i, A_i(t)} + 1 μ^i,Ai(t)=(Xi,Ai(t)(t)+μ^i,Ai(t)⋅Ti,Ai(t))/(Ti,Ai(t)+1),Ti,Ai(t)=Ti,Ai(t)+1

9: \quad end if

10: end for


玩家的操作流程总结在算法 3 中。

  • 每位玩家 p i p_i pi 维护 μ ^ i , j \hat{\mu}{i,j} μ^i,j 和 T i , j T{i,j} Ti,j,用以记录与臂 a j a_j aj 交互的估计偏好值及匹配次数(第 1 行)。
  • 在每个时隙 t t t,玩家 p i p_i pi 首先按照第 3 行计算置信上界 U C B i , j UCB_{i,j} UCBi,j 和置信下界 L C B i , j LCB_{i,j} LCBi,j。分析表明,真实偏好值 μ i , j \mu_{i,j} μi,j 以极大概率被限制在 [ L C B i , j , U C B i , j ] [LCB_{i,j}, UCB_{i,j}] [LCBi,j,UCBi,j] 范围内。
  • 一旦臂 a j a_j aj 的下界优于另一个臂 a j ′ a_{j'} aj′ 的上界,玩家 p i p_i pi 即可判定其对 a j a_j aj 的偏好高于 a j ′ a_{j'} aj′,并更新比较矩阵 Better ( i , j , j ′ ) = 1 \text{Better}(i, j, j') = 1 Better(i,j,j′)=1(第 4 行)。
  • 随后,每位玩家将匹配次数和比较矩阵的信息提交至中心平台(第 5 行),并接收分配的目标臂 A i ( t ) A_i(t) Ai(t)(第 6 行)。
  • 最后,玩家选择该臂,并根据获得的奖励更新估计偏好值及匹配次数(第 7-9 行)。

2. 去中心化设定下的算法

相关推荐
羊羊小栈1 小时前
基于「YOLO目标检测 + 多模态AI分析」的木材缺陷智能检测分析预警系统
人工智能·yolo·目标检测
柠檬威士忌9851 小时前
2026-05-10 AI前沿日报:算力、模型与安全评测同时加速
人工智能·安全
霍小毛1 小时前
数字孪生+多模态智能体:铁路施工安全的数智革命引擎
人工智能
ASKED_20191 小时前
Anthropic Agent最佳实践系列一: Agent 架构入门
人工智能·架构
饭后一颗花生米1 小时前
后端与AI技术融合:从落地实践到架构升级
人工智能·架构
平安的平安1 小时前
Python大模型Function Calling实战:让AI拥有工具使用能力
开发语言·人工智能·python
无心水1 小时前
【Hermes:MCP 与工具实战】31、多 Agent 编排:delegate_task 并行机制与安全设计 —— 让智能体组团作战,效率翻倍
人工智能·ai·mcp协议·openclaw·养龙虾·hermes·honcho
Data_Journal1 小时前
Puppeteer指纹识别指南:循序渐进,简单易学!
服务器·前端·人工智能·物联网·媒体
不知名的老吴1 小时前
深度剖析NLP模型的实现步骤(二)
人工智能·自然语言处理