1. Determinantal Point Process (DPP)

因为在读ACL2023关于retrieval-augmented ICL的时候碰到了DPP,他们在从training set或者corpus选择若干个demonstration的时候使用了DPP算法,保证了所选择的demonstration z和输入x之间的相似度(similarity),又保证了所选的demonstration的多样性(diversity)。

行列式点过程(DDP)是使用矩阵行列式计算一个集合Z中所有子集的概率,然后通过最大后验估计,从Z中找到与输入x相关性和多样性最大的子集。实际上这个算法常用于推荐系统,Z对应的是商品集合,x对应的是用户特征。而在ICL的demonstration selection中x代表输入文本,Z代表待选择的若干个demonstrations(candidates)。

对于一个给定的离散集合Z={1,2,3,...,M},当给定空集出现的概率的时候,存在由一个集合Z中元素构成的半正定矩阵LRM×M,对Z的每个子集Y,都有P(Y)det(LY)LY是子集Y中的任意两个元素作为下标,在矩阵L中对应的元素组成的行列式的值。

对任意的非零向量X,都有XTLX0L是半正定矩阵。

例如:

DPP_example

因为L是半正定的,存在矩阵B,使得L=BTB,并且P(Y)det(LY)=Vol2(Bi)iY

为了应用于实际场景中,进一步将Bi分解为Bi=rifi,在推荐中ri是item和user之间的相关性,ri0Sij=<fi,fj>是item i和item j之间的相似度,||fi||2=1,于是有:

Lij=<Bi,Bj>=<rifi,rjfj>=rirjsijP(Y)det(LY)=iYri2det(SY).

Lij是半正定矩阵L中的元素,那么原本的计算det(LY)的方法可以进一步推导,化为SY的行列式的累乘结果。在ICL中,ri对应输入和demonstration的相似度,sij代表不同demonstration之间的相似度。这样P(Y)越大,说明这个集合Y同时具有越大的similarity好人diversity。

2. 优化

优化目标为Y=argmax{det(LY)},直接优化是NP-hard问题,因此将其取对数之后转化为次模函数,f(Y)=log(argmax{det(LY)}),次模函数即边际效应,就是说随着向集合中添加元素,函数值的增加量会愈来越小,举个🌰,有一天你非常饿,吃第一口饭的时候获得的满足感很大,随着往后吃的越来越饱,你没吃一口饭的快乐和满足感都会减小,这就是边际效应。(emmm我觉得这个就像是谈恋爱,一开始是热恋期,随着天数的增加越来越觉得增加的幸福感很少了,最后变成日复一日也就那样。)

言归正传,既然这个取对数后的优化目标符合次模函数,那么有:

i=∈Z,XYZ/{i},f(Xi)f(X)f(Yi)f(Y),iXiY

直观说在前期集合小的时候加入一个元素带来的增益要更大。

那么优化问题可以转换为贪婪的形式:

Y=argmax{f(Yi)f(Y)}=argmax{log(det(LYi))log(det(LY))}

也就是说每次选择添加对下游任务最有帮助受益最大的example,知道满足指定的个数或者其他条件,构成demonstration。

 

以上内容参考了博客