#embedding #entity #heterogeneous #graph #dataset #relational #stable

bin+lib cleora

克莱奥拉是一种通用的模型,用于高效、可扩展地学习异构关系数据中的稳定和归纳实体嵌入。

1 个稳定版本

1.2.3 2023 年 6 月 22 日

#498机器学习

自定义许可

2MB
2K SLoC

Rust 2K SLoC // 0.0% comments Jupyter Notebooks 316 SLoC // 0.2% comments

成就

SIGIR eCom Challenge 2020 中获得第 1 名

WSDM Booking.com Challenge 2021 中获得第 2 名和最佳论文奖

Twitter Recsys Challenge 2021 中获得第 2 名

KDD Cup 2021 中获得第 3 名

克莱奥拉

克莱奥拉 是鳞翅目蜈蚣蛾属的一种。它们的学名来源于古希腊语的 geo γῆ 或 γαῖα "大地",以及 metron μέτρον "度量",指的是它们的幼虫,或“尺蠖”,在移动时似乎在以环状方式 "度量大地"。

克莱奥拉是一种通用的模型,用于高效、可扩展地学习异构关系数据中的稳定和归纳实体嵌入。

阅读白皮书 "克莱奥拉:一个简单、强大且可扩展的图嵌入方案"

克莱奥拉利用极快的稳定、迭代的随机投影将实体嵌入到 n 维球面空间 中,这允许无与伦比的性能和可扩展性。

可以嵌入的数据类型包括但不限于

  • 异构无向图
  • 异构无向超图
  • 文本和其他分类数组数据
  • 上述任何组合

克莱奥拉的关键竞争优势

  • 比 DeepWalk 快 197 倍以上
  • 比 PyTorch-BigGraph 快 ~4-8 倍(取决于用例)
  • 支持星形扩展、团扩展和超图无扩展
  • 结果质量优于或与 PyTorch-BigGraph、GOSH、DeepWalk、LINE 等嵌入框架相当
  • 可以在单机上嵌入极大的图和超图

嵌入时间 - 示例

算法 FB 数据集 RoadNet 数据集 LiveJournal 数据集
克莱奥拉00:00:43 小时00:21:59 小时01:31:42 小时
PyTorch-BigGraph00:04.33 小时00:31:11 小时07:10:00 小时

链接预测结果 - 示例

FB 数据集 RoadNet 数据集 LiveJournal 数据集
算法 MRR 击中率@10 MRR 击中率@10 MRR 击中率@10
克莱奥拉 0.072 0.172 0.929 0.942 0.586 0.627
PyTorch-BigGraph 0.035 0.072 0.850 0.866 0.565 0.672

Cleora设计原则

Cleora被构建为一个多功能的“嵌入即可”工具,适用于许多不同的数据类型和格式。

Cleora消费一个表示类型化和无向异构超图的行关系表,它可以包含多个

  • 类型化的分类列
  • 类型化的分类数组列

例如,表示购物篮的关系表可能包含以下列

user <\t> product <\t> store

包含值的输入文件

user_id <\t> product_id product_id product_id <\t> store_id

每一列都有一个类型,该类型用于确定不同列之间的标识符空间是共享的还是不同的。两个列可以共享一个类型,这在同质图中是这种情况

user <\t> user

基于列格式规范,Cleora执行

  • 超边分解
  • 为所有实体类型对创建成对图
  • 每个图的嵌入

Cleora的最终输出由表中每个(无向)实体类型对的多个文件组成。

这些嵌入可以通过它们的维度独立性属性以新颖的方式利用,如下文所述。

Cleora嵌入的关键技术特性

Cleora生成的嵌入与Node2vec、Word2vec、DeepWalk或其他同类系统生成的嵌入不同,具有许多关键属性

  • 效率 - Cleora比Node2Vec或DeepWalk快两个数量级
  • 归纳性 - Cleora实体的嵌入仅由与其他实体的交互定义,因此可以即时计算新实体的向量
  • 可更新性 - 刷新实体的Cleora嵌入是一个非常快速的操作,允许实时更新而无需重新训练
  • 稳定性 - 所有实体的起始向量都是确定的,这意味着在相似的数据集上,Cleora嵌入最终将是相似的。Word2vec、Node2vec或DeepWalk每次运行都会返回不同的结果。
  • 跨数据集组合性 - 由于Cleora嵌入的稳定性,可以在多个数据集上对相同实体的嵌入进行平均组合,产生有意义的向量
  • 维度独立性 - 由于产生Cleora嵌入的过程,每个维度都是相互独立的。这种属性允许结合多视图嵌入与Conv1d层的高效且低参数方法
  • 极端并行性和性能 - Cleora是用Rust编写的,除了输入文件加载外,所有计算都利用了线程级并行性。在实践中,这意味着嵌入过程通常比加载数据更快。

Cleora嵌入的关键可用性特性

上述技术特性表明Cleora具有良好的生产就绪性,从最终用户的角度来看,可以总结如下

  • 可以无任何人工数据预处理嵌入异构关系表
  • 可以轻松嵌入混合交互+文本数据集
  • 新实体的冷启动问题不存在
  • 嵌入的实时更新不需要任何其他解决方案
  • 多视图嵌入无需额外操作即可工作
  • 时间增量嵌入直接稳定,无需重新对齐、旋转或其他方法
  • 支持极端大型数据集,可以在几秒/几分钟内嵌入

文档

更多信息请参阅完整文档

Cleora企业版

Cleora企业版现在可供选定客户使用。除了开源版本之外,还有以下主要改进

  • 性能优化:嵌入时间快10倍
  • 最新研究:显著提高了嵌入质量
  • 新功能:支持项目属性
  • 新功能:多图、文本和图像嵌入的多模态融合
  • 新功能:支持多种格式的压缩嵌入(球形、双曲、稀疏)

有关详情,请联系我们[email protected]

引用

如果您在自己的工作中使用此代码,请引用我们的论文(以及使用的方法的相关论文)

@article{DBLP:journals/corr/abs-2102-02302,
  author    = {Barbara Rychalska, Piotr Babel, Konrad Goluchowski, Andrzej Michalowski, Jacek Dabrowski},
  title     = {Cleora: {A} Simple, Strong and Scalable Graph Embedding Scheme},
  journal   = {CoRR},
  year      = {2021}
}

许可证

Synerise Cleora遵循MIT许可证,如LICENSE文件中所述。

如何贡献

欢迎您为这个开源工具箱做出贡献。详细的说明将很快以问题形式发布。

依赖项

~11–21MB
~294K SLoC