跳转到内容
学习 > 学习文档
本文内容

4.3 处理降次问题

具体案例:银行信用评分卡设置的降阶案例

大家在借用充电宝的时候,都会显示一个信用评分的免押金弹窗,这是我们常见的一种信用等级评分。当我们在申请银行信用卡或相关的贷款业务时,银行对客户授信之前,需要先通过各种审核规则对客户的信用等级进行评定,通过评定后的客户才能获得信用或贷款资格,这是我们看不见的一种信用等级评分。

在银行业,规则审核过程实际是经过一重或者多重组合规则后对客户进行打分,这些规则就被称为“信用评分卡”。每个信用评分卡又有多种阈值设置(有且只有一个阈值生效),这就使得不同的信用评分卡在不同的阈值下,对应不同的通过率和坏账率,一般通过率越高,坏账率也会越高,反之,通过率越低,坏账率也越低。

对银行来说,通过率越高,通过贷款资格审核的客户数量就越多,相应的银行获得的利息收入就会越多,但高通过率一般对应着高坏账率,而坏账意味着资金的损失风险,因此银行最终的收入可以定义为:

最终收入= 贷款利息收入-坏账损失

我们将该问题进行如下简化:假设贷款资金为100万元,银行贷款利息收入率为8%,要为3种信用评分卡选取阈值。三种信用卡组合后,总通过率为所有信用卡的通过率相乘,坏账率为三种评分卡对应坏账率的平均值。也就是说:

贷款利息收入=贷款资金×利息收入率×总通过率×(1-总坏账率)

那么,如何设置合理的阈值,使得最终收入最多?

实际上使用QUBO建模可以进行求解,得到高收益的银行卡设置方案。

y1jy2jy3j分别代表第1、2、3种信用评分卡选择,第j个阈值,选择则取1,不选则取0。h1jh2jh3j分别是第1、2、3种信用评分卡选择第j个阈值的坏账率,那么最终的收益率可以表达为:

f(y)=ijk100×0.8×(y1it1i y2jt2j y3kt3k)(113(h1i+h2j+h3k))100×(y1it1i y2jt2j y3kt3k)×13(h1i+h2j+h3k)

表达式中出现了高次项:y1iy2jy3k已经是三次项,需要借助降阶把它变成二次项。设置辅助变量qij,用它替换公式中的y1iy2j并约束qijy1iy2j。借助新增的辅助变量和约束,原问题就转化为了二次问题。而要使得约束成立的方式是在原式中添加惩罚项,即Rosenberg二次惩罚项:

p(y1i, y2j, qij)=y1iy2j2y1iqij2y2jqij+3qij

最终新的多项式为:

f(y, q)+kijp(y1i, y2j, qij)

其中k是惩罚项系数。

🎯其它降阶方法

对于特定的情况,也存在一些特殊的降阶方法。如当某一高次项的系数为负数时,可以使用不同的二次化方法:

b1b2bn=(n1)baibiba

其中ba是辅助变量。

b1b2...bn1时,说明对所有的都满足bi1,由于ba的取值只受b1b2...bn影响,所以容易验证当ba取1时等式右侧QUBO值更低。当等式右侧取最低值时正好与等式左侧相等,取值为-1。

b1b2...bn0时,说明存在bi都满足bi=0ba取1代入等式右侧得到:

n1ibi0

所以容易验证当ba取0时等式右侧QUBO值更低。当等式右侧取最低值时正好与等式左侧相等,取值为0。

举例:

H=2b1b2b3b4b5+b4b5

可以等价替换为:

H=2(4bab1bab2bab3bab4bab5ba)+b4b5

相比于上述方法,该方法可以用一个辅助变量将1个n次项变为2次,只增加1个辅助变量,但是应用范围要小。

针对不同的应用场景,还存在一些其它特定的降阶方法。

对于现实生活中的不同行业不同场景下的复杂问题,高阶函数的降阶求解是一种通用型求解思维,基于玻色量子自研的Kaiwu SDK,用户只需关注建立与场景所对应的数学模型,SDK提供的方法可以自动完成降阶,用户不用关心背后的复杂度,大大降低用户使用相干光量子计算机求解问题的难度。

基于 MIT 许可发布