修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      PageRank

      ✓ 文件回写 ✓ 属性回写 ✓ 直接返回 ✓ 流式返回 ✕ 统计值

      概述

      PageRank(网页排名)最初是在万维网(WWW)的背景下提出的,它利用 WWW 的链接结构来产生全局、客观的网页“重要性”排名供搜索引擎使用。该算法由 Google 联合创始人 Larry Page 和 Sergey Brin 于 1997-1998 年提出:

      随着技术的发展与大量关联性数据的产生,PageRank 也被许多其他领域采用。

      基本概念

      链接结构与 PageRank

      在 WWW 中,网页中包含的超文本在网页之间创建链接。每个网页(节点)都可以有一些前链(通过出边连接)和后链(通过入边连接)。在下图中,A 和 B 是 C 的后链,D 是 C 的前链。

      不同网页在后链数量方面差异很大。在自然状态下,那些重要、权威或高质量的网页会获得更多或更重要的后链。

      PageRank 的核心思想是:一个网页的后链的排名总和越高,则该网页的排名就越高。这同时涵盖了两种情况,一是网页有大量的后链,二是网页的后链尽管数量不多但排名很高。

      排名传递

      所有网页的排名是以递归的方式计算的,可从任意的排名方式开始迭代计算直至收敛。在每次迭代中,每个网页均匀地将其自身的排名分值传递给其所有的前链;同时,每个网页都从其所有后链获得排名分值。因此,网页 u 在一次迭代后的排名分值为:

      其中 Bu 是网页 u 的后链集合。

      以下是一组网页间的排名传递达到稳定的状态:

      阻尼系数

      考虑以下几种类型的网页:

      • 没有后链的网页。它们获得的排名是 0,但它们仍需被浏览到。
      • 没有前链的网页。它们的排名分值会从系统中消失。
      • 对于一组网页,它们只指向组内的网页,而不指向任何组外的网页。

      为了克服这些问题,我们引入阻尼系数(Damping Factor),其值介于 0 和 1 之间。它为每个网页提供一个保底排名分值,同时削弱从后链传递过来的排名分值。一次迭代后网页 u 的排名变为:

      其中 d 是阻尼系数。例如,当 d 为 0.7 时,如果一个网页从后链接收到的排名总和为 8,则该网页在本轮的排名为 0.7*8 + (1-0.7) = 5.9

      阻尼系数也可以理解为浏览者随机跳转到不是当前网页的前链之一的其他网页的概率。

      特殊说明

      • 孤点的排名将为 (1-d)。
      • 自环边被视为一条入边和一条出边,网页会通过自环边会将一部分排名传递给自身。有大量自环边的图通常需要较多次的迭代才能趋于稳定。

      语法

      • 命令:algo(page_rank)
      • 参数:
      名称
      类型
      规范
      默认
      可选
      描述
      init_value float >0 0.2 所有点的初始排名
      loop_num int >=1 5 迭代轮数
      damping float (0,1) 0.8 阻尼系数
      weaken int 1, 2 1 计算 PageRank 时,保持此项为 12 代表计算 ArticleRank
      limit int ≥-1 -1 返回的结果条数,-1 返回所有结果
      order string asc, desc / 按排名分值大小对结果进行排序

      示例

      示例图如下:

      文件回写

      配置项 回写内容
      filename _id,rank
      algo(page_rank).params({
        init_value: 1,
        loop_num: 50,
        damping: 0.8,
        weaken: 1,
        order: "desc"
      }).write({
          file: {filename: "rank"}
      })
      

      结果:文件 rank

      E,3.96235
      F,1.61052
      N,1.48175
      G,1.25663
      I,1.25663
      B,0.844209
      L,0.844209
      K,0.702651
      M,0.48106
      J,0.36
      H,0.333333
      A,0.333333
      C,0.333333
      D,0.2
      

      属性回写

      配置项 回写内容 回写至 数据类型
      property rank 点属性 /
      algo(page_rank).params({
        loop_num: 50,
        weaken: 1
      }).write({
        db:{property: "PR"}
      })
      

      结果:每个节点的排名回写至名为 PR 的点属性下

      直接返回

      别名序号 类型 描述 列名
      0 []perNode 点及其排名 _uuid, rank
      algo(page_rank).params({
        init_value: 1,
        loop_num: 50,
        damping: 0.8,
        weaken: 1,
        order: "desc",
        limit: 5
      }) as PR 
      return PR
      

      结果:PR

      _uuid rank
      5 3.9623489
      6 1.6105210
      14 1.4817491
      7 1.2566270
      9 1.2566270

      流式返回

      别名序号 类型 描述 列名
      0 []perNode 点及其排名 _uuid, rank
      algo(page_rank).params({
        loop_num: 50,
        damping: 0.8,
        weaken: 1,
        order: "desc",
        limit: 5
      }).stream() as PR 
      find().nodes({_uuid == PR._uuid}) as nodes
      return table(nodes._id, PR.rank)
      

      结果:table(nodes._id, PR.rank)

      nodes._id PR.rank
      E 3.9623020
      F 1.6104970
      N 1.4817290
      G 1.2566110
      I 1.2566110
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写