大模型+知识图谱:GPT构建高质量KG的机遇与挑战
二十世纪上半叶,几位科学巨匠在不同领域留下了深刻印记。阿尔伯特·爱因斯坦、欧内斯特·劳伦斯、尼尔斯·玻尔——这些诺贝尔奖得主对物理学的基础贡献早已载入史册。但人们往往忽略另一个角色:他们作为筹款人的能力如何?尤其是那些与自身学科看似无关的研究领域,比如生命科学和生物学,他们的推动力究竟有多大?
洛克菲勒档案中心(RAC)恰好收集了这类科学资助信息,甚至包括那些不易察觉的长尾数据。RAC是研究洛克菲勒基金会(RF)慈善活动及其全球影响的核心库。项目所用的文件可追溯到上世纪30年代的官员日记(ODs),里面记录了RF官员与科学家的对话——这些官员负责资助研究项目,而科学家们正奋战在自然科学领域的具体课题上。之所以选择这个数据集,是因为那个激动人心的时代正孕育着现代研究课题,分子生物学、核科学等概念开始在实验室里成形。
这些日记的价值在于,其中记载的对话和交互往往直接推动特定研究项目获得资助。但要理解RF资助流程背后的动态机制,必须生成以知识图谱(KG)形式呈现的高质量结构化数据。以尼尔斯·玻尔为例:维基百科告诉我们,他不仅奠定了原子结构理论,更是科学研究的积极推动者。而在ODs基础上构建的KG,恰好能揭示这种支持性活动是如何一步步落地的。
下面要介绍的,是我们在一个可生产、可扩展的环境中,如何利用OpenAI GPT模型——配合GraphAware的端到端图分析平台Hume——在ODs文本之上生成高质量KG。文中总结的经验可以轻松迁移到不同领域,从科学研究到执法分析,只需将Hume与GenAI的能力结合起来即可。
核心流程全览
从官员日记(ODs)到知识图谱,我们多处借助了GPT和Hume的能力。整个信息提取流程包含若干关键步骤,每一环都决定着提取质量和效率。
主要步骤如下:
- 文件分块:针对日记条目设计的临时分块策略;
- 命名实体识别(NER):从非结构化文本中识别并分类出预定义类别实体;
- 关系抽取(RE):检测并分类实体对之间的语义关系;
- 实体解析(ER):将不同数据记录中的同一实体的所有提及连接起来。
文件分块:从日记中精准提取条目
大型文件往往无法一次塞进模型——GPT有令牌限制,即便新版不断放宽边界,整个数据集依然难以一次性处理。而且经验表明,文本越长,实体和关系的提取质量就越差。
好在ODs天然按日期组织,将日记按每一条目写入的日期进行划分,是再自然不过的策略。这个步骤至关重要:不恰当的分段会丢失关键上下文,而高质量的NER和RE恰恰依赖上下文。具体做法是,先执行日期提取:将对应日记页面上的行文本作为输入列表交给GPT,并指定检测日志条目日期的指令。输出是一个JSON列表,包含日期出现的行号和归一化后的日期或日期范围。
为了提高鲁棒性,日期提取流程设计了多道防线。首次尝试使用gpt-3.5-turbo;如果失败,则换用gpt-4重试。最后还要检查结果中是否只包含日志条目日期,而非文本中间出现的通用日期。利用提取出的日期,最终重构出完整的官员日记条目(ODEs)文本。
实体识别与关系抽取:生产环境下的考量
在生产环境中用GPT执行NER和RE,有几个必须正视的问题:
- 文件长度对结果准确性的影响;
- 如何用多个提示灵活应对不同场景;
- 对GPT服务故障以及输出格式不符预期的鲁棒性。
幸运的是,Hume平台的Orchestra系统直接提供了集成支持,可以优雅地解决这些需求。
基于长度处理ODEs
提取细粒度信息时需要先拆分OD,但有些检测到的ODE横跨多个页面,输入文本仍然偏长。上图中的Orchestra工作流为此设计了两个分支:短条目走简单分支,长条目则先分块再处理。分块的目的是控制gpt-4的令牌限制,更关键的是避免长输入导致的质量退化——用生成模型从长文本中提取事实,这个陷阱必须留心。
提示的构建分为单页和多页两种。它们都执行NER和RE任务,但多页提示需要额外添加上下文(从前一块传递到当前块),以便利用GPT的隐式共指能力,或者处理跨块的句子。
流程鲁棒性
GPT在生产环境中可能出现的故障有两类:一是服务本身故障(输入错误、服务不可用等),二是响应解析器故障——输出格式不符合预期,这源于模型的生成特性。Orchestra工作流允许定义分支,专门处理这些异常。每个分支都可以指定失败后的具体操作,例如为出错的日记条目打上特殊标签,以便后续针对性调查和流程改进。
NER与RE的成果一览
高质量的知识图谱离不开精准的信息提取,NER和RE正是核心。来看一个具体案例:某条ODE中,一个页面明确提到“O. Stutzer教授”,同一页又以“S.”称呼,下一页又变成“Stutzer”。这些不同提及还与组织机构、职业及其他人的信息交织在一起。我们的目标是让知识图谱生成一个唯一节点来表示所有对“O. Stutzer”的引用,并建立相应关系。通过提示引导模型识别这些情况,并利用前一页的上下文来重构完整姓名。
下图展示了高级NER和RE之后的结果:字符串“O. Stutzer”和“K. Jurasky”被识别为人名实体(紫色节点),“paleo-botanist”和“geologist”被识别为职业实体(红色节点)。模型还能协调不同的命名方式,准确建立关系,将“O. Stutzer”与相关实体连接起来。
除了基础实体和关系,GPT还能提取更细粒度的信息,比如情感分析和对话提取。
情感分析:捕捉潜台词
日记中常常包含官员对科学家的个人评价。举个典型片段:J. Franck对同事的态度,他觉得Schumann胜过Stark,又点名Hertz和Debye是德国一流物理学家。通过调整“TALKED_ABOUT”关系的提示,模型成功提取了这些复杂印象,结果图谱清晰地呈现了评价网络。
对话内容提取:还原现场
日记中充满了RF官员与科学家之间围绕研究项目的详细对话。以下片段记录了一次午餐讨论:模型通过“had conversation with”关系类型识别出对话,并构建了包含参与者、讨论主题和场景(当面会谈或午餐)的节点。提示词中特别要求识别“had conversation with”关系。
[...] "had conversation with" (i.e., an Officer talked with one or multiple persons present at the time) [...]
Example:
{
"entities": {
"person": [
{"id": 1,"name": "William Meade","titles": []},
{"id": 2,"name": "WW","titles": []}
]
}
}
{
"relationships": {
"had conversation with":[{"source": 2,"targets": [1],"context": "on-site"}]
}
}
下图展示了结果:模型正确识别出1935年12月13日,沃伦·韦弗(WW)与约翰·J·科斯教授等人关于现代博物馆功能的午餐对话。
综合成果:一个完整的知识图谱案例
将以上要素综合起来,得到的图形结果令人印象深刻。下图展示了RF官员沃伦·韦弗和W·蒂斯代尔与科学家W·E·蒂斯代尔、A·拉卡桑尼日和F·约里奥之间的对话网络,后两者还提到了W·博特和P·A·M·狄拉克的研究活动。注意:这些人名只以姓氏出现,且前文并未包含全名。构建高质量知识图谱的关键,恰恰在于识别出跨页面、跨文档的同一实体,用唯一节点消解歧义。
实体解析:用GPT和图谱消除歧义
实体解析(ER)是将数据解析为独特且有价值的实体配置的系统性方法。对于非结构化内容,需要将段落、页面甚至文档中的多义实体提及调和为最终解决的节点。
考虑一个典型案例:Frank B. Hanson(FBH)不同日记条目中多次出现“Curtis”。1934年FBH ODE第121页只写了姓氏Curtis,1933年另一条写全名W. C. Curtis,1938年又写Howard J. Curtis。到底Curtis指的是哪一个?能否利用GPT生成的关系来明确判断?
通过组织和主题规范化进行人名解析
仅仅靠姓名相似度来做人员实体解析显然不够,还需要额外信号。通过复杂的RE任务,我们已经将大多数名称与其所在组织、科学领域或主题关联起来。但组织和主题的表达方式五花八门:牛津大学可能写成“Oxford”或“University of Oxford”,甚至“Christ Church, Oxford”也与该机构相关。主题方面,“辐射问题与生物有关”和“辐射对生物的影响”本质是同一研究方向,但用词不同。
我们采用两种方法解决这些问题:一种基于提示定义,要求GPT规范化名称并理解层次关系;另一种利用GPT计算出的嵌入进行语义聚类。针对组织机构,我们在Orchestra工作流中将NER/RE阶段提取的组织名称再次输入GPT进行规范化。提示包括:normalize the organization name, identify the main institution of the organization (if exists)。
下图展示了结果:黄色节点是NER/RE阶段提取的原始实体,蓝色节点是解析后的统一实体。这种操作大大减少了噪声,分析师只需处理两个节点及其关系,而不是四个不相关的节点。
对于主题,我们根据语义相似性进行分组:使用text-embedding-ada-002计算嵌入,再利用层次聚类将相似主题归并。下图展示了与“高血糖”相关的簇,TopicGroup节点本身还可以按层级分组,分析师可以根据需要选择不同粒度的语义分组(例如将高血糖簇与糖尿病簇合并)。嵌入和聚类都在Orchestra中执行。
规范化步骤对人员解析的影响立竿见影。下面这个例子解释了为什么必须将“Chambers”和“Robert Chambers”解析为同一人:第一个明确在纽约大学工作,第二个在华盛顿广场学院工作。但GPT识别出这两个学府之间的关联——根据维基百科,华盛顿广场学院于1914年作为纽约大学市区的本科学院成立。基于这种非平凡的联系,我们可以断言Chambers和Robert Chambers极有可能是同一个人,而不仅仅是姓氏相同。
回到之前关于Curtis的问题:下面这张图给出了答案。Curtis从事“与生物体有关的辐射问题”研究,而W. C. Curtis从事“辐射对生物体的影响”研究。这两个字符串代表同一研究领域,但朴素字符串相似性算法很难捕捉到这种语义等同。而我们处理语义相似性的方法,正确地将Curtis解析为W. C. Curtis(而非Howard J. Curtis)。
基于知识图谱的洞察发现
GPT构建的知识图谱结合Hume的能力,能够揭示科学家之间的网络动态。以尼尔斯·玻尔为例:通过分析影响网络——利用TALKED_WITH、TALK_ABOUT、STUDENT_OF和WORKS_WITH等多种关系类型,结合图算法(如PageRank),可以找出最具影响力的科学家。下图展示了影响网络的子图,关键节点的大小由其PageRank得分决定。PageRank衡量一个人在网络中的重要性:如果许多重要人物积极与某个节点互动,意味着这个节点能影响决策。图中显示,尼尔斯·玻尔是其中一个最主要社群的中心节点。
维基百科上尼尔斯·玻尔的页面提到了这个社群中的多位科学家:奥托·斯特恩、哈拉尔德·玻尔、乔治·冯·赫维希和詹姆斯·弗朗克——他们属于玻尔的直接科学圈。这证实了ODs中生成的网络动态与已知的一致性。但更有趣的是发现长尾信息:玻尔在推动不同科学领域资金支持方面的作用。我们感兴趣的是那些与玻尔研究活动无直接联系的资助项目。
下图展示了一个具体赠款案例(绿色节点)。该赠款被授予H. V. Brondsted,主题是生物学(实验动物学),赠款细节中提到了尼尔斯·玻尔。通过探索赠款信息、ODEs提取的内容以及KG,我们可以尝试回答:能否重构H. V. Brondsted、尼尔斯·玻尔和其他相关人物之间的互动——这些互动可能最终导致了赠款的授予?
从图谱中看到,H. V. Brondsted和尼尔斯·玻尔之间存在一条TALKED_ABOUT关系。此外,奥古斯特·克罗(August Krogh)是玻尔的主要合作伙伴之一,他与Brondsted之间也存在TALKED_ABOUT关系,且对Brondsted有正面评价。通过在“TALKED_ABOUT”关系上执行解释操作(Hume平台上的Cypher查询),可以直接浏览原始来源如何描述三人的互动:
"Brondsted称他已与N Bohr建立联系,并将在芬森研究所研究X射线对海绵原生质的影响。"
另一篇1939年的ODE进一步澄清了玻尔和克罗格在赠款授予中的角色。
这个例子直观展示了如何通过结合GPT输出、KG技术和Hume特征,轻松重构研究人员之间的互动链条,回答了最初关于玻尔在支持非传统研究主题方面影响力的疑问。
经验教训与展望
本文的实践表明,GPT和LLMs正在开启从文本数据构建高质量、大规模知识图谱的全新可能。从命名实体识别、关系抽取到实体消解等真实场景任务,这些模型展现出了令人惊喜的能力。值得注意的是,我们在流程中混合使用了多种模型:用效率更高的模型处理常规任务,用更强大(也更昂贵)的模型应对边缘情况和复杂场景。尼尔斯·玻尔的案例生动诠释了LLMs与知识图谱结合在自然语言内容中发现信息的巨大潜力。而且,由于技术本身的灵活性,这些方法可以轻松迁移到新闻、执法等其他领域。对RAC知识图谱的全面分析将是下一篇博客的主题,届时将展示更高级的洞察和发现。
