无差异偏好的匹配市场
- [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 行)。