修改密码

请输入密码
请输入密码 请输入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

v5.0
搜索
    v5.0

      ArticleRank

      HDC 分布式

      概述

      ArticleRank(文章排名)起源于PageRank,用于实现对文章的影响力排名。

      基本概念

      ArticleRank

      与网页之间的链接类似,文章(书籍、报告等)之间的引用代表权威性和高质量。通常认为,一篇文章获得的引用次数越多,该文章在其特定研究领域内的影响就越大。

      然而,并非所有文章都同等重要。因此,这种基于PageRank的文章排名方法被提出。

      ArticleRank基本保留了PageRank的计算方法,同时也进行了一些修改。当一篇文章向其引用的文章传递排名时,不是将排名除以出度进行平均分配,而是除以该文章的出度和所有文章的平均出度之和。文章u在一次迭代后的排名为:

      其中Bu是文章u的后链集合,d是阻尼系数。分母的这种变化能削弱那些出度很小的文章的贡献度。

      嬴图的ArticleRank使用的分母与原始论文不同,但核心思想是相同的。

      特殊说明

      文章引用网络有一些特性与WWW不同,例如:

      • 文章不能引用自己,即网络中没有自环边。
      • 两篇文章不能相互引用,即一篇文章不能既是另一篇文章的前链,又是它的后链。
      • 一般已发表文章中的引用不会改变,即文章的前链是固定的。

      示例图集

      创建示例图集:

      // 在空图集中逐行运行以下语句
      create().node_schema("book").edge_schema("cite")
      insert().into(@book).nodes([{_id:"book1"}, {_id:"book2"}, {_id:"book3"}, {_id:"book4"}, {_id:"book5"}, {_id:"book6"}, {_id:"book7"}])
      insert().into(@cite).edges([{_from:"book1", _to:"book4"}, {_from:"book1", _to:"book5"}, {_from:"book2", _to:"book4"}, {_from:"book3", _to:"book4"}, {_from:"book4", _to:"book5"}, {_from:"book4", _to:"book6"}])
      

      在HDC图集上运行算法

      创建HDC图集

      将当前图集全部加载到HDC服务器hdc-server-1上,并命名为 hdc_article_rank

      CALL hdc.graph.create("hdc-server-1", "hdc_article_rank", {
        nodes: {"*": ["*"]},
        edges: {"*": ["*"]},
        direction: "undirected",
        load_id: true,
        update: "static",
        query: "query",
        default: false
      })
      

      hdc.graph.create("hdc_article_rank", {
        nodes: {"*": ["*"]},
        edges: {"*": ["*"]},
        direction: "undirected",
        load_id: true,
        update: "static",
        query: "query",
        default: false
      }).to("hdc-server-1")
      

      参数

      算法名:page_rank

      参数名
      类型
      规范
      默认值
      可选
      描述
      init_value Float >0 0.2 所有点的初始排名
      loop_num Integer ≥1 5 最大迭代轮数。算法将在完成所有轮次后停止
      damping Float (0,1) 0.8 阻尼系数
      weaken Integer 1, 2 1 设置为2时计算ArticleRank;设置为1时计算PageRank
      return_id_uuid String uuid, id, both uuid 在结果中使用_uuid_id或同时使用两者来表示点
      limit Integer ≥-1 -1 限制返回的结果数;-1返回所有结果
      order String asc, desc / 根据rank分值对结果排序

      文件回写

      CALL algo.page_rank.write("hdc_article_rank", {
        params: {
          return_id_uuid: "id",
          init_value: 1,
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc"
        },
        return_params: {
          file: {
            filename: "article_rank"
          }
        }
      })
      

      algo(page_rank).params({
        project: "hdc_article_rank",
        return_id_uuid: "id",
        init_value: 1,
        loop_num: 50,
        damping: 0.8,
        weaken: 2,
        order: "desc"
      }).write({
        file: {
          filename: "article_rank"
        }
      })
      

      结果:

      _id,rank
      book4,0.428308
      book5,0.375926
      book6,0.319926
      book2,0.2
      book3,0.2
      book7,0.2
      book1,0.2
      

      数据库回写

      将结果中的rank值写入指定点属性。该属性类型为float

      CALL algo.page_rank.write("hdc_article_rank", {
        params: {
          loop_num: 50,
          weaken: 2 
        },
        return_params: {
          db: {
            property: "rank"
          }
        }
      })
      

      algo(page_rank).params({
        project: "hdc_article_rank",
        loop_num: 50,
        weaken: 2  
      }).write({
        db:{ 
          property: 'rank'
        }
      })
      

      完整返回

      CALL algo.page_rank("hdc_article_rank", {
        params: {
          return_id_uuid: "id",
          init_value: 1,
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc",
          limit: 3
        },
        return_params: {}
      }) YIELD AR
      RETURN AR
      

      exec{
        algo(page_rank).params({
          return_id_uuid: "id",
          init_value: 1,
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc",
          limit: 3
        }) as AR
        return AR
      } on hdc_article_rank
      

      结果:

      _id rank
      book4 0.428308
      book5 0.375926
      book6 0.319926

      流式返回

      CALL algo.page_rank("hdc_article_rank", {
        params: {
          return_id_uuid: "id",
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc",
          limit: 3
        },
        return_params: {
        	stream: {}
        }
      }) YIELD AR
      RETURN AR
      

      exec{
        algo(page_rank).params({
          return_id_uuid: "id",
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc",
          limit: 3
        }).stream() as AR
        return AR
      } on hdc_article_rank
      

      结果:

      _id rank
      book4 0.428308
      book5 0.375926
      book6 0.319926

      在分布式投影上运行算法

      创建分布式投影

      将图集全部投影到shard服务器上并命名为dist_article_rank

      create().projection("dist_article_rank", {
        nodes: {"*": ["*"]}, 
        edges: {"*": ["*"]},
        direction: "undirected",
        load_id: true
      })
      

      参数

      算法名:page_rank

      参数名
      类型
      规范
      默认值
      可选
      描述
      init_value Float >0 0.2 所有点的初始排名
      loop_num Integer ≥1 10 最大迭代轮数。算法将在完成所有轮次后停止
      damping Float (0,1) 0.8 阻尼系数
      weaken Integer 1, 2 1 设置为2时计算ArticleRank;设置为1时计算PageRank
      limit Integer ≥-1 -1 限制返回的结果数;-1返回所有结果
      order String asc, desc / 根据rank分值对结果排序

      文件回写

      CALL algo.page_rank.write("dist_article_rank", {
        params: {
          init_value: 1,
          loop_num: 50,
          damping: 0.8,
          weaken: 2,
          order: "desc"
        },
        return_params: {
          file: {
            filename: "article_rank"
          }
        }
      })
      

      algo(page_rank).params({
        project: "dist_article_rank",
        init_value: 1,
        loop_num: 50,
        damping: 0.8,
        weaken: 2,
        order: "desc"
      }).write({
        file: {
          filename: "article_rank"
        }
      })
      

      结果:

      _id,rank
      book4,0.5999999999999999778
      book5,0.52000000000000001776
      book6,0.44000000000000000222
      book7,0.2000000000000000111
      book3,0.2000000000000000111
      book2,0.2000000000000000111
      book1,0.2000000000000000111
      

      数据库回写

      将结果中的rank值写入指定点属性。该属性类型为double

      CALL algo.page_rank.write("dist_article_rank", {
        params: {
          loop_num: 50,
          weaken: 2
        },
        return_params: {
          db: {
            property: "rank"
          }
        }
      })
      

      algo(page_rank).params({
        project: "dist_article_rank",
        loop_num: 50,
        weaken: 2
      }).write({
        db:{ 
          property: 'rank'
        }
      })
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写