Tensor Logic: The Language of AI
Pedro Domingos
cs.AI, cs.LG, cs.NE, cs.PL, stat.ML
2025-10-14
华盛顿大学Pedro Domingos主张张量方程是AI母语:逻辑规则等于带阶跃的einsum,Transformer、核方法与图模型都能写成同一套方程,并给出可调温度的嵌入推理。
AI 到现在还没有自己的语言。LISP 和 Prolog 撑起过符号派,但几乎不学、也跑不大。PyTorch 和 TensorFlow 把自动微分和 GPU 接到 Python 上,对自动推理和知识获取帮不上忙。神经符号系统往往两边的短处一起继承。图模型是概率派的通用语,推理代价又把它卡住。
华盛顿大学 Pedro Domingos 的主张很硬:该统一的是数学地基,不是再叠一层胶水。他观察到两件事。关系是稀疏布尔张量的紧凑写法;一条 Datalog 规则,就是对布尔张量做爱因斯坦求和,再逐元素套上阶跃函数。两者同构,差的只是原子类型。
Tensor Logic 的程序是一组张量方程。左边是要算的张量,右边是一串张量连接(join)再投影到左边的指标,可选地加一个一元非线性。指标写在方括号里,重复指标默认求和,和 einsum 一样。元素默认是 0,同左端的方程隐式相加,对应逻辑程序里多条规则推出同一谓词。
几个能复述的例子:
推理是张量版的前向链和后向链。学习几乎是免费的:方程对右端某个张量的导数,就是其余张量的乘积,整个程序的梯度还是一个张量逻辑程序。结构随样本变时,走 backpropagation through structure。张量分解对应谓词发明。
真正新的方向是嵌入空间里的推理。对象嵌成随机单位向量时,关系的嵌入是元组外积的叠加,查询时再点回去,误差随维数下降,像 Bloom filter。嵌入若是学出来的,Gram 矩阵让相似对象按相似度「借用」彼此的推论,这是显式的类比。给方程加 sigmoid,温度 T=0 时 Gram 退化成单位阵,推理退回纯演绎;升温则越来越类比。作者拿这一点对比 LLM:温度到 0 仍会幻觉,而这套在足够低的 T 下声称可免疫幻觉,并且中间张量随时可取出。
规模上给了两条路:稠密子张量走 GPU,稀疏子张量当关系交给数据库查询优化;或者先做 Tucker 分解把稀疏变稠密,再全在 GPU 上算,用维数和阶跃控制误差。
这是一篇纲领,没有基准、没有实现数字、没有对照表。作者展示的是可写性:MLP、CNN、RNN、GNN、Transformer、Datalog、核机器、贝叶斯网都能落成同一类方程;RNN 那条已经图灵完备,所以语言本身也是。嵌入方案给出误差标准差 √(N/D)(N 是集合大小,D 是嵌入维),没有在真实知识库上测过查询准确率。
论文未给出与 PyTorch、Prolog 或任何神经符号系统的运行时间、内存或任务分数对照。tensor-logic.org 被点名为后续入口,正文里没有发布编译器或 GPU kernel 的实验。
如果观察成立,einsum 就不再只是深度学习的实现细节,而是神经、符号、概率三条线共用的原语。对写模型的人,这意味着先验知识可以写成规则,规则可以直接求导;对做推理的人,温度变成在演绎和类比之间滑动的旋钮,中间状态可检查。
眼下它更接近一门设计语言,而不是可替换 PyTorch 的运行时。没有实现之前,对幻觉的免疫是论证,不是测量。值得跟进的人是在做神经符号、可检查推理、或厌倦 Python 胶水的研究者;训练生产模型的人暂时还没有可跑的栈。
最大的洞是零实验。统一是语法层的,张量方程能写 Transformer 不代表训练动态、数值稳定或稀疏 GPU kernel 会变简单。嵌入推理的「低温度无幻觉」依赖随机单位向量近似正交,真实学到的嵌入高度相关,误差分析未必成立。Tucker 分解把稀疏变稠密,维数一高核心张量爆炸,论文只说「适当设维数」。后向链遇到缺失方程就填 0,和逻辑程序的失败语义并不相同。作者自己也写,新语言要爬很长的坡,兼容 Python、吃进 NumPy/PyTorch 是设想中的路线,不是已有的产品。