深度模型(十五):Calibrated Recommendations

2023-10-23 12:30

本文主要是介绍深度模型(十五):Calibrated Recommendations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:Calibrated Recommendations

1 简介

推荐系统在许多不同的应用程序域中提供个性化的用户体验,包括在线购物,社交网络和音乐/视频流。

在本文中,我们揭示针对准确性(例如,排序指标)进行训练的推荐系统可以轻松生成关注用户主要兴趣领域的推荐项目列表,而用户的次要兴趣领域却往往未被充分利用甚至消失。随着时间的推移,这种不平衡的推荐可能会逐渐缩小用户的兴趣范围。此问题也适用于多个用户共享同一帐户的情况,在该情况下,同一帐户内不太活跃的用户的兴趣可能会在推荐中被排挤。我们将在第2节中的一些思想实验以及第6节中真实数据的实验中证明这种效果。

校准是机器学习中的一个通用概念,最近在机器学习算法公平性的背景下经历了复兴。如果分类算法的预测结果的比例与实际可以数据的实际比例一致,则将分类算法称为“校准”。类似地,在本文中,校准的目的是在推荐列表中通过适当的比例反映用户的各种兴趣。我们将在第3节中概述量化校准程度的指标。在第4节中,我们提出了一种算法,用于对给定的推荐列表进行后置处理,以使其达到(接近)校准的目的。在第5节中,我们讨论了相关概念和文献,并指出通常推荐多样性是以最小化推荐项目之间相似或冗余为目标的,这点不同于校准。第6节中,通过真实数据的实验,我们证明了用户的较小兴趣很容易被挤出。然后,我们展示了我们提出的方法在实现(接近)校准推荐方面的有效性。

为了便于说明,我们将使用“播放电影的用户”和“流派”,来解释“与项目互动的用户”以及“项目类别”。有关进一步的概括,请参见第4节的最后一段。

2 例子

在本节中,我们设计了一个思想实验,它说明了可能导致推荐项目列表不平衡的核心机制。我们分三步设计它,从最极端的情况开始。

我们考虑典型的离线情况,数据集由历史交互数据组成,并划分为训练和测试集(基于时间或随机划分);模型的目标是预测用户是否与测试集中项目进行交互,模型评估标准是预测的准确性。此设定的优点是易于实现,并且适用于公共数据的协作过滤。

在我们都例子中,我们假设用户已在离线训练数据中播放了70部浪漫电影和30部动作电影:我们的目标是生成例如包含10部推荐电影的列表,最大化测试数据的预测概率。为了简化讨论,让我们在本节中还假定两种类型是互斥的(即,电影要么是动作类型,要么是浪漫类型,但不是两者都具有)。

2.1 类均衡

在第一个也是最极端的情况下,让我们假设,我们只知道用户对类型的偏好,但是并不知道对于每个类型中的各个电影的偏好信息。在没有任何其他信息的情况下,此问题变得类似于监督机器学习中的不平衡分类问题:众所周知,始终预测多数类别的标签可以获得最佳的预测准确率。在二分类问题中,我们仅知道70%的数据点的标签为+1,而其余30%的点标签为-1,在没有任何其他信息的情况下,最好对于所有数据点预测标签为+1(这样我们可以预期70%的数据点的预测标签都是正确的)。相反,如果我们随机以70%和30%的概率预测标签+1和-1(它们出现在数据中),则可以预期预测的标签仅在0.7·70%+ 0.3·30%=58%的情况下是正确的。

对应我们的推荐场景,在没有任何其他信息的情况下,如果我们向用户100%推荐浪漫电影而不推荐任何动作电影,那么我们可以在测试数据上获得最佳准确性。

我们在本节中的假设(即我们没有其他可用信息)显然是非常极端。在现实世界中,或多或少将有更多可用数据–但是,数据始终是有限的或有噪音的,因此这种问题可能仍会在某种程度上存在。需要注意的是,此问题与特定机器学习模型无关,只要是模型是以准确率为训练目标。在第6节中的真实世界数据的实验中,我们揭示了确实存在推荐不平衡的风险:用户的次要兴趣点会被挤压,主要兴趣点会被放大。

这个问题可以理解为有偏推荐的问题:即使在最理想情况下,可用数据都没有偏向新,对有限数据的准确性进行的训练也会在推荐列表中引入偏向性,即,偏向于推荐用户的主要兴趣。

反过来,这也说明,更加均衡或经过校准的推荐的可能降低推荐的准确性。

2.2 稍负责的例子

本节开发了一个稍微复杂的思想实验:我用 p ( i ∣ g ) p(i|g) p(ig)表示用户决定播放 g g g类型电影时,电影 i i i被播放的概率。我们知道用户用户选择浪漫电影的概率为 p ( g r ∣ u ) = 0.7 p(g_r|u)=0.7 p(gru)=0.7,选择动作电影的概率 。 p ( g a ∣ u ) = 0.3 。 p(g_a|u)=0.3 p(gau)=0.3因此用户播放电影 i i i的概率表示为 p ( i ∣ u ) = p ( i ∣ g ) p ( g ∣ u ) p(i|u)=p(i|g)p(g|u) p(iu)=p(ig)p(gu)。为了最大化预测准确性,我们必须找到播放概率 p ( i ∣ u ) p(i|u) p(iu)最大的10部电影。我们来考虑动作电影的第一部电影 i g a , 1 i_{g_a},1 iga,1(动作类型电影里概率排名第1)和浪漫电影的第10部电影 i g r , 10 i_{g_r},10 igr,10(浪漫类型电影里排名第10),计算二则的播放概率比例:

p ( i g r , 10 ∣ u ) p ( i g a , 1 ∣ u ) = p ( i g r , 10 ∣ g r ) p ( i g a , 1 ∣ g a ) p ( g r ∣ u ) p ( g a ∣ u ) = 1 2.1 0.7 0.3 > 1 \frac{p(i_{g_r},10|u)}{p(i_{g_a},1|u)}=\frac{p(i_{g_r},10|g_r)}{p(i_{g_a},1|g_a)}\frac{p(g_r|u)}{p(g_a|u)}=\frac{1}{2.1}\frac{0.7}{0.3}\gt 1 p(iga,1u)p(igr,10u)=p(iga,1ga)p(igr,10gr)p(gau)p(gru)=2.110.30.7>1

其中我们从MovieLens 2000万数据集[13] .1中确定了2.1的值。如我们所见,在此稍微复杂的例子中,浪漫类第10位电影比最佳动作类电影被用户播放的可能性更高。因此,就准确性而言,在此示例中推荐的最佳10个电影再次都是浪漫类电影,而没有任何动作类电影。

2.3 Latent Dirichlet Allocation

以上的示例受到了潜在狄利克雷分配模型(LDA)的启发[5],该模型描述了用户通过两步过程选择电影:用户首先选择流派(或主题),然后选择电影(或单词)。我们提到LDA的原因有三个。

首先,如果我们在本节中假设真实世界的用户确实遵循了上述的选择电影的两步过程,则LDA模型是正确的模型。训练LDA模型后,它就能捕获每个用户兴趣及其比例。因此,遵循其生成过程时,可以期望获得平衡的推荐结果:首先,按用户u的兴趣类型分布 p ( g ∣ u ) p(g|u) p(gu)采样一个兴趣类型g ,然后按类型g的电影分布 p ( i ∣ g ) p(i|g) p(ig)采样电影i。采样的方法,与根据 p ( i ∣ u ) = p ( i ∣ g ) p ( g ∣ u ) p(i | u)=p(i|g)p(g|u) p(iu)=p(ig)p(gu)对电影进行排名的方法相比,会导致准确性降低。原因是 p ( i ∣ u ) p(i|u) p(iu)较低的电影 i i i也可能会被采样进推荐列表,甚至可能排名比较靠前。相比而言,排序方法会严格保证 p ( i ∣ u ) p(i|u) p(iu)值较大的进入推荐列表,并且严格按 p ( i ∣ u ) p(i|u) p(iu)降序。从而保证了推荐结果的准确性最大。然而排序方法并不能保证推荐结果的均衡。

其次,请注意,推荐不均衡的问题不仅限于使用显式类别(例如流派)的情况,而且还适用于使用潜在主题或嵌入的情况-LDA是这种模型。

第三,与LDA模型类似,不管电影是属于单一流派(硬分配)还是部分属于几种流派,都可能出现不均衡推荐的问题。

3 校准指标

在本节中,我们概述了根据用户的电影播放历史来校准推荐列表的量化指标。为此,我们考虑两个分布,这两个分布均基于电影i的流派g分布,表示为 p ( g ∣ i ) p(g|i) p(gi),并假定它们为:

  • p ( g ∣ u ) p(g|u) p(gu):表示用户历史播放数据集 H H H上流派 g g g的分布:

    p ( g ∣ u ) = ∑ i ∈ H w u , i p ( g ∣ i ) ∑ i ∈ H w u , i ( 2 ) p(g|u)=\frac{\sum_{i\in H}w_{u,i}p(g|i) }{\sum_{i\in H}w_{u,i}}\space\space\space\space (2) p(gu)=iHwu,iiHwu,ip(gi)    (2)

    其中 w u , i w_{u,i} wu,i表示电影 i 权重,反应用户 u 最近播放 i 的程度。

  • q ( g ∣ u ) q(g|u) q(gu):表示推荐列表的流派 g 的分布:

q ( g ∣ u ) = ∑ i ∈ I w r ( i ) p ( g ∣ i ) ] ∑ i ∈ I w r ( i ) ( 3 ) q(g|u)=\frac{\sum_{i\in I}w_{r(i)p(g|i)]}}{\sum_{i\in I}w_{r(i)}}\space\space\space\space(3) q(gu)=iIwr(i)iIwr(i)p(gi)]    (3)

其中 I 表示电影推荐集合。 w r ( i ) w_{r(i)} wr(i)表示电影 i 基于排序 r ( i ) r(i) r(i) 的权重。可能的选择包括在例如平均互惠等级(MRR)或归一化贴现累积增益(nDCG)等中的排序指标中使用的加权方案。

有多种方法来确定这两个分布 q 和 p 是否相似。考虑到这些分布是根据用户的N部推荐电影和M部播放电影这两个有限数据估算的,因此可以进行统计假设检验,其中Null假设这两个分布相同。通常进行关于两个随机变量的多项式分布的独立性测试:流派 g,以及反映两组电影 I 和 H 的另一个变量。假设N或M实际上可能是非常小的数字,可以进行精确测试,例如多项式测试或Fisher精确测试。但实际情况中这些测试的计算量可能较大导致实际中不可行。一种有效的替代方案是渐进检验(如果适用),例如G检验或χ2检验。

我们建议忽略有限数据大小N和M的影响,直接比较分布 p 和 q。为此,本文中,我们使用Kullback-Leibler(KL)散度作为校准指标CKL(p,q):

C K L ( p , q ) = K L ( p ∣ ∣ q ~ ) = ∑ g p ( g ∣ u ) l o g p ( g ∣ u ) q ~ ( g ∣ u ) ( 4 ) C_{KL}(p,q)=KL(p||\tilde{q})=\sum_{g}p(g|u)log\frac{p(g|u)}{\tilde{q}(g|u)}\space\space\space\space(4) CKL(p,q)=KL(pq~)=gp(gu)logq~(gu)p(gu)    (4)

其中 p ( g ∣ u ) p(g|u) p(gu)作为目标分布。如果 q ( g ∣ u ) q(g|u) q(gu) p ( g ∣ u ) p(g|u) p(gu)相似,则 C K L ( p , q ) C_{KL}(p,q) CKL(p,q)取值较小。由于 q ( g ∣ u ) = 0 , p ( g ∣ u ) > 0 q(g|u)=0,p(g|u)\gt 0 q(gu)=0,p(gu)>0情况下KL散度发散,我们采用:

q ~ ( g ∣ u ) = ( 1 − α ) g ( g ∣ u ) + α p ( g ∣ u ) ( 5 ) \tilde{q}(g|u)=(1-\alpha)g(g|u)+\alpha p(g|u)\space\space\space\space(5) q~(gu)=(1α)g(gu)+αp(gu)    (5)

当期 a p p h a > 0 appha\gt 0 appha>0取值较小时,有 q ≈ q ~ q\approx \tilde{q} qq~。 我们的实验中取 α = 0.01 \alpha = 0.01 α=0.01。在推荐场景下KL散度具有量化校准度所需的几个特点:

(1)如果 p ( g ∣ u ) = q ~ p(g|u)=\tilde{q} p(gu)=q~,也就是完美校准情况下,则 C K L ( p , q ) = 0 C_{KL}(p,q)=0 CKL(p,q)=0.

(2)当 p 较小时,它对 p 和 q 之间的微小差异非常敏感。例如, p = 2 % , q = 1 p=2%,q=1% p=2,q=1的值大于 p = 50 p=50%, q=49% p=50的值。

(3)它倾向于更均匀的分布,因此不希望出现极端的分布:如表1所示,如果用户在30%的时间里玩过某类型,则认为具有31%的推荐比29%的推荐更好。

这些特点确保用户很少玩过的流派也将以其相应比例反映在推荐列表中。除了KL散度之外,通常还可以使用其他 f 散度,例如p和q之间的Hellinger距离, C H ( p , q ) = H ( p , q ) = ∣ ∣ p − q ∣ ∣ 2 / 2 CH(p,q)= H(p,q)= ||\sqrt{p} −\sqrt{q} ||_2/2 CHpq=Hpq=p q 2/2,其中 ∣ ∣ ⋅ ∣ ∣ 2 || ·|| _2 2表示概率向量的2-norm(跨类型)。存在零值时,也可以很好地定义Hellinger距离。正如我们在实验中发现的那样,当p很小时,它对p和q之间的小差异也很敏感,但实验中我们发现程度要小于KL散度。

在这里插入图片描述

通过对所有用户的C(p,q)求平均值,可以获得总体校准指标C。

4 校准方法

推荐的校准是列表整体的属性。由于许多推荐系统是pointwise或pairwise方式进行训练的,因此可能无法将校准纳入训练中。建议在后置处理步骤中重排推荐系统的预测列表,这是校准机器学习结果的常见方法[10,30]。为了决定包含N个推荐结果的最优集合 I ∗ I^* I,我们采用最大边际相关性[6]:

I ∗ = a r g m a x I , ∣ I ∣ = N ( 1 − λ ) s ( I ) − λ C K L ( p , q ( I ) ) ( 6 ) I^*=argmax_{I,|I|=N}(1-\lambda)s(I) - \lambda C_{KL}(p,q(I))\space\space\space\space (6) I=argmaxI,I=N(1λ)s(I)λCKL(p,q(I))    (6)

其中参数 λ \lambda λ决定两个指标的权重:(1) s ( I ) = ∑ i ∈ I s ( i ) , s ( i ) s(I)=\sum_{i\in I}s(i),s(i) s(I)=iIs(i)s(i)表示推荐系统对电影 i的预测分数。请注意,也可以对每部电影的得分使用单调变换。(2)校准指标。还要注意,更好的校准需要较低的校准分数,因此在此最大化问题中我们必须使用负值。

找到N部推荐电影的最佳集合I *是一个组合优化问题,通常是NP-难问题。在附录中,我们概述了此优化问题的贪婪优化等效于替代亚模函数的贪婪优化。众所周知[17],亚模函数的贪婪优化实现了 ( 1 − 1 / e ) (1 - 1 / e) 11/e最优性保证,其中e是欧拉数。贪婪优化算法从空集合开始,每次添加一个电影,并不断重复此过程:在某步骤n, I n − 1 I_{n-1} In1表示添加电影 i 之前的最优集合,我们将在集合 I n − 1 ∪ i I_{n-1}\cup i In1i上最大化公式(6)的电影 i 添加到集合中。这种贪婪的方法还有其他好处。首先,它产生的是电影的有序列表,而不是(未排序的)列表。其次,在相同大小的列表中,此贪婪方法的每一步得到的列表都是 1 − 1 / e ) 1-1 / e) 11/e最优的。现实中,即使我们可以生成N个电影的排名列表,但用户可能最初只能看到前 n < N n<N n<N个推荐,其余电影只有在滚动后才可以看到。除此之外,用户可以从上到下扫描N个电影的列表。在这两种情况下,亚模块函数的贪婪优化都会自动确保推荐列表的前n部电影(n <N)的每个子列表都是(1/1 / e)最佳。

