More than code

More Than Code
The efficiency of your iteration of reading, practicing and thinking decides your understanding of the world.
  1. 首页
  2. 未分类
  3. 正文

KumoRFM

2025年5月25日 4点热度 0人点赞 0条评论

Kumo的使用方式在这边有一个简单的例子:https://colab.research.google.com/drive/1WOyMm8gdT1lwrmgRjJUSwb940sn6jUM4#scrollTo=z6FzaBV6jZAY

基本流程是:
* 用户导入数据表,Kumo会把关系型数据转化成图数据:
* 每一行是一个实体
* 行与行的外键约束就是边。就是表示Join
* 用户通过PQL提交查询,比如:
* PREDICT LIST_DISTINCT(transaction.StockCode, 0, 7, days) RANK TOP 12 FOR EACH customer.CustomerID
* Construct a query to predict which products (StockCode) the user is most likely to interact with in the next 7 days, for all customers in the customer table
* 主要提供三种类型的任务:
* link prediction
* regression
* classification
* 生成给Relational GraphTransformer的输入,利用的是in-context learning
* 包括一些(subgraph, label) pair,表示的是根据这些subgraph,预期预测这样的label
* sample针对本次prediction的subgraph
* 这里sample的内容可以根据时间做过滤,比如通过过去一个月/七天的数据做prediction,这些条件是可以通过PQL来定义的
* 把上一步的输入丢给KumoRFM,生成Label。这里涉及到三点:
* row embedding,Kumo会针对每一列数据不同的类型生成对应的embedding,比如text类型,timestamp类型,enum类型等。然后会过一个transformer把不同列的embedding合并,得到这一行的embedding。
* table-wise interaction,这里是把子图放到Relational Graph Transformer中,从而获取子图级别的embedding
* In-context learning,把sample得到的training subgraph和context subgraph生成子图embedding,加上training subgraph对应的label。一起放到一个transformer架构的模型中,生成最终的答案

  • 这里的online context generation中还有一个优化点:
    • 他们会把节点历史的label也作为一个表保存下来,这里我理解就也通过边把一个节点和他的历史的label连起来了。
    • 这样在sample的时候,就可以结合节点历史的信息,以及节点邻居的label,来预测新的label。

和GraphGPT那种先GNN再LLM的架构基本是一样的,主要区别是加上了in-context learning,并且限制了任务的类型。

能够感觉到是比较大的功能,并且这个工作个人感觉很有意义,利用了模型的in-context learning的能力,来支持泛化。
* 并不属于知识图谱那种推理问答类,而是更偏向推荐一些。
* benchmark中好像并没有和一些前沿推荐模型的对比。这里主要concern的点是:
* KumoRFM有比较好的易用性,同时提供了不错的性能。对于一些中小型公司应该比较有吸引力
* 但是这里的效果如果不够好的话,可能在大厂里落地的可能性就比较小?
* 对sample/数据更新的链路要求比较高

可能还有一点想到的是,这里主要面向的是子图,也就是entity-level的任务。如果利用GraphTransformer的全局数据处理能力,或者一些其他的能够利用全局图结构的模型。是不是可以泛化到,去做全局性的任务,比如分析购买趋势等?
* 以及泛化到与数据对话,比如xxx时间段的购买趋势,描述xxx好友在做什么,分析两个点的关系等
* 如果只是单纯的泛化到对话,是不是又回到了GraphGPT的那种?那这里能做的点还有什么吗?
* 或者是放弃泛化直接对话,或者是针对一些常见任务搞特化的方案?
* 比如prediction类的任务,可能直接通过embedding这种会比较好
* 分析关系,溯源推理类,可能利用知识图谱相关能力会更好,比如路径查找+解释
* 是否还有其他类任务?

标签: 暂无
最后更新:2025年5月25日

sheep

think again

点赞
< 上一篇

文章评论

取消回复

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS