1 个稳定版本
1.2.3 | 2023 年 6 月 22 日 |
---|
#498 在 机器学习
2MB
2K SLoC
成就
在 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-BigGraph | 00: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