相似性#
- template<typename VT, typename ET, typename WT>
void jaccard(legacy::GraphCSRView<VT, ET, WT> const &graph, WT const *weights, WT *result)#计算所有顶点的 Jaccard 相似性系数。
计算图中每对通过边连接的顶点的 Jaccard 相似性系数。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
VT – 顶点标识符类型。支持的值:int (有符号, 32 位)
ET – 边标识符类型。支持的值:int (有符号, 32 位)
WT – 边权重类型。支持的值:float 或 double。
- 参数:
graph – [in] 输入图对象
weights – [in] 加权 Jaccard 的输入顶点权重设备指针,对于无权 Jaccard 可为 NULL。
result – [out] 结果值的设备指针,需要由调用者预先分配内存
- template<typename VT, typename ET, typename WT>
void jaccard_list(legacy::GraphCSRView<VT, ET, WT> const &graph, WT const *weights, ET num_pairs, VT const *first, VT const *second, WT *result)#计算选定顶点对的 Jaccard 相似性系数。
计算每对指定顶点的 Jaccard 相似性系数。顶点指定为对,其中 pair[n] = (first[n], second[n])
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
VT – 顶点标识符类型。支持的值:int (有符号, 32 位)
ET – 边标识符类型。支持的值:int (有符号, 32 位)
WT – 边权重类型。支持的值:float 或 double。
- 参数:
graph – [in] 输入图对象
weights – [in] 加权 Jaccard 的输入顶点权重,对于无权 Jaccard 可为 NULL。
num_pairs – [in] 指定的顶点 ID 对的数量
first – [in] 每对中第一个顶点 ID 的设备指针
second – [in] 每对中第二个顶点 ID 的设备指针
result – [out] 结果值的设备指针,需要由调用者预先分配内存
- template<typename VT, typename ET, typename WT>
void overlap(legacy::GraphCSRView<VT, ET, WT> const &graph, WT const *weights, WT *result)#计算图中所有顶点的 Overlap 系数。
计算图中每对通过边连接的顶点的 Overlap 系数。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
VT – 顶点标识符类型。支持的值:int (有符号, 32 位)
ET – 边标识符类型。支持的值:int (有符号, 32 位)
WT – 边权重类型。支持的值:float 或 double。
- 参数:
graph – [in] 输入图对象
weights – [in] 加权 overlap 的输入顶点权重设备指针,对于无权 overlap 可为 NULL。
result – [out] 结果值的设备指针,需要由调用者预先分配内存
- template<typename VT, typename ET, typename WT>
void overlap_list(legacy::GraphCSRView<VT, ET, WT> const &graph, WT const *weights, ET num_pairs, VT const *first, VT const *second, WT *result)#计算选定顶点对的 overlap 系数。
计算每对指定顶点的 overlap 系数。顶点指定为对,其中 pair[n] = (first[n], second[n])
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
VT – 顶点标识符类型。支持的值:int (有符号, 32 位)
ET – 边标识符类型。支持的值:int (有符号, 32 位)
WT – 边权重类型。支持的值:float 或 double。
- 参数:
graph – [in] 输入图对象
weights – [in] 加权 overlap 的输入顶点权重设备指针,对于无权 overlap 可为 NULL。
num_pairs – [in] 指定的顶点 ID 对的数量
first – [in] 每对中第一个顶点 ID 的设备指针
second – [in] 每对中第二个顶点 ID 的设备指针
result – [out] 结果值的设备指针,需要由调用者预先分配内存
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<weight_t> jaccard_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::tuple<raft::device_span<vertex_t const>, raft::device_span<vertex_t const>> vertex_pairs, bool do_expensive_check = false)#计算 Jaccard 相似性系数。
.*
对指定的每对顶点计算相似性。请注意,相似性算法期望对称图。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组。在多 GPU 环境中,每个顶点对应该位于此 GPU 本地。
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
对应
vertex_pairs
的相似性系数
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<weight_t> cosine_similarity_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::tuple<raft::device_span<vertex_t const>, raft::device_span<vertex_t const>> vertex_pairs, bool do_expensive_check = false)#计算余弦相似性系数。
.*
对指定的每对顶点计算相似性。请注意,相似性算法期望对称图。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组。在多 GPU 环境中,每个顶点对应该位于此 GPU 本地。
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
对应
vertex_pairs
的相似性系数
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<weight_t> sorensen_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::tuple<raft::device_span<vertex_t const>, raft::device_span<vertex_t const>> vertex_pairs, bool do_expensive_check = false)#计算 Sorensen 相似性系数。
.*
对指定的每对顶点计算相似性。请注意,相似性算法期望对称图。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组
vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组。在多 GPU 环境中,每个顶点对应该位于此 GPU 本地。
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
对应
vertex_pairs
的相似性系数
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
rmm::device_uvector<weight_t> overlap_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::tuple<raft::device_span<vertex_t const>, raft::device_span<vertex_t const>> vertex_pairs, bool do_expensive_check = false)#计算重叠相似系数。
.*
对指定的每对顶点计算相似性。请注意,相似性算法期望对称图。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组
vertex_pairs – 定义要计算相似性的顶点对的设备跨度元组。在多 GPU 环境中,每个顶点对应该位于此 GPU 本地。
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
对应
vertex_pairs
的相似性系数
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
计算 overlap 相似性系数。计算 Jaccard 所有对相似性系数。
.*
计算所有顶点对的相似性。请注意,在稀疏图中,许多顶点对的得分将为零。实际上,我们只计算图中两跳邻居顶点的相似性,因为非两跳邻居顶点的得分将为 0。
如果指定了
vertices
,我们将计算vertices
的两跳邻居的相似性。如果未指定vertices
,它将计算图中所有两跳邻居的相似性。如果指定了
topk
,则只返回得分最高的topk
对顶点,如果未指定,则返回所有计算出的顶点对的得分。请注意,整个图中的两跳邻居列表可能包含大量顶点对。如果图足够稠密,它可能大到顶点数的平方,这可能会导致内存不足。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertices – 可选的设备跨度,定义种子顶点。在多 GPU 环境中,顶点应该位于此 GPU 本地。
topk – 可选参数,指定应返回得分最高的顶点对的数量
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
包含三个同等长度的设备向量 (v1, v2, score) 的元组。向量中的对应元素标识一个结果,v1 标识图中的一个顶点,v2 标识 v1 的一个两跳邻居,score 标识 v1 和 v2 之间的相似性得分。如果指定了
topk
,则向量的长度不超过topk
个元素。在多 GPU 环境中,如果指定了topk
,则所有结果将在 GPU 秩 0 上返回,否则将在顶点 v1 的本地 GPU 上返回。
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>> cosine_similarity_all_pairs_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<raft::device_span<vertex_t const>> vertices, std::optional<size_t> topk, bool do_expensive_check = false)#计算余弦所有对相似性系数。
.*
计算所有顶点对的相似性。请注意,在稀疏图中,许多顶点对的得分将为零。实际上,我们只计算图中两跳邻居顶点的相似性,因为非两跳邻居顶点的得分将为 0。
如果指定了
vertices
,我们将计算vertices
的两跳邻居的相似性。如果未指定vertices
,它将计算图中所有两跳邻居的相似性。如果指定了
topk
,则只返回得分最高的topk
对顶点,如果未指定,则返回所有计算出的顶点对的得分。请注意,整个图中的两跳邻居列表可能包含大量顶点对。如果图足够稠密,它可能大到顶点数的平方,这可能会导致内存不足。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertices – 可选的设备跨度,定义种子顶点。在多 GPU 环境中,顶点应该位于此 GPU 本地。
topk – 可选参数,指定应返回得分最高的顶点对的数量
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
包含三个同等长度的设备向量 (v1, v2, score) 的元组。向量中的对应元素标识一个结果,v1 标识图中的一个顶点,v2 标识 v1 的一个两跳邻居,score 标识 v1 和 v2 之间的相似性得分。如果指定了
topk
,则向量的长度不超过topk
个元素。在多 GPU 环境中,如果指定了topk
,则所有结果将在 GPU 秩 0 上返回,否则将在顶点 v1 的本地 GPU 上返回。
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>> sorensen_all_pairs_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<raft::device_span<vertex_t const>> vertices, std::optional<size_t> topk, bool do_expensive_check = false)#计算 Sorensen 相似性系数。
.*
计算所有顶点对的相似性。请注意,在稀疏图中,许多顶点对的得分将为零。实际上,我们只计算图中两跳邻居顶点的相似性,因为非两跳邻居顶点的得分将为 0。
如果指定了
vertices
,我们将计算vertices
的两跳邻居的相似性。如果未指定vertices
,它将计算图中所有两跳邻居的相似性。如果指定了
topk
,则只返回得分最高的topk
对顶点,如果未指定,则返回所有计算出的顶点对的得分。请注意,整个图中的两跳邻居列表可能包含大量顶点对。如果图足够稠密,它可能大到顶点数的平方,这可能会导致内存不足。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertices – 可选的设备跨度,定义种子顶点。
topk – 可选参数,指定应返回得分最高的顶点对的数量
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
包含三个同等长度的设备向量 (v1, v2, score) 的元组。向量中的对应元素标识一个结果,v1 标识图中的一个顶点,v2 标识 v1 的一个两跳邻居,score 标识 v1 和 v2 之间的相似性得分。如果指定了
topk
,则向量的长度不超过topk
个元素。在多 GPU 环境中,如果指定了topk
,则所有结果将在 GPU 秩 0 上返回,否则将在顶点 v1 的本地 GPU 上返回。
- template<typename vertex_t, typename edge_t, typename weight_t, bool multi_gpu>
std::tuple<rmm::device_uvector<vertex_t>, rmm::device_uvector<vertex_t>, rmm::device_uvector<weight_t>> overlap_all_pairs_coefficients(raft::handle_t const &handle, graph_view_t<vertex_t, edge_t, false, multi_gpu> const &graph_view, std::optional<edge_property_view_t<edge_t, weight_t const*>> edge_weight_view, std::optional<raft::device_span<vertex_t const>> vertices, std::optional<size_t> topk, bool do_expensive_check = false)#计算重叠相似系数。
.*
计算所有顶点对的相似性。请注意,在稀疏图中,许多顶点对的得分将为零。实际上,我们只计算图中两跳邻居顶点的相似性,因为非两跳邻居顶点的得分将为 0。
如果指定了
vertices
,我们将计算vertices
的两跳邻居的相似性。如果未指定vertices
,它将计算图中所有两跳邻居的相似性。如果指定了
topk
,则只返回得分最高的topk
对顶点,如果未指定,则返回所有计算出的顶点对的得分。请注意,整个图中的两跳邻居列表可能包含大量顶点对。如果图足够稠密,它可能大到顶点数的平方,这可能会导致内存不足。
- 抛出:
cugraph::logic_error – 发生错误时。
- 模板参数:
vertex_t – 顶点标识符类型。需要是整数类型。
edge_t – 边标识符类型。需要是整数类型。
weight_t – 边权重类型。需要是浮点类型。
multi_gpu – 标志,指示模板实例化应针对单 GPU (false)
- 参数:
handle – RAFT handle 对象,用于封装资源(例如 CUDA 流、通信器和各种 CUDA 库的句柄)以运行图算法。
graph_view – 图视图对象。
edge_weight_view – 可选视图对象,包含
graph_view
的边权重。如果edge_weight_view.has_value()
== true,则使用与图相关的权重。如果为 false,则假设所有边的权重为 1。vertices – 可选的设备跨度,定义种子顶点。
topk – 可选参数,指定应返回得分最高的顶点对的数量
do_expensive_check – 一个标志,用于对输入参数运行昂贵的检查(如果设置为
true
)。- 返回:
包含三个同等长度的设备向量 (v1, v2, score) 的元组。向量中的对应元素标识一个结果,v1 标识图中的一个顶点,v2 标识 v1 的一个两跳邻居,score 标识 v1 和 v2 之间的相似性得分。如果指定了
topk
,则向量的长度不超过topk
个元素。在多 GPU 环境中,如果指定了topk
,则所有结果将在 GPU 秩 0 上返回,否则将在顶点 v1 的本地 GPU 上返回。