什么是元组 ID 传播?
元组 ID 传播是一种实现虚拟连接的方法,它极大地提高了多关系分类的效率。它不是物理地连接关系,而是通过将目标元组的 ID 连接到非目标关系中的元组来虚拟地组合它们。
在这种方法中,可以像实现物理连接一样计算谓词。元组 ID 传播灵活且高效,因为 ID 可以简单地在两个关系之间传播,只需要少量的数据传输和更多的存储空间。通过这样做,可以减少冗余计算,从而计算多个关系中的谓词。
元组 ID 传播必须遵守特定的约束。在两种情况下,这种传播可能会适得其反:
通过大型扇出传播
通过长而弱的链接传播。
第一种情况出现在将 ID 传播到关系 R 后,发现 R 中的每个元组都与某些目标元组连接,并且每个目标元组都与 R 中的某些元组连接。由于连接是非选择性的,因此 R 和目标关系之间的语义连接非常弱。
例如,通过出生国链接在人员之间进行传播可能不会有效。第二种情况出现在传播经过很长的连接时(例如,将学生与其汽车经销商的宠物连接起来可能不会有效)。为了提高效率和确定性,不建议通过这种连接进行传播。
CrossMine 是一种需要元组 ID 传播进行多关系分类的方法。它可以更好地结合 ID 传播的数据,CrossMine 需要复杂的谓词作为规则的组成部分。一个复杂的谓词 p 包括以下两个部分:
prop-path - 这表示如何传播 ID。例如,路径“Loan.account_ID → Account.account_ID”表示使用 account_ID 将 ID 从 Loan 传播到 Account。如果未包含 ID 传播,则 prop-path 为 null。
约束 - 这是一个谓词,表示对传播 ID 的关系的约束。它可以是分类的或数值的。
CrossMine 构造一个分类器,其中包含一组规则,每个规则包含一组复杂的谓词和一个类标签。CrossMine 是一种类似于 FOIL 的顺序覆盖算法。它可以一次构造一条规则。构造规则 r 后,满足 r 的所有正目标元组都将从数据集中删除。
CrossMine 定期搜索最佳复杂谓词并将其添加到当前规则中,直到满足停止条件。如果关系出现在当前规则中,则该关系处于活动状态。在搜索下一个最佳谓词之前,需要每个活动关系对它的每个元组具有传播 ID 的 ID 集。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP