cs224w笔记(p5)

链接预测任务的两种类型:随机缺失边;随时间演化边。

第一种假设可以以蛋白质之间的交互作用举例,缺失的是研究者还没有发现的交互作用。
第二种假设可以以社交网络举例,随着时间流转,人们认识更多朋友。

基于相似性进行链接预测:计算两点间的相似性得分(如用共同邻居衡量相似性),然后将点对进行排序,得分最高的n组点对就是预测结果,与真实值作比

提出了两种方式计算共同邻居数:

1.Jaccard系数(Jaccard similarity coefficient)是一种用于比较两个有限样本集之间相似性的度量方法。它定义为两个集合交集的大小与并集的大小的比值。Jaccard系数的计算公式为:

𝐽(𝐴,𝐵)=∣𝐴∩𝐵∣∣𝐴∪𝐵∣J(A,B)=∣A∪B∣∣A∩B∣​

其中,𝐴A 和 𝐵B 分别代表两个集合,∣𝐴∩𝐵∣∣A∩B∣ 表示集合 𝐴A 与 𝐵B 的交集元素的数量,而 ∣𝐴∪𝐵∣∣A∪B∣ 表示集合 𝐴A 与 𝐵B 的并集元素的数量。Jaccard系数的值域在 [0, 1] 之间,值越大表示两个集合的相似度越高。

白话:分子是两个集合的交集,分母是两个集合的并集,所得到的值越大则说明相关性越高,反之越低。

2.Adamic-Adar Index(AAI)是一种用于衡量网络中两个节点相似度的局部相似性度量方法。它特别关注两个节点共有的邻居节点,并给予那些在网络中不太常见的共有邻居更高的权重,而对于那些更常见的共有邻居则给予较低的权重。具体来说,AAI的计算公式如下图。其中,Γ(𝑢)Γ(u) 表示节点 𝑢u 的邻居节点集合,Γ(𝑣)Γ(v) 表示节点 𝑣v 的邻居节点集合,Γ(𝑢)∩Γ(𝑣)Γ(u)∩Γ(v) 表示 𝑢u 和 𝑣v 的共有邻居节点集合。

举例:在社交网络上表现好的原因:有一堆度数低的共同好友比有一堆名人共同好友的得分更高。

白话:这个算法主要用在预测潜在链接。

        同时我们可以发现对于方法1而言有一个缺陷,因为如上图A和E之间只有两个单位距离但是用公式1算出来的话,结果为0。但是这两个点未来仍有可能被连接起来。

Katz index:计算点对之间所有长度路径的条数
计算方式:邻接矩阵求幂

  1. 邻接矩阵的k次幂结果,每个元素就是对应点对之间长度为k的路径的条数
  2. 证明:
  3. 计算 u和v 之间长度为2的路径数量,就是计算每个u的邻居 Aui与u有1条长度为1的路径与 v之间长度为1的路径数量。同理可得更高次幂。

通过上面的 Katz指数,原来计算A,E之间的关联度为0,现在的关联度会随着距离的增加而减少。而不会因为没有共同邻居而直接为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper+kafka消息队列集群部署

一.消息队列 1、什么是消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(MessageQueue)是一种在软件系统中用…

1、springboot3 vue3开发平台-后端-项目构建

文章目录 1. 创建项目1.1 前置环境条件1.2 项目创建 2. 模块配置2.1 父工程配置概述2.2 配置启动模块2.3 父工程相关依赖管理 1. 创建项目 1.1 前置环境条件 idea2023, jdk17 1.2 项目创建 创建父工程并删除不需要的文件目录: 右键父工程依次创建其他模块 最…

Windows 、Linux、MacOS 进程管理机制

本心、输入输出、结果 文章目录 Windows 、Linux、MacOS 进程管理机制前言Windows 进程管理机制Linux 进程管理macOS 进程管理内存不够了,几个操作系统如何处理Windows 、Linux、MacOS 进程管理机制 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 …

【Qt】窗口

文章目录 QMainWindow菜单栏工具栏状态栏浮动窗口对话框自定义对话框Qt内置对话框QMessageBox QMainWindow Qt中的主窗口以QMainWindow表示,其总体结构如下: 菜单栏 菜单栏MenuBar,可包含多个菜单Menu,每个菜单也可以包含多个菜…

C语言 指针方法 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少

输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。 #include <stdio.h>void countCharacters(char *str, int *upper, int *lower, int *space, int *digit, int *other) {*upper = *lower = *space = *digit = *other = 0;while (*str != \0…

Java面试题系列 - 第17天

Java中的代理模式与动态代理 背景说明&#xff1a;代理模式是一种结构型设计模式&#xff0c;用于在客户端和目标对象之间提供一个代理或占位符。在Java中&#xff0c;动态代理技术允许在运行时创建代理对象&#xff0c;这在AOP&#xff08;面向切面编程&#xff09;和RPC&…

03 Git的基本使用

第3章&#xff1a;Git的基本使用 一、创建版本仓库 一&#xff09;TortoiseGit ​ 选择项目地址&#xff0c;右键&#xff0c;创建版本库 ​ 初始化git init版本库 ​ 查看是否生成.git文件&#xff08;隐藏文件&#xff09; 二&#xff09;Git ​ 选择项目地址&#xff0c…

【LeetCode】相同的树

目录 一、题目二、解法完整代码 一、题目 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3],…

FastGPT 知识库搜索测试功能解析

目录 一、代码解析 1.1 searchTest.ts 1.2 controller.ts 本文接上一篇文章FastGPT 知识库搜索测试功能解析 对具体代码进行解析。 一、代码解析 FastGPT 知识库的搜索测试功能主要涉及两个文件&#xff0c;分别是 searchTest.ts 和 controller.ts 文件&#xff0c;下面分…

【python】练习 10.5:访客簿 编写⼀个 while 循环,提⽰⽤户输⼊其名字。

练习 10.5&#xff1a;访客簿 编写⼀个 while 循环&#xff0c;提⽰⽤户输⼊其名字。 要求 收集⽤户输⼊的所有名字&#xff0c;将其写⼊ guest_book.txt&#xff0c;并确保这个⽂件中 的每条记录都独占⼀⾏。 代码 from pathlib import Pathpath Path(guest_book.txt) gu…

npm下载的依赖包版本号怎么看

npm下载的依赖包版本号怎么看 版本号一般分三个部分&#xff0c;主版本号、次版本号、补丁版本号。 主版本号&#xff1a;一般依赖包发生重大更新时&#xff0c;主版本号才回发生变化&#xff0c;如Vue2.x到Vue3.x。次版本号&#xff1a;当依赖包中发生了一些小变化&#xff…

运行springboot项目报错:java: java.lang.NoSuchFieldError: members_field

项目场景&#xff1a; 在idea中运行从git上拉取的基于springboot框架的项目运行报错 问题描述 运行spingboot项目报错 java: java.lang.NoSuchFieldError: members_field原因分析&#xff1a; 检查你所使用的java版本&#xff08;我这里是在idea上运行的&#xff0c;可以很直…

ArkTS语言---基础知识

ArkTS是一种为构建高性能应用而设计的编程语言。ArkTS在继承TypeScript语法的基础上进行了优化&#xff0c;以提供更高的性能和开发效率。目前流行的编程语言TypeScript是在JavaScript基础上通过添加类型定义扩展而来的&#xff0c;而ArkTS则是TypeScript的进一步扩展。TypeScr…

qt QScrollArea 可滚动区域控件简单举例

1.qt 滚动控件简单举例 在Qt中&#xff0c;滚动控件通常是通过QScrollArea来实现的。以下是一个简单的例子&#xff0c;展示了如何使用QScrollArea来创建一个滚动控件&#xff1a; #include <QApplication> #include <QWidget> #include <QVBoxLayout>…

DETR算法解读——Transformer在目标检测任务的首次应用

论文&#xff1a;End-to-End Object Detection with Transformers 作者&#xff1a;Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko 机构&#xff1a;Facebook AI 链接&#xff1a;https://arxiv.org/abs/2005.12…

git教程, 命令行版

前言 git就是代码版本管理系统&#xff0c;很简单的作用就是每一次commit之后&#xff0c;修改文件都是跟上一次commit的仓库文件做对比&#xff0c;也可以调出历史的文件查看某次commit修改了什么东西 0环境准备&#xff1a; 安装git, 百度一下&#xff0c;然后打开cmd&…

Django 执行原生SQL

在Django中&#xff0c;你可以使用Raw SQL queries来执行原生的SQL查询。这对于需要进行复杂查询或Django的ORM无法满足的查询非常有用。 1&#xff0c;添加模型 Test/app11/models.py from django.db import modelsclass Post(models.Model):title models.CharField(max_le…

视频压缩文件太大了怎么缩小?怎么压缩视频大小?视频压缩方法:10个!(宝藏)

视频压缩文件太大了怎么缩小&#xff1f;让我看看是谁下班之后不是一手刷手机短视频&#xff0c;顺便葛优躺在沙发上的&#xff1f;互联网发展到现在&#xff0c;视频已成为我们生活中不可或缺的一部分。不管是视频录制还是视频缓存&#xff0c;视频文件体积越来越庞大&#xf…

C++中size_t怎么用

size_t是C标准库中定义的一种无符号整型数据类型&#xff0c;通常用于表示大小或数量&#xff0c;如数组的长度、容器的大小或指针算术。size_t类型确保了跨平台的一致性&#xff0c;使得代码更加健壮和可移植。 size_t定义在<cstddef>头文件中&#xff0c;因此在使用之…

reserve和resize

void test_vector4() {vector<int> v1;//cout << v1.max_size() << endl;//v1.reserve(10);v1.resize(10);for (size_t i 0; i < 10; i){v1[i] i;}for (auto e : v1){cout << e << " ";}cout << endl;} 在上面这段代码中对…