最终受益所有者 (UBO) 与公司所有权
面临的挑战
了解谁是公司的最终所有者或控制者,是现代合规与风险管理的核心。UBO 是指最终拥有或对组织行使有效控制权的个人(直接或间接)。
在实践中,所有权结构往往并不简单。公司通常嵌入在跨越不同司法管辖区、控股实体和间接控制路径的多层级结构中。使用传统方法追踪这些关系很快就会变得复杂且困难。在大型金融机构中,回答一个看似简单的问题,如“谁是该实体的最终所有者?”,可能需要跨越多个断连的系统进行数日的调查。
解决方案
所有权和控制权从根本上来说是关于关系的。人拥有公司,公司拥有其他公司,影响力通过所有权链条流动。在图中,这些关系被显式建模。在电子表格或关系型数据库表中难以追踪的结构,一旦以图形形式呈现,就变得直观易懂。
借助图数据库,您可以获得:
-
跨所有权和控制权数据的一致性事实来源
-
对复杂、多层级问题的实时解答
-
通过基于关系的逻辑,提高准确性并降低合规风险
-
通过减少人工调查来降低运营成本
-
通过可视化和交互式探索实现清晰的透明度
-
这些优势使图数据库成为进行 UBO 分析和获取可解释洞察的强大平台。
数据集与数据模型
为了演示图技术在 UBO 分析方面的能力,我使用来自英国公司注册处 (UK Companies House) 的两个数据集构建了一个演示:
利用这些数据集,我将数据转换并建模为图,并使用 Neo4j 的 Spark 连接器将数百万条记录导入到 Neo4j 中。
生成的图包含:
-
超过 1600 万个节点
-
超过 1800 万个关系
该模型包括公司、个人、法律实体、地址、行业代码和所有权关系。尽管此演示规模已达数百万,但同样的建模方法也可扩展至包含数十亿个节点和关系的图。Neo4j 旨在高效遍历深度连接的结构,这意味着即使数据集增长到企业级规模,多层级所有权分析仍能保持高性能。
CALL db.schema.visualization()
示例查询 - 可视化探索所有权网络
有了图数据,您可以运行强大的所有权查询,例如:
单个公司的子公司树
我们可以找到一家公司并探索其所有子公司。在下文中,我们从一家公司开始,向下查询组织结构。该查询可以轻松扩展,以按所有权百分比进行过滤,并计算跨越间接路径的总所有权。
MATCH p=(e:Company {company_number: "05310128"})-[:OWNS*]->(:Company)
WHERE all(r IN relationships(p) WHERE coalesce(r.ownership_pct_min, 0) >= 0)
RETURN DISTINCT p
反向所有权探索
Cypher 允许我们灵活地遍历所有权关系,并检测难以通过其他方式识别的模式。以下是一个包含循环所有权模式的公司结构示例。
MATCH p=(:Company {company_number: "02852924"})-[:OWNS*]-()
WHERE all(r IN relationships(p) WHERE coalesce(r.ownership_pct_min, 0) >= 0)
RETURN p
查找整个企业集团
使用 apoc.path.expand 函数,我们可以找到所有相关公司的企业集团。这可能会得出庞大的关联公司群体。
MATCH (e:Company {company_number: "00521970"})
CALL apoc.path.expandConfig(e, {
relationshipFilter: "OWNS",
minLevel: 1,
maxLevel: -1,
uniqueness: "RELATIONSHIP_GLOBAL",
filterStartNode: false
})
YIELD path
RETURN DISTINCT path
让全组织都能访问所有权数据
资源
图技术将天生互联的所有权和控制权世界转化为一种易于查询、探索、可视化和分析的结构。从详细的 Cypher 调查到 Bloom 中的可视化探索、运营仪表板以及通过 Aura Agents 进行的自然语言交互,组织可以为 UBO 分析带来透明度和可扩展性。
自行探索演示:
-
代码仓库:所有材料(包括数据模型、导入脚本和示例查询)均可在 neo4j-company-house-demo 中获取
-
数据库转储:完整的 Neo4j 数据库备份对于 GitHub 来说太大。您可以点击此处下载:下载 Neo4j 数据库转储
-
博客:博客文章可查阅:利用图技术探索最终受益人 (Exploring Ultimate Beneficial Ownership with Graph Technology)
-
录像:您可以在网络研讨会录像中观看完整的演示讲解:观看网络研讨会录像