谷歌PageRank图算法在金融客户营销中的应用

  • 万物皆有源—PageRank算法起源

提及PageRank算法,还得从搜索界的老大哥google说起。PageRank,顾名思义网页排名,是一种根据网页之间相互的超链接计算的技术,这个算法的发明者之一是谷歌的CEO拉里·佩奇(Larry Page),所以又称Larry Page。

PageRank算法最早是为了解决海量网页的分类与排名,早期的搜索引擎采用分类目录的方法,即通过人工进行网页分类并整理出高质量的网站。当时的 Yahoo以及国内的hao123使用的就是这种方法。随着网页越来越多,人工分类已经不现实了,谷歌的两位创始人借鉴了学术界评判学术论文重要性的通用方法, 那就是看论文的引用次数,由此想到网页的重要性也可以根据这种方法来评价,于是PageRank的核心思想就诞生了。

PageRank算法属于常用的图算法中的一种,图分析是基于图的方法来分析连接的数据。比如我们日常使用导航来规划最短路径就运用了图分析、防止欺诈,预测流感的传播,社交网络的分析。下图是一张社交网络图,其中点的大小反应了对应节点在网络中的影响力,点越大说明影响力越大,处于社交网络比较中心的位置。

谷歌PageRank图算法在金融客户营销中的应用

一、PageRank算法原理介绍

PageRank对网页排名的算法,曾是Google发家致富的法宝。PageRank算法计算每一个网页的PageRank值,然后根据这个值的大小对网页的重要性进行排序。它的思想是模拟一个悠闲的上网者,上网者首先随机选择一个网页打开,然后在这个网页上呆了几分钟后,跳转到该网页所指向的链接,这样无所事事、漫无目的地在网页上跳来跳去,PageRank就是估计这个悠闲的上网者分布在各个网页上的概率。

PageRank的核心思想:

  • 如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高;
  • 如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高。

谷歌PageRank图算法在金融客户营销中的应用谷歌PageRank图算法在金融客户营销中的应用
PageRank算法简单来说分为两步:

  1. 给每个算子一个PR值(下面用PR值指代PageRank值)。
  2. 通过(投票)算法不断迭代,直至达到平稳分布后终止。
    接下来举个PageRank算法简单的例子,展示一下它的基本思想。以下图的网络为例计算其中各节点的PR值,找到最有价值的节点。

谷歌PageRank图算法在金融客户营销中的应用
介绍两个概念:
出链:是指链接出去的链接;入链:是指链接进来的链接
比如图中 A 有 2 个入链,3 个出链。
一个节点的PR值 = 所有入链集合的节点的加权PR值之和,公式为:

谷歌PageRank图算法在金融客户营销中的应用
其中,u为待评估节点,Bu​为页面 u入链的集合,v为集合Bu​中的元素,L(v)是节点v的出链数量。

PR值计算的步骤如下:

  1. 节点A 有三个出链,故当用户访问 A 时,就有跳转到 B、C 、D 的可能性,跳转概率均为 1/3。
  2. 节点B 有两个出链,跳转概率均为 1/2。
  3. 一般用跳转概率矩阵M表示各节点的跳转概率,令n表示节点数,则M是一个n*n的方阵。节点j的一个出链连接到节点i,k为其跳转概率,则M[i][j]= k。由此可以得到 A、B、C、D 这四个节点的跳转概率矩阵M,如下:
    谷歌PageRank图算法在金融客户营销中的应用
  4. 假设 A、B、C、D的初始影响力均相同,得到他们的影响力矩阵:
    谷歌PageRank图算法在金融客户营销中的应用
  5. 进行第一次节点跳转之后,各节点的影响力w1变为:
    谷歌PageRank图算法在金融客户营销中的应用
  6. 重复上一步的跳转过程,直到第n次迭代后 wn影响力不再发生变化,即 wn ≈ Mwn时,wn 影响力矩阵最终收敛到(0.3333,0.2222,0.2222,0.2222),这就是A、B、C、D四个节点最终的影响力。

根据最终结果可以发现节点A的权重最大,也就是PR值更高,价值最大,而 B、C、D的 PR 值相等。

