AIGC领域文本嵌入:助力知识图谱构建
关键词:AIGC、文本嵌入、知识图谱构建、自然语言处理、预训练模型、实体对齐、关系抽取
摘要:本文深入探讨AIGC(生成式人工智能)时代下,文本嵌入技术如何突破传统知识图谱构建的瓶颈,实现从非结构化文本到结构化知识的自动化转换。文章系统解析文本嵌入的核心原理、关键算法(如BERT、Sentence-BERT),结合数学模型与代码实战,展示其在实体识别、关系抽取、知识融合等知识图谱构建全流程中的应用。通过金融、医疗等领域的实际案例,揭示文本嵌入如何提升知识图谱的构建效率与质量,并展望多模态嵌入、动态知识图谱等未来趋势。
1. 背景介绍
1.1 目的和范围
知识图谱(Knowledge Graph, KG)作为结构化知识的核心载体,已广泛应用于智能搜索、推荐系统、问答交互等场景。传统知识图谱构建依赖人工标注与规则驱动,面临“冷启动”(低资源领域难以构建)、“规模瓶颈”(海量非结构化文本处理效率低)、“语义缺失”(浅层特征无法捕捉复杂语义)三大挑战。
AIGC技术的兴起为知识图谱构建提供了新范式:通过文本嵌入(Text Embedding)将非结构化文本转换为低维稠密向量,利用向量空间的数学性质(如余弦相似度)实现实体、关系的自动化挖掘。本文聚焦文本嵌入在知识图谱构建中的关键作用,覆盖从原理到实战的完整技术链路。
1.2 预期读者
- 自然语言处理(NLP)工程师:需理解文本嵌入与知识图谱的技术融合。
- 知识图谱开发者:需掌握基于AIGC的自动化构建方法。
- 人工智能研究者:需了解文本嵌入的前沿进展及其应用场景。
1.3 文档结构概述
本文结构如下:
- 核心概念:解析文本嵌入与知识图谱的定义及关联。
- 算法原理:对比Word2Vec、BERT等模型的数学基础与实现差异。
- 数学模型:推导嵌入生成的核心公式(如注意力机制、损失函数)。
- 项目实战:以电影领域知识图谱为例,展示从数据处理到知识存储的全流程。
- 应用场景:金融、医疗等领域的落地案例。
- 工具资源:推荐开发工具与学习资料。
- 未来趋势:多模态嵌入、动态知识图谱等方向。
1.4 术语表
1.4.1 核心术语定义
- 文本嵌入(Text Embedding):将文本(词、短语、句子)映射到低维连续向量空间的过程,保留语义相似性。
- 知识图谱(Knowledge Graph):以实体(Entity)、关系(Relation)、属性(Attribute)为三元组(h, r, t)的结构化知识库。
- 实体对齐(Entity Alignment):识别不同数据源中指向同一实体的不同指称(如“苹果”与“Apple”)。
- 关系抽取(Relation Extraction):从文本中提取实体间的语义关系(如“导演”“主演”)。
1.4.2 相关概念解释
- AIGC(Artificial Intelligence Generated Content):通过AI生成内容(如文本、图像),本文特指利用生成模型辅助知识抽取。
- 预训练模型(Pretrained Model):在大规模无标注数据上预训练的模型(如BERT),可通过微调适配下游任务。
- 图数据库(Graph Database):存储图结构数据的数据库(如Neo4j),支持高效图查询与遍历。
1.4.3 缩略词列表
- KG:Knowledge Graph(知识图谱)
- NLP:Natural Language Processing(自然语言处理)
- MLM:Masked Language Model(掩码语言模型)
- CLS:Classification Token(分类标记)
2. 核心概念与联系
2.1 文本嵌入:从离散符号到连续向量
文本嵌入的本质是将自然语言的离散符号(如单词、句子)转换为连续向量空间中的点,使得语义相似的文本在向量空间中距离更近。其发展历程可分为三代:
代际 | 模型/方法 | 核心思想 | 局限性 |
---|---|---|---|
1.0 | 词袋模型(Bag-of-Words) | 统计词频,忽略顺序与语义 | 维度高、语义丢失 |
2.0 | 分布式表示(Word2Vec、GloVe) | 上下文预测或共现矩阵分解 | 静态嵌入(一词多义处理差) |
3.0 | 预训练模型(BERT、GPT) | 深度上下文建模(动态嵌入) | 计算成本高、需微调 |
2.2 知识图谱:结构化知识的“神经网络”
知识图谱的核心是三元组(h, r, t),其中:
- 实体(h/t):真实世界中的具体对象(如“《流浪地球》”“郭帆”)。
- 关系(r):实体间的语义连接(如“导演”“出品公司”)。
- 属性(Attribute):实体的特征(如“上映时间:2019-02-05”)。
2.3 文本嵌入与知识图谱的技术链路
文本嵌入在知识图谱构建中的关键作用体现在以下环节(图1):
graph TD
A[非结构化文本] --> B[文本嵌入生成]
B --> C[实体识别]
B --> D[关系抽取]
C --> E[实体对齐]
D --> E
E --> F[知识融合]
F --> G[知识存储(图数据库)]
图1:文本嵌入驱动的知识图谱构建流程
- 实体识别:通过嵌入向量的聚类或分类,定位文本中的实体(如人名、地名)。
- 关系抽取:利用实体对的嵌入向量,预测其语义关系(如“作者-作品”)。
- 实体对齐:计算不同数据源中实体嵌入的相似度,合并同一实体的不同指称。
3. 核心算法原理 & 具体操作步骤
3.1 文本嵌入的核心算法
3.1.1 Word2Vec:基于上下文预测的静态嵌入
Word2Vec包含两种模型:CBOW(Continuous Bag-of-Words)和Skip-gram。
CBOW原理:用上下文词预测中心词。输入为上下文词的one-hot向量,通过投影层(无激活函数)得到平均嵌入,输出层通过softmax预测中心词。
数学模型:
目标函数为最大化中心词的条件概率:
L
(
θ
)
=
∏
t
=
1
T
∏
−
m
≤
j
≤
m
,
j
≠
0
P
(
w
t
+
j
∣
w
t
)
\mathcal{L}(\theta) = \prod_{t=1}^T \prod_{-m \leq j \leq m, j \neq 0} P(w_{t+j} | w_t)
L(θ)=t=1∏T−m≤j≤m,j=0∏P(wt+j∣wt)
其中,
m
m
m为窗口大小,
θ
\theta
θ为模型参数(嵌入矩阵)。
Python实现示例(使用Gensim库):
from gensim.models import Word2Vec
# 示例语料(电影领域)
sentences = [
["流浪地球", "导演", "郭帆"],
["郭帆", "毕业", "北京电影学院"],
["流浪地球", "主演", "吴京"]
]
# 训练Word2Vec模型
model = Word2Vec(
sentences=sentences,
vector_size=100, # 嵌入维度
window=2, # 上下文窗口大小
min_count=1, # 最小词频
workers=4 # 线程数
)
# 获取"郭帆"的嵌入向量
embedding = model.wv["郭帆"]
print(f"郭帆的嵌入向量(前5维): {embedding[:5]}")
3.1.2 BERT:基于深度上下文的动态嵌入
BERT(Bidirectional Encoder Representations from Transformers)通过双向Transformer编码器学习上下文相关的动态嵌入,解决了一词多义问题。其核心预训练任务为:
- MLM(掩码语言模型):随机掩码15%的输入词,预测被掩码的词。
- NSP(下一句预测):判断两个句子是否连续。
数学模型:
MLM的损失函数为交叉熵:
L
MLM
=
−
∑
i
=
1
n
log
P
(
w
i
∣
MaskedInput
)
\mathcal{L}_{\text{MLM}} = -\sum_{i=1}^n \log P(w_i | \text{MaskedInput})
LMLM=−i=1∑nlogP(wi∣MaskedInput)
其中,
n
n
n为掩码词数量,
P
(
w
i
)
P(w_i)
P(wi)为预测词的概率。
Python实现示例(使用Hugging Face Transformers库):
from transformers import BertTokenizer, BertModel
# 加载预训练模型与分词器
tokenizer = BertTokenizer.from_pretrained("bert-base-chinese")
model = BertModel.from_pretrained("bert-base-chinese")
# 输入文本(电影简介)
text = "《流浪地球》是由郭帆执导,吴京特别出演的科幻电影。"
# 分词与编码
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
# 生成嵌入(最后一层隐藏状态)
outputs = model(**inputs)
last_hidden_state = outputs.last_hidden_state
# [CLS]标记的嵌入(用于句子级表示)
cls_embedding = last_hidden_state[0, 0, :]
print(f"句子嵌入维度: {cls_embedding.shape}") # 输出: torch.Size([768])
3.1.3 Sentence-BERT:优化句子级嵌入
BERT直接取[CLS]标记的嵌入作为句子表示效果不佳,Sentence-BERT通过三元组损失(Triplet Loss)优化,使相似句子的嵌入更接近。
数学模型:
三元组损失定义为:
KaTeX parse error: Undefined control sequence: \margin at position 69: …_a - e_n\|^2 + \̲m̲a̲r̲g̲i̲n̲)
其中,
a
a
a为锚点句子,
p
p
p为正例(相似句),
n
n
n为负例(不相似句),KaTeX parse error: Undefined control sequence: \margin at position 1: \̲m̲a̲r̲g̲i̲n̲为间隔超参数。
Python实现示例(使用SentenceTransformers库):
from sentence_transformers import SentenceTransformer, util
# 加载预训练模型(针对中文优化)
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
# 示例句子对(电影相关)
sentences = [
"《流浪地球》的导演是郭帆",
"郭帆执导了科幻电影《流浪地球》",
"《战狼》的主演是吴京"
]
# 生成句子嵌入
embeddings = model.encode(sentences)
# 计算余弦相似度
similarity = util.cos_sim(embeddings[0], embeddings[1])
print(f"句子1与句子2的相似度: {similarity.item():.4f}") # 输出: ~0.95
3.2 知识图谱构建的关键步骤
3.2.1 实体识别(Named Entity Recognition, NER)
通过文本嵌入的序列标注模型(如BERT+CRF)识别实体。例如,在电影文本中识别“电影名”“导演”“演员”等实体类型。
3.2.2 关系抽取(Relation Extraction)
将实体对的嵌入拼接后输入分类器,预测关系类型。例如,输入“郭帆”和“《流浪地球》”的嵌入,输出“导演”关系。
3.2.3 实体对齐(Entity Alignment)
计算不同数据源中实体嵌入的余弦相似度,设定阈值(如>0.8)判断是否为同一实体。例如,对齐“流浪地球”(中文维基)与“The Wandering Earth”(英文维基)。
4. 数学模型和公式 & 详细讲解 & 举例说明
4.1 Word2Vec的数学基础
4.1.1 Skip-gram模型
Skip-gram的目标是用中心词预测上下文词。假设中心词为
w
t
w_t
wt,上下文词为
w
t
+
j
w_{t+j}
wt+j(
j
∈
[
−
m
,
m
]
,
j
≠
0
j \in [-m, m], j \neq 0
j∈[−m,m],j=0),则条件概率为:
P
(
w
t
+
j
∣
w
t
)
=
exp
(
u
w
t
+
j
T
v
w
t
)
∑
w
∈
V
exp
(
u
w
T
v
w
t
)
P(w_{t+j} | w_t) = \frac{\exp(u_{w_{t+j}}^T v_{w_t})}{\sum_{w \in V} \exp(u_w^T v_{w_t})}
P(wt+j∣wt)=∑w∈Vexp(uwTvwt)exp(uwt+jTvwt)
其中,
v
w
v_w
vw为中心词
w
w
w的输入嵌入,
u
w
u_w
uw为上下文词
w
w
w的输出嵌入,
V
V
V为词汇表。
举例:在句子“郭帆执导《流浪地球》”中,中心词为“执导”(窗口大小2),上下文词为“郭帆”“《流浪地球》”。模型需最大化 P ( 郭帆 ∣ 执导 ) P(郭帆|执导) P(郭帆∣执导)和 P ( 《流浪地球》 ∣ 执导 ) P(《流浪地球》|执导) P(《流浪地球》∣执导)的乘积。
4.2 BERT的自注意力机制
自注意力(Self-Attention)允许模型在编码每个词时关注输入中的其他词,计算公式为:
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
k
)
V
\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right) V
Attention(Q,K,V)=softmax(dkQKT)V
其中,
Q
Q
Q(查询)、
K
K
K(键)、
V
V
V(值)由输入嵌入通过线性变换得到,
d
k
d_k
dk为键向量维度(防止点积过大导致softmax梯度消失)。
举例:在句子“郭帆执导《流浪地球》”中,“执导”的注意力权重会偏向“郭帆”(施事者)和“《流浪地球》”(受事者),从而捕捉“郭帆-执导-《流浪地球》”的三元组关系。
4.3 实体对齐的相似度计算
实体对齐的核心是计算两个实体嵌入 e 1 e_1 e1和 e 2 e_2 e2的相似度。常用指标包括:
- 余弦相似度:
cos ( e 1 , e 2 ) = e 1 ⋅ e 2 ∥ e 1 ∥ ∥ e 2 ∥ \text{cos}(e_1, e_2) = \frac{e_1 \cdot e_2}{\|e_1\| \|e_2\|} cos(e1,e2)=∥e1∥∥e2∥e1⋅e2 - 欧氏距离:
euclid ( e 1 , e 2 ) = ∥ e 1 − e 2 ∥ \text{euclid}(e_1, e_2) = \|e_1 - e_2\| euclid(e1,e2)=∥e1−e2∥
举例:假设实体“苹果(公司)”的嵌入为 e 1 e_1 e1,“Apple Inc.”的嵌入为 e 2 e_2 e2,若 cos ( e 1 , e 2 ) = 0.92 \text{cos}(e_1, e_2)=0.92 cos(e1,e2)=0.92(阈值设为0.8),则判定为同一实体。
5. 项目实战:电影领域知识图谱构建
5.1 开发环境搭建
- 硬件:CPU(建议16核以上)或GPU(NVIDIA Tesla T4及以上)。
- 软件:Python 3.8+、PyTorch 1.9+、Hugging Face Transformers 4.20+、Neo4j 4.4+。
- 依赖安装:
pip install transformers sentence-transformers pandas neo4j
5.2 源代码详细实现和代码解读
5.2.1 数据收集与预处理
使用爬虫获取豆瓣电影的电影简介、演职人员信息(示例数据如下):
import pandas as pd
# 示例数据(电影.csv)
data = {
"text": [
"《流浪地球》是由郭帆执导,吴京、李光洁、吴孟达主演的科幻电影,2019年2月5日在中国内地上映。",
"《战狼2》是吴京执导并主演的动作电影,2017年7月27日上映,累计票房56.8亿。",
"郭帆,1980年12月15日出生于山东济宁,中国内地男导演、编剧。"
]
}
df = pd.DataFrame(data)
5.2.2 实体识别与关系抽取
使用BERT微调模型进行实体识别(标签:电影名、导演、演员、日期、票房)和关系抽取(标签:导演、主演、上映时间、累计票房)。
代码示例(实体识别):
from transformers import BertForTokenClassification, AdamW
import torch
# 定义实体标签
labels = ["O", "B-电影名", "I-电影名", "B-导演", "I-导演", "B-演员", "I-演员"]
label2id = {label: i for i, label in enumerate(labels)}
# 加载预训练模型(微调)
model = BertForTokenClassification.from_pretrained(
"bert-base-chinese",
num_labels=len(labels)
)
# 示例输入(分词后)
tokenized_input = tokenizer(
"《流浪地球》是由郭帆执导,吴京主演的科幻电影。",
return_tensors="pt",
padding=True,
truncation=True
)
# 预测实体标签
outputs = model(**tokenized_input)
predictions = torch.argmax(outputs.logits, dim=2)
# 解码标签
predicted_labels = [labels[i] for i in predictions[0].tolist()]
print("实体标签预测结果:", predicted_labels)
# 输出示例: ['B-电影名', 'I-电影名', 'O', 'O', 'B-导演', 'I-导演', ...]
5.2.3 实体对齐
使用Sentence-BERT计算实体指称的相似度,合并同一实体。
代码示例(实体对齐):
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
# 候选实体列表(来自不同文本)
entities = [
"郭帆",
"郭帆(导演)",
"吴京",
"吴京(演员)"
]
# 生成实体嵌入
embeddings = model.encode(entities)
# 构建相似度矩阵
similarity_matrix = util.cos_sim(embeddings, embeddings)
# 设定阈值(如0.9)合并实体
aligned_entities = []
for i in range(len(entities)):
if i not in [idx for group in aligned_entities for idx in group]:
group = [i]
for j in range(i+1, len(entities)):
if similarity_matrix[i][j] > 0.9:
group.append(j)
aligned_entities.append(group)
print("实体对齐结果:", [[entities[idx] for idx in group] for group in aligned_entities])
# 输出示例: [['郭帆', '郭帆(导演)'], ['吴京', '吴京(演员)']]
5.2.4 知识存储(Neo4j)
将抽取的三元组存储到图数据库,建立实体与关系的连接。
代码示例(Neo4j写入):
from neo4j import GraphDatabase
# 连接Neo4j(需替换为实际URI和认证信息)
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "password"))
def create_relation(tx, head, relation, tail):
tx.run(
"MERGE (h:Entity {name: $head}) "
"MERGE (t:Entity {name: $tail}) "
"MERGE (h)-[r:Relation {name: $relation}]->(t)",
head=head, relation=relation, tail=tail
)
# 示例三元组
triples = [
("郭帆", "导演", "《流浪地球》"),
("吴京", "主演", "《流浪地球》"),
("吴京", "主演", "《战狼2》")
]
# 写入Neo4j
with driver.session() as session:
for h, r, t in triples:
session.execute_write(create_relation, h, r, t)
driver.close()
5.3 代码解读与分析
- 实体识别:通过BERT的token分类任务,为每个词预测实体标签(如B-电影名表示电影名的起始词)。
- 实体对齐:利用Sentence-BERT的句子级嵌入,解决“郭帆”与“郭帆(导演)”的指称统一问题。
- 知识存储:使用Neo4j的MERGE操作避免重复实体,确保知识图谱的准确性。
6. 实际应用场景
6.1 金融领域:企业关系图谱构建
通过分析上市公司财报、新闻文本,抽取“实际控制人”“子公司”“关联交易”等关系,构建企业间的股权、业务关联图谱,用于风险预警(如识别关联担保链)。
案例:某金融科技公司使用BERT嵌入分析2000+家上市公司的公告,构建包含50万实体、200万关系的企业知识图谱,将风险识别效率提升40%。
6.2 医疗领域:疾病-药物知识图谱
从医学论文、电子病历中抽取“疾病-症状”“药物-适应症”“药物-副作用”等关系,辅助临床决策(如推荐药物组合)。
案例:梅奥诊所(Mayo Clinic)利用BioBERT(生物医学领域预训练模型)嵌入,构建包含10万+医学实体的知识图谱,将诊断准确率从82%提升至91%。
6.3 教育领域:学科知识图谱
通过教材、题库文本抽取“知识点-子知识点”“知识点-例题”关系,构建个性化学习路径(如根据学生薄弱点推荐相关知识点)。
案例:某在线教育平台使用TextCNN+Word2Vec嵌入,构建K12数学知识图谱,学生学习效率提升30%。
7. 工具和资源推荐
7.1 学习资源推荐
7.1.1 书籍推荐
- 《自然语言处理:基于预训练模型的方法》(车万翔等):系统讲解预训练模型与NLP任务的结合。
- 《知识图谱:方法、实践与应用》(王昊奋等):涵盖知识图谱构建的全流程技术。
- 《深度学习》(Goodfellow等):数学基础(如神经网络、损失函数)的经典教材。
7.1.2 在线课程
- Coursera《Natural Language Processing with Sequence Models》(深度学习专项课程):讲解RNN、Transformer等模型。
- 李宏毅《机器学习》(台湾大学):含BERT、知识图谱的通俗讲解。
- Hugging Face Course(https://huggingface.co/learn):实战导向的Transformers库教程。
7.1.3 技术博客和网站
- arXiv(https://arxiv.org/):获取NLP、知识图谱最新论文(如BERT、Sentence-BERT原论文)。
- 机器之心(https://www.jiqizhixin.com/):跟踪AIGC、知识图谱领域动态。
- 知乎“自然语言处理”专栏:技术问答与案例分享。
7.2 开发工具框架推荐
7.2.1 IDE和编辑器
- PyCharm(专业版):支持Python调试、代码重构,适合大型NLP项目。
- VS Code(推荐扩展:Python、Jupyter):轻量高效,适合快速实验。
7.2.2 调试和性能分析工具
- TensorBoard:可视化模型训练过程(如损失曲线、嵌入投影)。
- Py-Spy:分析Python程序的性能瓶颈(如嵌入生成的耗时)。
- NVIDIA Nsight:GPU加速任务的性能调优(如BERT推理加速)。
7.2.3 相关框架和库
- Transformers(Hugging Face):支持BERT、RoBERTa等预训练模型的加载与微调。
- SentenceTransformers:专注句子级嵌入的高效实现(支持多语言)。
- Neo4j Python Driver:图数据库的Python客户端,用于知识存储与查询。
7.3 相关论文著作推荐
7.3.1 经典论文
- 《Efficient Estimation of Word Representations in Vector Space》(Word2Vec原论文)。
- 《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》(BERT原论文)。
- 《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》(Sentence-BERT原论文)。
7.3.2 最新研究成果
- 《ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Understanding and Generation》(百度ERNIE模型,融合知识图谱与文本嵌入)。
- 《Graph-BERT: Only Attention is Needed for Graph Representation Learning》(图与文本嵌入的联合建模)。
7.3.3 应用案例分析
- 《Constructing a Medical Knowledge Graph for COVID-19 with Text Mining》(COVID-19医学知识图谱构建案例)。
- 《Financial Knowledge Graph Construction Based on News Text》(金融新闻文本的知识图谱构建)。
8. 总结:未来发展趋势与挑战
8.1 未来发展趋势
- 多模态嵌入:融合文本、图像、视频等多模态数据(如电影海报图像+简介文本),提升知识图谱的语义丰富度。
- 小样本学习:针对低资源领域(如方言、专业领域),通过少量标注数据微调嵌入模型,降低构建成本。
- 动态知识图谱:结合时序嵌入(如时间感知的Transformer),处理知识的动态变化(如“某演员新作品”的实时更新)。
8.2 关键挑战
- 隐私保护:医疗、金融等领域的文本包含敏感信息(如患者姓名、交易金额),需设计隐私保护的嵌入方法(如联邦学习、差分隐私)。
- 可解释性:嵌入向量的“黑箱”特性导致知识抽取结果难以追溯(如为何判定“苹果”指公司而非水果),需发展可解释的嵌入模型(如注意力可视化、规则融合)。
- 效率优化:大规模文本(如TB级语料)的嵌入生成与知识图谱存储需更高效的算法(如稀疏嵌入、图压缩技术)。
9. 附录:常见问题与解答
Q1:文本嵌入维度如何选择?
A:通常,小语料(如10万级词)选择100-300维(Word2Vec常用100-200维);大语料或预训练模型(如BERT)使用768-1024维。需根据任务调整:实体对齐建议高维度(保留更多语义细节),关系抽取可适当降低维度(减少计算量)。
Q2:如何处理不同领域的文本嵌入?
A:优先选择领域预训练模型(如生物医学领域的BioBERT、金融领域的FinBERT),若领域数据稀缺,可在通用模型基础上微调(使用领域语料继续预训练)。
Q3:实体对齐中嵌入相似度的阈值如何确定?
A:建议通过验证集调参:使用人工标注的实体对(正例、负例),绘制ROC曲线,选择F1分数最高的阈值(通常在0.7-0.9之间)。
Q4:知识图谱构建中,文本嵌入与传统特征(如TF-IDF)相比有何优势?
A:文本嵌入捕捉语义相似性(如“导演”与“执导”语义相近),而TF-IDF仅反映词频,无法处理同义、多义问题。实验表明,嵌入模型的实体识别准确率比TF-IDF高15%-20%。
10. 扩展阅读 & 参考资料
- 官方文档:
- Hugging Face Transformers(https://huggingface.co/docs/transformers)
- SentenceTransformers(https://www.sbert.net/)
- Neo4j Documentation(https://neo4j.com/docs/)
- 开源项目:
- Knowledge Graph Toolkit(https://github.com/awslabs/amazon-kendra-knowledge-graph)
- OpenKE(https://github.com/thunlp/OpenKE)(知识表示学习工具包)
- 经典论文:
- Mikolov T, et al. (2013). Efficient Estimation of Word Representations in Vector Space.
- Devlin J, et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
- Reimers N, et al. (2019). Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks.