一、知识图谱概述
说实话,我第一次接触知识图谱这个概念,是在2012年做投研系统的时候。那时候我们团队接了个活儿——帮一家券商搭建行业研究知识库。客户说:「你们能不能把研究员脑子里的东西,变成机器能读懂的?」
我当时第一反应是:这不就是数据库吗?后来才发现,完全不是一回事。
知识图谱,说白了就是一种用图结构来组织知识的方式。它不像传统数据库那样把数据存在一张张表里,而是用「节点」代表实体,用「边」代表关系。你想想看,我们人类是怎么理解世界的?不就是通过一个个概念和它们之间的联系吗?
核心定义:知识图谱 = 实体(节点)+ 关系(边)+ 属性(节点/边的特征)
1.1 什么是知识图谱
我习惯用一个例子来解释。假设你在研究「贵州茅台」这家公司。
传统数据库会这样存:
表1:公司信息表
| 公司ID | 公司名称 | 市值 | 行业 |
|--------|----------|------|------|
| 001 | 贵州茅台 | 2.1万亿 | 白酒 |
表2:高管信息表
| 高管ID | 姓名 | 职位 | 公司ID |
|--------|------|------|--------|
| 101 | 丁雄军 | 董事长 | 001 |
知识图谱会这样存:
实体1: [贵州茅台] —(董事长)→ 实体2: [丁雄军]
实体1: [贵州茅台] —(所属行业)→ 实体3: [白酒行业]
实体1: [贵州茅台] —(竞争对手)→ 实体4: [五粮液]
实体4: [五粮液] —(董事长)→ 实体5: [曾从钦]
看出区别了吗?知识图谱天然就保留了实体之间的语义关系。你从「贵州茅台」出发,沿着「董事长」这条边,一步就能找到「丁雄军」。再沿着「竞争对手」这条边,又能找到「五粮液」和它的董事长「曾从钦」。
这种结构,特别适合做关联分析和推理。我在项目中遇到过最典型的场景:研究员想查「所有与茅台有供应链关系的公司」,用传统SQL要写三四个JOIN,用知识图谱只需要沿着「供应商→客户」这条关系路径走一遍就行。
我的经验:知识图谱不是银弹。如果你的数据只是简单的增删改查,用关系数据库就够了。但如果你要做深度的关联分析、路径发现、推理预测,知识图谱才是正确的选择。
1.2 知识图谱在投研中的应用价值
投研这个领域,说白了就是找关系、挖逻辑、做预测。知识图谱在这三个环节都能派上大用场。
我总结下来,主要有四个应用方向:
- 产业链分析:把上下游关系、供需关系、竞争关系全部图谱化。比如研究「新能源汽车」,你可以从「锂矿」一路走到「充电桩」,中间经过「电池」「电机」「整车」等环节,每个环节的龙头公司、产能数据、技术路线一目了然。
- 事件驱动分析:把新闻、公告、政策等事件与公司、行业关联起来。比如「某地出台限电政策」,知识图谱可以自动推算出哪些高耗能行业受影响,进而影响哪些上市公司。
- 风险传导分析:一家公司暴雷,会通过股权关系、担保关系、供应链关系传导到其他公司。知识图谱可以量化这种传导路径和概率。
- 智能问答与研报生成:研究员问「过去三年,毛利率超过30%且研发投入占比超过10%的医药公司有哪些?」知识图谱可以直接给出答案,不需要人工翻报表。
一个真实案例:我曾经帮一家私募搭建过「供应链风险图谱」。他们把3000多家上市公司的供应商、客户、担保关系全部导入知识图谱。结果有一次,某家电子元器件公司突然停产,系统自动预警了37家可能受影响的上市公司,其中5家后来确实发布了业绩预警。客户说:「这系统比我们研究员还敏感。」
1.3 知识图谱的核心要素
嗯,这里要注意。知识图谱虽然听起来高大上,但核心要素其实就三个:实体、关系、属性。我一个个说。
实体(Entity)
实体就是图谱中的「节点」。在投研场景里,实体可以是:
- 公司:贵州茅台、腾讯控股、特斯拉
- 人物:丁雄军、马化腾、马斯克
- 产品:飞天茅台、微信、Model Y
- 事件:2023年茅台提价、腾讯回购股份
- 概念:白酒行业、新能源汽车、人工智能
每个实体都有一个唯一标识(ID),就像人的身份证号。我习惯用「类型_名称」的格式,比如「Company_贵州茅台」。
关系(Relation)
关系就是实体之间的「边」。关系是有方向的,而且可以带标签。常见的投研关系包括:
| 关系类型 | 示例 | 说明 |
|---|---|---|
| 股权关系 | 腾讯控股 → 持有 → 美团 | 母公司-子公司关系 |
| 供应链关系 | 宁德时代 → 供应商 → 天齐锂业 | 上下游关系 |
| 竞争关系 | 贵州茅台 → 竞争对手 → 五粮液 | 同行业竞争 |
| 任职关系 | 丁雄军 → 担任 → 贵州茅台董事长 | 人物与公司关联 |
| 事件影响 | 限电政策 → 影响 → 高耗能行业 | 事件与实体关联 |
避坑指南:我曾经犯过一个错误——把关系定义得太细。比如「供应商」「核心供应商」「战略供应商」搞了三种关系。结果查询的时候特别麻烦,而且数据稀疏。后来我统一用「供应商」一种关系,再加一个「合作等级」属性来区分。记住:关系类型宁少勿多,属性可以弥补细节。
属性(Property)
属性是实体或关系的「特征描述」。比如:
- 公司实体的属性:市值、营收、净利润、员工数、成立时间
- 人物实体的属性:年龄、学历、任职时间、薪酬
- 关系的属性:持股比例(股权关系)、合作年限(供应链关系)
属性可以是数值、文本、日期、布尔值等。我建议把频繁用于筛选和计算的字段设为属性,比如市值、毛利率。而描述性的文本(比如公司简介)可以单独存到文档里,不要塞进图谱,否则图谱会变得臃肿。
1.4 知识图谱的核心逻辑
说了这么多,我画一张图帮你理清思路。这张图展示了知识图谱在投研中的核心逻辑:
这张图展示了知识图谱在投研中的完整链路:从多源数据出发,经过实体识别、关系抽取、属性填充,构建成知识图谱,然后支撑产业链分析、事件驱动分析、风险传导分析等应用,最终输出投资决策支持。
我的建议:刚开始搭建知识图谱时,不要追求大而全。选一个具体的业务场景切入,比如「供应链风险分析」或者「竞争对手追踪」。先把小场景做透,再逐步扩展。我见过太多团队一上来就想把所有数据都塞进去,结果半年了还在做数据清洗。
好了,这一章我们聊了知识图谱的基本概念、投研应用价值,以及三个核心要素。下一章我会带你手把手搭建第一个投研知识图谱——从数据采集到图谱查询,走通全流程。