PageRank起源于网页的搜索排序,即使用网页的链接结构计算每个网页的等级排名。本文为您介绍PAI-Studio提供的PageRank组件。

背景信息

PageRank的基本思路是:
  • 如果一个网页被其他多个网页指向,这说明该网页比较重要或者质量较高。
  • 除考虑网页的链接数量,还考虑网页本身的权重级别,以及该网页有多少链接链到其它网页。
  • 对于用户构成的人际网络,除了用户本身的影响力之外,边的权重也是重要因素之一。

例如新浪微博的某个用户,会更容易影响粉丝中关系比较亲密的家人、同学、同事等,而对陌生的弱关系粉丝影响较小。在人际网络中,边的权重等价于用户与用户之间的关系强弱指数。

带链接权重的PageRank公式为: PageRank公式
  • W(i):节点i的权重。
  • C(Ai):链接权重。
  • d:阻尼系数。
  • W(A):算法迭代稳定后的节点权重,即每个用户的影响力指数。

PAI-Studio支持通过可视化或PAI命令方式,配置PageRank组件的参数。

可视化方式

页签 参数 描述
字段设置 选择源顶点列 边表的起点所在列。
选择目标顶点列 边表的终点所在列。
选择边权值列 边表边的权重所在列。
参数设置 最大迭代次数 算法自身会收敛并停止迭代,可选,默认为30。
阻尼系数 在任意时刻,用户到达某网页后并继续向后浏览的概率。
执行调优 进程数 作业并行执行的节点数。数字越大并行度越高,但是框架通讯开销会增大。
进程内存 单个作业可使用的最大内存量。系统默认为每个作业分配4096 MB内存,实际使用内存超过该值,会抛出OutOfMemory异常。

PAI命令方式

PAI -name PageRankWithWeight
    -project algo_public
    -DinputEdgeTableName=PageRankWithWeight_func_test_edge
    -DfromVertexCol=flow_out_id
    -DtoVertexCol=flow_in_id
    -DoutputTableName=PageRankWithWeight_func_test_result
    -DhasEdgeWeight=true
    -DedgeWeightCol=weight
    -DmaxIter 100;
参数 是否必选 描述 默认值
inputEdgeTableName 输入边表名。
inputEdgeTablePartitions 输入边表的分区。 全表读入
fromVertexCol 输入边表的起点所在列。
toVertexCol 输入边表的终点所在列。
outputTableName 输出表名。
outputTablePartitions 输出表的分区。
lifecycle 输出表的生命周期。
workerNum 作业并行执行的节点数。数字越大并行度越高,但是框架通讯开销会增大。 未设置
workerMem 单个作业可使用的最大内存量。系统默认为每个作业分配4096 MB内存,实际使用内存超过该值,会抛出OutOfMemory异常。 4096
splitSize 数据切分大小。 64
hasEdgeWeight 输入边表的边是否有权重。 false
edgeWeightCol 输入边表边的权重所在列。
maxIter 最大迭代次数。 30

使用示例

  1. 生成训练数据。
    drop table if exists PageRankWithWeight_func_test_edge;
    create table PageRankWithWeight_func_test_edge as
    select * from
    (
        select 'a' as flow_out_id,'b' as flow_in_id,1.0 as weight from dual
        union all
        select 'a' as flow_out_id,'c' as flow_in_id,1.0 as weight from dual
        union all
        select 'b' as flow_out_id,'c' as flow_in_id,1.0 as weight from dual
        union all
        select 'b' as flow_out_id,'d' as flow_in_id,1.0 as weight from dual
        union all
        select 'c' as flow_out_id,'d' as flow_in_id,1.0 as weight from dual
    )tmp;
    对应的图结构如下所示。 PageRank图结构
  2. 查看训练结果。
    +------+------------+
    | node | weight     |
    +------+------------+
    | a    | 0.0375     |
    | b    | 0.06938    |
    | c    | 0.12834    |
    | d    | 0.20556    |
    +------+------------+