上文中我们模拟了一个简化的PageRank的计算过程,实际情况会更复杂,要满足最终可以收敛,需要保证图是强连通的,即从任意网页可以到达其他任意网页。可能会导致不满足强连通的两个问题:

  1. 等级泄露(Rank Leak):如果一个网页没有出链,就像是一个黑洞一样,吸收了其他网页的影响力而不释放,最终会导致其他网页的 PR 值为 0。
  2. 等级沉没(Rank Sink):如果一个网页只有出链,没有入链,计算的过程迭代下来,会导致这个网页的PR值为0。

为了解决这两个问题拉里·佩奇提出了 PageRank 的随机浏览模型。他假设用户并不都是按照跳转链接的方式来上网,还有一种可能是不论当前处于哪个页面,都有概率访问到其他任意的页面,比如说用户就是要直接输入网址访问其他页面,虽然这个概率比较小。他将PR值的计算公式优化为:
谷歌PageRank图算法在金融客户营销中的应用
其中,N 为节点总数,d为阻尼因子,代表了用户按照跳转链接来上网的概率,通常可以取一个固定值 0.85。

二、PageRank 算法代码实现

Python中的复杂网络分析库networkx支持创建简单无向图、有向图和多重图;内置了许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。其中就内置了PageRank 算法的函数,下面以上节中举得例子简单展示使用networkx库实现PageRank 算法的代码。

  1. 导入所需库
    谷歌PageRank图算法在金融客户营销中的应用
  2. 定义出上节举例用的有向图
    谷歌PageRank图算法在金融客户营销中的应用
  3. 计算该有向图各节点的pr值
    谷歌PageRank图算法在金融客户营销中的应用
    输出结果:
    谷歌PageRank图算法在金融客户营销中的应用
  4. 绘制有向图图像
    谷歌PageRank图算法在金融客户营销中的应用
    输出结果:
    谷歌PageRank图算法在金融客户营销中的应用

三、PageRank算法在金融中的应用

PageRank在金融领域中,主要应用于客户营销的场景,对于有出链和入链的网络关系,就可以运用PageRank算法计算样本的pr值,对分析目前的影响力、价值进行排序。

在常见的银行零售业务中,运用PageRank算法可以评估客户的交易网络价值。通过行内个人客户互相转账的交易记录,可以获得行内客户的交易网络,以客户作为节点,转账行为为边,就可以构造出对应的图网络,如第二节中的例子,从中找到影响力高的客户。

当然也可以考虑增加转账金额或转账次数等为边的权重,来构造图网络。得到交易网络图后可以找出与其他客户关联性强的客户,并应用PageRank算法对交易网络的客户打分,以量化客户与其他行内客户的关联度,并挑选出营销价值高的客户,制定相应的营销计划。

另外,也可将PageRank算法得到的客户得分作为一个变量加入其它营销相关的模型中,可能会提高模型的表现。

以之前做过的分析为例进行介绍。数据周期为20180101-20181031,去除重复数据、助农POS渠道交易记录、客户自己转给自己、冲正等数据,保留交易记录90.95万条,涉及客户33.28万。

首先,使用无向网络且不设置边权重,计算得到的pr值如下图,可以发现此时pr_value值分布极不均衡,大多集中在较小值,值大的客户很少。该数据分布作为客户的交易网络价值得分显然不合理,需要进一步优化。
谷歌PageRank图算法在金融客户营销中的应用
尝试使用有向网络,对主动交易行为设置较高的权重,同时加入交易金额为边权重,此例中权重的计算公式为:
谷歌PageRank图算法在金融客户营销中的应用
得到的pr_value值分布如下图,可以发现此时pr_value值分布较之前更为离散,归一化后得分为0比例从29.8%下降至0.02%。

谷歌PageRank图算法在金融客户营销中的应用
最后,比较两种情况下的pr_value值分布,如下图所示。分析结果发现加权后得分大于0的客户增多,这说明关联节点多的客户不一定交易次数和金额就多,所以加入边权重更有助于全面的分析客户在交易网络中的地位。

谷歌PageRank图算法在金融客户营销中的应用
得到pr_value值后,可作为客户全生命周期价值评分的一部分,衡量客户过去以及未来的贡献度。其中pr_value得分高的客户,说明该客户与其他多个客户关系密切,其关系圈有较大的开发潜力,可重点经营MGM老带新;也可对关联客户较多但交易金额偏低的客户进行营销,因为他们处于网络的中心点但产生的交易金额却较少,成功营销可能会产生乘数效应,比单个营销效率更高;另一方面,计算出的pr_value值也可以作为一个特征加入其它营销类模型中,有助于提升模型精度。

作者: 青见