请注意,因此该方法允许电影i的可能属于多个流派g。此外,如果您喜欢针对几种不同类别(例如,流派,子流派,语言,电影与电视节目等)来校准推荐列表,可以使用单独的校准项 C K L 类 别 C^{类别}_{KL} CKL添加到等式中。对于每个类别,设置权重/重要性 λ 类 别 \lambda^{类别} λ。几个子模函数的总和仍然是一个子模函数,因此优化问题仍然有效。

5 相关概念

长期以来,校准一直在机器学习中使用,主要是在分类算法中使用,例如,[10,30]发现简单的后处理方法是有效的。近年来,校准受到了新的关注,特别是在机器学习算法公平性的背景下。

在推荐系统的文献中,除准确性外,各种其他的指标同样引起关注,参靠[21],。其中多样性最接近于校准。

5.1 多样性

在本节中,我们首先比较多样性和校准,然后讨论相关工作。

在大多数论文中定义的多样性,以最小化推荐项目之间的冗余或相似性为目标,在我们的示例中有助于避免推荐100%浪漫的电影的情况:在只有两种类型的电影的世界中,最多样化的推荐将包含50%的浪漫和50%的动作片。在拥有更多电影流派的世界(用户仅观看了70部浪漫情节和30部动作片)中,可以通过推荐用户尚未观看的其他流派的名称(例如儿童电影或纪录片)来增加多样性。但是,多样性不能保证动作类型的比例从0%增加到大约30%,以反映用户在我们的示例中的兴趣程度。只有正确的权衡准确性和多样性,才能获得经过良好校准的推荐。然而,这在实践中可能很难实现,因为这种折衷对于每个用户可能是不同的。这说明多样性的目的并不是直接以适当的比例反映用户的各种兴趣。这也是与校准的主要区别。

第二个主要区别是多样性可以帮助用户摆脱可能的过滤泡,因为它可能包括用户过去没有看过的电影类型。而目前描述校准不具有这种特性。这启发了对校准的扩展,将用户过去的兴趣之外的类型也包括在推荐列表中:

p ~ ( g ∣ u ) = β p 0 ( g ) + ( 1 − β ) p ( g ∣ u ) ( 7 ) \tilde{p}(g|u)=\beta p_0(g) + (1-\beta)p(g|u)\space\space\space\space(7) p~(gu)=βp0(g)+(1β)p(gu)    (7)

其中 p 0 ( g ) p_0(g) p0(g)表示类型g的先验概率,通过参数 β ∈ [ 0 , 1 ] \beta \in[0,1] β[0,1]权衡多向性和校准。

在许多论文中,如果推荐项目之间只有很小程度的冗余或相似性,则该列表被认为是多样化的。已经提出了多种方法来生成这类多样性的推荐,例如[4、15、31、32],包括行列式点处理[8、11]或子模优化,例如[1、2、19]。

研究的第二条线是对用户在未选择上面排名/显示的n-1个项中的任何一个(即浏览模型)之后从推荐列表中选择第n个项的概率进行建模。这个想法导致了被称为期望倒数排名(ERR)的排名指标[7],以及产生了更加多样化的排名列表的方法[20,27]。

只有很少的论文解决了重要的问题,即建议应以正确的比例反映用户的各种兴趣[9、25、26],我们将在下面讨论。

相称性的概念最早是在[9]中针对搜索结果的多样化提出的。在[9]中,提出的度量称为DP,本质上是分布 p ( g ∣ u ) p(g|u) pgu) q ( g ∣ u ) q(g| u) qgu之间的修正平方差。虽然它满足了第3节中用于校准指标的特点 1 的要求,但并未显示其他两个特点。

5.2 公平性

在机器学习领域中,公平的重要性最近急剧增长,例如,参见[33]和其中的参考以进行回顾。公平性与避免歧视人口中某些人或群体有关,例如基于性别,种族,年龄等。公平性通常与为人口中单个人预测的分数或类别标签有关。

文献中提出了各种公平性标准,包括校准,均等赔率,机会均等和统计均等[12,16,33]。 [12]使用均等赔率作为公平性度量标准,提出了一种后处理方法,[28]通过将公平性纳入训练目标中对此进行了改进。

这篇关于深度模型(十五):Calibrated Recommendations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/267837

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe