Cleora:项目核心功能/场景

Cleora:项目核心功能/场景

Cleora 是一款面向异质关系数据的通用模型,能够高效、可扩展地学习稳定且归纳性的实体嵌入。

项目介绍

Cleora 的名字来源于一种几何蛾属,其科学名称源自古希腊语“geo”(地球)和“metron”(测量),以它们的幼虫——被称为“尺蠖”的昆虫——在移动时以 looping 方式“测量地球”的行为命名。Cleora 项目本身则是一个用于学习异质关系数据中实体嵌入的模型,具有高效、可扩展的特点。

项目技术分析

Cleora 的技术核心在于其能够处理异质关系数据,学习到的实体嵌入既稳定又具有归纳性。项目最新的 2.0.0 版本以 Python 为原生语言,通过以下技术特点展示了其优势:

  • 性能优化:嵌入时间提速约 10 倍,显著降低内存使用;
  • 最新研究成果:提升了嵌入质量;
  • 新特性:支持从 Python 迭代器创建图,而不仅仅是 tsv 文件;
  • 无缝 NumPy 集成
  • 自定义嵌入初始化支持项属性
  • 可调节向量投影/归一化

此外,项目还包含了一些重大更新,如移除了 transient 修饰符,通过创建 complex::reflexive 列来为超图嵌入提供更好的结果。

项目技术应用场景

Cleora 的应用场景广泛,可以用于嵌入任何相互作用的实体,这些实体可以是共同出现在特定上下文中的产品、地点、员工、化学物质、蛋白质、药物相互作用、学术论文的合著者或 LinkedIn 个人资料中的公司等。通过将 Cleora 应用于这些场景,可以生成高质量的实体嵌入,用于推荐系统、知识图谱、社交网络分析等多个领域。

项目特点

  • 速度快、效率高:Cleora 在性能上优于传统的图嵌入方法,例如 DeepWalk 和 PyTorch-BigGraph,能够在单个机器上嵌入极大的图和超图;
  • 结果质量:嵌入结果的质量可与当前主流图嵌入框架相媲美或更优;
  • 灵活的输入构建方式:用户可以根据自己的需求,灵活构建输入数据,如将产品按购物篮或用户分组;
  • 强大的扩展性:Cleora 支持超图的星形扩张、闭包扩张和无扩张等多种处理方式;
  • 内存使用优化:即使是大规模的实体嵌入也可以通过降低维度、分批处理等手段,使得内存使用得到优化。

以下是一个简单的使用案例:

from pycleora import SparseMatrix
import numpy as np
import pandas as pd
import random

# 生成示例数据
customers = [f"Customer_{i}" for i in range(1, 20)]
products = [f"Product_{j}" for j in range(1, 20)]

data = {
    "customer": random.choices(customers, k=100),
    "product": random.choices(products, k=100),
}

# 创建 DataFrame
df = pd.DataFrame(data)

# 创建超边
customer_products = df.groupby('customer')['product'].apply(list).values

# 转换为 Cleora 输入格式
cleora_input = map(lambda x: ' '.join(x), customer_products)

# 创建超图的 Markov 转移矩阵
mat = SparseMatrix.from_iterator(cleora_input, columns='complex::reflexive::product')

# 执行随机游走并归一化
NUM_WALKS = 3
for i in range(NUM_WALKS):
    embeddings = mat.left_markov_propagate(embeddings)
    embeddings /= np.linalg.norm(embeddings, ord=2, axis=-1, keepdims=True)

Cleora 的强大性能和广泛应用场景使其成为处理大规模复杂数据集时值得信赖的工具。无论是对于学术研究还是工业应用,Cleora 都是一个高效、可扩展且嵌入质量优异的选择。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值