Unifying Large Language Models and Knowledge Graphs: A Roadmap
基本信息
这是23年6月发表在arxiv上的一篇文章。文章综述了目前的大模型和知识图谱结合的研究现状,将二者结合的研究分为三大类,并进行了详细的总结和展望。
博客创建者
武松
作者
Shirui Pan, Senior Member, IEEE, Linhao Luo
Yufei Wang, Chen Chen, Jiapu Wang, Xindong Wu, Fellow, IEEE
标签
人工智能,深度学习,大语言模型,知识图谱
1. 摘要
大型语言模型(LLMss),如ChatGPT和GPT4,由于其涌现的能力和通用性,正在自然语言处理和人工智能领域掀起新的浪潮。然而,LLMs是黑盒模型,它们往往无法捕捉和获取事实知识。相比之下,知识图(KGs)、维基百科和华普等,都是明确存储丰富事实知识的结构化知识模型。KG可以通过提供外部知识来增强LLMss为了进行推理和可解释性。同时,KGs在本质上难以构建和进化,这对KGs中现有的产生新的事实和代表看不见的知识的方法提出了挑战。因此,将LLMs和KG统一在一起,同时利用它们的优势是互补的。本文提出了LLMs和KGs统一的前瞻性路线图。路线图由三个通用框架组成,即
1)KG-enhanced LLMs,在LLMs的预训练和推理阶段引入KG,或为了增强LLMs对学习的知识的理解;
2)LLM-augmented KGs,利用LLMs完成不同的KG任务,如嵌入、完成、构建、图到文本生成和问题回答;
3)Synergized LLMs + KGs(协同),其中LLMs和KGs扮演平等的角色,并以互利的方式增强LLMss和KGs在数据和知识驱动下的双向推理。
2. 概述和背景
2.1 概述
- KG-enhanced LLMs。对于知识图谱增强的LLM,又可以分为如下三种具体的类型。
- 包括在训练阶段应用KG和提高LLM知识表达的工作;
- 在LLM推理阶段利用kg的研究,使LLM无需再培训就能获取最新的知识;
- 使用KGs来理解LLM学习到的知识和解释LLM的推理过程的工作;
- LLM-augmented KGs。对于LLM增强知识图谱的工作,可以分为如下五种类型工作:
- LLM-augmented KG embedding:应用LLM通过编码实体和关系的文本描述来丰富KGs表示;
- LLM-augmented KG completion:利用LLM对文本进行编码或生成事实以获得更好的KGC性能;
- LLM-augmented KG construction:应用LLM来解决KG构建中的实体发现、共参考解析和关系提取任务;
- LLM-augmented KG-to-text Generation:利用LLM生成描述kg中事实的自然语言;
- LLM-augmented KG question answering:应用LLM来弥合自然语言问题之间的差距和从KG中检索答案;
- Synergized LLMs + KGs。将LLM和KG进行协同的融合,使用一个统一的框架结合两者的优势,主要分为两类工作:
- 知识表示
- 推理
3. KG-enhanced LLMs
LLM因缺乏实践知识和在推理过程中容易产生事实错误而受到批评。为了解决这个问题,研究人员提出了集成知识图(KGs)来增强LLM。
3.1 在预训练阶段通过KG增强LLM
在过去的工作中,将KGs集成到大型语言模型中的工作可以分为三个部分: 1)将KGs集成到目标函数中,2)将KGs集成到LLM输入中,3)将KGs集成到额外的融合模块中。
1)将KGs集成到目标函数中
对于第一类将KG直接作为LLM训练目标的方法,这类研究工作主要集中于设计新的knowledge-aware的训练目标。
一个直觉的想法是在预训练的目标中暴露更多的知识实体,这种方法通过掩码预训练的方法来实现。GLM利用知识图结构来分配一个掩蔽概率。具体来说,在一定数量的跳数内可以达到的实体被认为是学习的最重要的实体,并且在此期间它们被赋予了更高的掩蔽概率。
另一类工作明确地利用了与知识和输入文本的联系ERNIE提出了一种新的词-实体对齐训练目标作为预训练的目标。具体来说,ERNIE将文本中提到的句子和相应的实体都输入LLM,然后训练LLM预测知识图中文本标记和实体之间的对齐链接。
2)将KGs集成到LLM输入中
这类研究的重点是将相关的知识子图引入到LLM的输入中。ERNIE 3.0 将三元组直接作为一个序列与句子连接起来。这样是很直观的KGs集成到LLM输入中的方法,但由于三元组中的知识实体和句子中的实体进行了密集的交互,可能发生混淆和错乱,导致知识实体之间的链接出现混乱,从而导致句子偏离其正确含义。这个问题被称为Knowledge Noise问题。为解决这个问题,K-BERT第一步通过可见矩阵(visible matrix)将知识三元组注入到句子中,其中只有知识实体可以访问三元组内的信息,而句子中的词语只能在自注意力模块中看到彼此。为进一步解决该问题,另一项工作如下图所示。
该方法提出了一个统一的 word-knowledge图,其中输入句子中的词语形成了一个完全连接的单词图,其中与知识
实体对应的词语与相邻的实体相连。
3)将KGs集成到额外的融合模块中
通过在LLM中引入额外的融合模块,KG中的信息可以同时被单独处理并融合到LLM中。如下图所示,BERT-MK使用一种文本-知识对的双编码器架构,对于输入文本,首先检索返回相关的实体三元组,再在知识图谱上搜集其相邻的节点以构成子图。其中文本编码器T-encoder首先对输入的句子进行编码,然后知识编码器K-encoder处理知识子图,并将这些知识图与T编码器的文本表示融合。
还有的工作将融合模块放在LLM的中间层,如K-adapters通过适配器融合语言(linguistic)知识和事实(factual)知识,只在LLM中Transformer层的中间增加了可训练的MLP,而LLM的现有参数在知识训练前阶段保持冻结。
3.2 在推理阶段通过KG增强LLM
现实世界的知识可能会发生变化,在训练阶段融入知识图谱的方法无法在不重新训练模型的情况下更新知识。因此许多研究在模型输入阶段保持知识空间和文本空间分离,而致力于在推理阶段向模型输出中注入知识。这些方法主要集中在问题回答(QA)任务上,因为QA需要模型同时捕获文本语义和最新的现实世界知识。
1)基于检索的知识融合
不同于上述方法将所有知识存储在模型参数中,基于检索的知识融合的方法提出结合非参数模块和参数模块来处理外部知识。所谓非参数模块即知识检索模块,用于完成对输入文本的关键词提取和知识图谱检索。给定输入文本,RAG首先通过MIPS搜索方式在非参数模块中搜索相关的KG,以获得多个文档。然后,RAG将这些文档视为隐层变量z,并将它们作为附加的上下文信息输入LLM。
另外有一些研究致力于提高知识检索模块的效率,比如EMAT提高检索速度,以及REALM研究在大规模语料库中检索文档。
2)动态知识融合
一个简单的方法是利用一个双塔架构,其中,一个单独的模块处理文本输入,另一个模块处理相关的知识图输入。然而,这种方法缺乏文本和知识之间的交互。因此KagNet提出首先对输入的KG进行编码,然后增加输入的文本表示。相比之下,MHGRN使用输入文本的最终LLM的输出来指导推理过程。然而,这两种方法都只设计了文本和KG之间的单方向交互。如下图所示,JointLK采用LM-to-KG和KG-to-LM双向注意力机制,提出了一个能使得文本输入中的所以标记与所以KG实体之间都进行细粒度交互的框架。
在交互模块中,JointLK在所有文本标记和KG实体上计算点积和双向注意力。此外,在每个JointLK层,KG也根据注意力分数对网络进行动态修剪,以便以后的层关注更重要的子图结构。
3.3 通过KG增强LLM的可解释性
虽然LLM在许多NLP任务中取得了显著的成功,但它们仍然缺乏可解释性。大型语言模型(LLM)的可解释性是指对大型语言模型的内部工作和决策过程的理解和解释。知识图谱(KGs)表示的知识具有很好的结构性,可以为推理结果提供良好的可解释性。因此,研究者试图利用KGs来提高LLM的可解释性,大致可以分为两类: 1) KGs用于语言模型探测,2) KGs用于语言模型分析。
1)用于语言模型探测( LLM Probing)
LLM Probing的目的是理解存储在LLM中的知识,LLM以一种隐式的参数方式存储知识,这使得很难理解其中所存储的知识。又由于大模型受到幻觉问题的影响,其可靠性受到挑战,大模型作出决策的过程成了必要的研究。因此,有必要对LLM中存储的知识进行探测和验证。LAMA是第一个利用KGs来探索LLM中的知识的工作,如下图所示。
可以看出LLM探测本质上是一个构造prompt的过程,通过构造完形填空形式的prompt来考察大模型是否具备某个特定的知识。另外还有的工作研究自动化地构造用于探测的prompt。
2)用于语言模型分析(KGs for LLM Analysis)
LLM Analysis的研究旨在解释LLM生成答案的过程,包括以下问题,如“LLMs如何生成结果?”,以及“该功能和结构是如何在LLM中工作的?”。有代表性的工作是KagNet和 QA-GNN,研究目的是为了分析llm的推理过程。这类工作LLM通过知识图谱来定位LLM在每个推理步骤中产生的中间结果。这样,就可以通过从kg中提取图结构来解释llm的推理过程。该过程如下图所示:
另外,为了解释LLM的训练,Swamy et al.在预训练过程中生成知识图。这样,LLM在训练过程中获得的知识可以通过KG中的知识表示来明确地解释。
为了探究隐式知识是如何存储在LLM的参数中的,Dai et al.提出了知识神经元(knowledge neurons)的概念。具体来说,知识神经元的激活与知识表达高度相关。因此,他们通过抑制和放大知识神经元来探索每个神经元所代表的知识和事实。
4. LLM-augmented KGs
知识图以结构性的方式表示知识而闻名。它们被应用于许多下游任务中,如问题回答、推荐和网络搜索。然而,传统的kg往往是不完整的,现有的方法往往缺乏对文本信息的考虑。为了解决这些问题,最近的研究探索了集成LLM来增强kg,以考虑文本信息并提高下游任务的性能。根据知识图谱所执行的任务分类,将这些研究分类为如下几种:
1)通过LLM增强知识图谱嵌入任务
2)通过LLM增强知识图谱补全任务(KG completion,KGC)
3)通过LLM增强知识图谱构建任务
4)通过LLM增强知识图谱转文本生成任务
5)通过LLM增强知识图谱问答任务
4.1 通过LLM增强知识图谱嵌入任务
知识图嵌入(Knowledge graph embedding,KGE)的目标是将每个实体和关系映射到一个低维向量(嵌入)空间,使得这些向量具有实体和关系的语义信息和结构信息。传统的知识图谱嵌入方法通常只考虑知识图的结构信息。近年来的深度学习方法,使用更深层的神经网络处理实体和关系嵌入进一步考虑结构信息。但这些方法难以解决处理未见实体(unseen entities)和长尾关系(long-tailed relations)的问题。前者指的是模型对于未见过的实体如何泛化和迁移,后者指的是KG中出现频率较低的关系在训练过程中容易被忽略,但这类关系可能也是重要的关系。为了解决这个问题,最近的研究引入LLM考虑节点的文本信息。主要通过编码实体和关系的描述文本来丰富KG的表示。
1)LLMs as Text Encoders
根据LLM在KGE任务中所起的作用来分,其中一种方式是将LLM仅作为KGE任务中的编码器。这种方式利用LLM对实体和关系的初始输入进行初始编码,然后再使用专用的KGE模型输入这个初始编码,并学习结构信息,从而得到最终的嵌入表示。这样,KGE模型就可以学习到足够的结构信息,同时能学习到LLM中隐含的更多事实知识,从而可以更好地嵌入知识图谱。
一个有代表性的工作是Pretrain-KGE。如上图所示,该方法使用的LLM是Bert。对于每个实体节点,不局限于实体本身,而是将对于该实体的描述信息也进行了嵌入。这样做的好处是可以扩展实体的更多语义信息,使得KGE模型更好地编码两个实体的关系。还有其他在实体关系编码阶段使用LLM获取更好的初始嵌入的方法,如Huang等人将LLM与视觉和图编码器结合起来,学习多模态知识图嵌入,从而提高下游任务的性能。
2)LLMs for Joint Text and KG Embedding
另一种方式直接使用LLM同时将图结构和文本信息合并到嵌入空间中,而不使用专门的KGE模型考虑图结构信息。如下图所示,kNN-KGE 仅使用LLM来同时考虑图结构和节点文本信息。
该方法将实体和实体描述文本,以及关系同时作为token组成一个句子输入LLM。采用将尾实体遮盖并预测的方法来微调模型,训练的目标是最大化对正确实体的预测。经过训练后的LLM中相应的标记表示被用作相应实体和关系的嵌入。在此基础上,LMKE将对比学习应用于训练过程中,提高了嵌入表示性能;LambdaKG进一步采样了实体节点在知识图中的1-hop邻居节点与原来的三元组组成句子,并送入LLM。
4.2 通过LLM增强知识图谱补全任务(KG completion,KGC)
知识图补全(KGC)是指在给定的知识图中推断缺失的事实的任务。与KGE类似,传统的KGC方法主要关注KG的结构,而没有考虑广泛的文本信息。最近的研究引入了LLM,使KGC方法能够编码文本或生成事实,以获得更好的KGC性能。这些方法可分为两个不同的类别:1) LLM作为编码器(PaE),2) LLM作为生成器(PaG)。
1)LLM as Encoders (PaE)
LLM作为编码器增强KGC任务的方法也有几种类型,所使用的LLM均为Encoder-only的模型,如Bert。
第一类方法被文章称作联合编码(Joint Encoding),有代表性的工作如KG-BERT。如下图的(a)所示,KG-BERT将三元组的实体和关系的文本直接组成句子输入LLM用以编码,然后得到的嵌入输入一个简单的多层网络,通过sigmoid函数进行二值分类判断该三元组是否存在。训练后的[CLS]标签的嵌入即作为该三元组的嵌入。另外的工作在此基础上进行效果提升,如MTL-KGC引入多任务学习方法,LASS进一步考虑三元组的语义信息以及图结构信息。还有工作如PKGC用直观的方式,应用LLM本身的能力判断事实正确性。将三元组通过一定模版转换成一个句子,然后交由LLM来判断该句子是否符合事实,从而判断三元组关系是否存在。
第二种方法如图中(b)所示,通过掩码语言模型(MLM)的训练范式编码三元组,而不是如第一种方法那样直接将三元组组成句子。代表性的工作是MEM-KGC,其对于三元组组成句子的方式与联合编码类似,但所进行的任务不同。另外一种是分开编码,如图中(c)所示。该类方法将头实体和关系的文本组合为一个句子,将尾实体单独组成一个句子,用两个LLM分别编码。[CLS]处标记的嵌入表示作为两个句子的嵌入表示,最后一起送入一个得分函数来预测该三元组存在的可能性。相关公式如下图所示:
2)LLM as Generators (PaG)
最近的工作在KGC中使用LLM作为Sequence2Sequence的生成器,所使用的LLM包括Encoder-Decoder或仅使用Eecoder-only的LLM。LLM接收一个文本序列形式的查询三元组
(
h
,
r
,
?
)
(h, r, ?)
(h,r,?) ,并直接生成尾部实体
t
t
t的文本。
如上图所示,分别表示Encoder-Decoder和Eecoder-only的LLM输入的查询三元组生成对应答案的过程。代表性的工作如GenKGC和KGT5,均使用了Encoder-Decoder架构的BART作为主干模型。对于闭源的LLM(如ChatGPT和GPT-4),AutoKG采用prompt设计提示让LLM预测对应的尾实体。如下图所示,这些提示包含任务描述、Few-shot示例和测试输入,这些提示指示LLM预测KG补全任务的尾实体。
4.3 通过LLM增强知识图谱构建(KG Construction,KGC)
知识图的构造涉及到在特定领域内创建知识的结构化表示。这包括识别实体及其彼此之间的关系。知识图的构建过程通常涉及多个阶段,包括:1)实体发现;2)共引用解析;3)关系提取。下图给出了在KG构建中的每个阶段。最近的方法使用LLM来提高KGC任务的效率,主要包含两个方向的探索:1)端到端知识图的构建;2)从LLM中提取知识图。下面主要介绍这两个应用LLM的方向。
1)端到端的知识图谱构建(End-to-End KG Construction)
其中有代表性的一项工作是Kumar et al.,提出了一种从原始文本构建KG的统一方法,其中包含两个LLM驱动的组件。他们首先在命名实体识别任务上微调一个LLM,使其能够识别原始文本中的实体。然后,他们提出了另一个“2-model BERT”来解决关系提取任务,该任务包含两个基于BERT的分类器。第一个分类器学习关系类别,而第二个二元分类器学习两个实体之间的关系的方向。然后利用预测的三元组和关系来构造KG。
2)从LLM蒸馏知识图谱(Distilling Knowledge Graphs from LLMs)
LLM从大规模预料预训练而成,内部隐式地编码了大量的知识。一些研究旨在直接使用LLM中的知识来构建KG。如下图所示,一般的步骤即使用一些封闭问题来提示大模型,让其输出答案(一般是尾实体),由此蒸馏出LLM内部的知识并构成三元组,进而构成知识图谱。代表性的研究如COMET。COMET提出一个常识转换模型,通过使用现有的三元组作为知识种子集(即训练集)微调LLM。微调后的LLM能迁移这种三元组表示形式,并生成有效的三元组。
4.4 通过LLM增强KG2text的生成
知识图到文本(KG2text)生成的目标是生成高质量的文本,以准确、一致地描述输入的知识图信息。KG2text生成连接了知识图和文本,显著提高了KG在更现实的NLG场景中的适用性。然而,收集大量的图-文本对齐数据具有挑战性和较高的成本,导致该应用下的模型训练不足和生成质量差。因此许多研究开始使用LLM来提高该任务的性能。最直接的做法就是通过微调LLM来适应这项任务,Ribeiro et al. and Kale and Rastogi。这两种工作都简单地将输入的KG表示为一个线性遍历的结果,如下图所示的Graph Linearization阶段。研究发现这种简单的方法成功地优于许多现有的最先进的KG2text生成系统。
在此基础上,另外一些工作从表示学习的角度进行改进,如JointGT考虑进实体和关系的语义信息和结构信息,JointGT将实体、关系以及描述文本拼接成句子输入LLM,使用自注意力机制和池化层学习具有上下文语义的表示。最后各个实体节点的表示又会在后面的结构感知的自注意力层中得到聚合和更新,从而考虑到知识图的结构信息上在Graph Linearization进行改进。 Li et al.考虑Graph Linearization过程中将图序列化的方式,换用了BFS的遍历方式,获得了性能的提升。
4.5 LLM增强的KG问题回答
知识图问答(KGQA)的目的是基于存储在知识图中的结构化事实来寻找自然语言问题的答案。KGQA中不可避免的挑战是检索相关事实,并将KG的推理优势扩展到QA中。因此,最近的研究采用LLM来弥补自然语言问题和结构化知识图之间的在结构上的差别。LLM增强的KG问题回答的一般框架如下图所示。根据LLM在QA过程中起作用的角色来分,可分为:1)实体/关系提取器,2)答案推理器。
实体/关系提取器被设计用于识别自然语言问题中提到的实体和关系,并检索kg中的相关事实。鉴于语言理解的能力,LLM可以有效地用于这一目的。Nan et al.介绍了两个基于llm的KGQA框架,它们采用llm来检测上述实体和关系。然后,他们使用提取的实体-关系对在KGs中查询答案。答案推理器则被设计用来对检索到的事实进行推理并生成答案,而借助LLM的语言理解和生成能力可以直接生成答案。
5. SYNERGIZED LLMS + KGS
近年来,LLM和kg的协同作用受到了越来越多的关注,它结合了LLM和kg的优点,共同提高了各种下游应用程序的性能。例如,LLM可以用来理解自然语言,而kg则被视为一个提供事实知识的知识库。LLM和kg的统一可以产生一个强大的知识表示和推理模型。在本节中,我们将从两个角度讨论协同LLM+kgs:1)知识表示和;2)推理。
5.1 知识表示
文本语料库和知识图都包含了大量的知识。然而,文本语料库中的知识通常是隐式的和非结构化的,而KGs中的知识则是显式的和结构化的。因此,有必要将文本语料库中的知识与KGs对齐,以统一的方式表示它们。一般的将LLM和KG进行统一的知识表示框架如下图所示:
其中的代表工作是KEPLER,其中提出了一个统一的知识嵌入和预训练语言表示的统一模型。在KEPLER中,用LLM作为嵌入方式,对文本实体描述进行编码,然后共同优化知识嵌入和语言建模目标。
5.2 推理
为了同时利用LLM和KGs,研究人员协同LLM和KGs来对各种应用程序进行推理。在问答任务中,QA-GNN [118]首先利用LLM来处理文本问题,并指导kg上的推理。这样,它就可以弥合文本和结构信息之间的桥梁,为推理过程提供了可解释性。
6. 未来方向
6.1 幻觉检测
LLMs中的幻觉问题指的是产生了事实上不正确的内容,严重阻碍了LLM的可靠性。如第4节所述,现有的研究试图利用KGs通过预训练或kg增强推理获得更可靠的LLM。尽管做出了这些努力,但在可预见的未来,幻觉的问题可能会在LLM领域继续存在。因此,为了获得公众的信任和边界应用,必须检测和评估LLM和其他形式的人工智能生成内容(AIGC)中的幻觉实例。现有的方法通过在一组小的文档上训练一个神经分类器来检测幻觉,这些文档对于处理不断增长的LLM既不健壮也不强大。在近期的研究中,研究人员试图使用KGs作为外部来源来验证LLM。进一步的研究结合LLM和KGs,实现了一个广义的事实检验模型,可以检测跨域的幻觉。因此,它为利用KGs进行幻觉检测打开了一扇新的大门。
6.2 通过KG进行大模型知识编辑
尽管LLM能够存储大量的真实世界知识,但它们不能随着现实世界情况的变化而快速更新其更新的内部知识。近期的研究提出对LLM进行知识编辑的工作,即不需要对整个LLMs进行重新训练即可更新模型内部知识。然而,这样的解决方案仍然存在性能或计算开销。现有的研究 [252], [253]也提出了在LLM中编辑知识的解决方案,但只限制在处理kg中简单的基于元组的知识。此外,还存在灾难性遗忘和错误的知识编辑[254]等挑战,为进一步的研究留下了很大的空间。
6.3 黑盒模型知识注入
虽然预训练和知识编辑可以更新LLM以跟上最新的知识,但它们仍然需要访问LLM的内部结构和参数。然而,许多最先进的大型LLM(例如,ChatGPT)只为用户和开发人员提供可访问的api,对公众而言只是一个黑盒子模型。因此,传统的KG注入方法对这些黑盒模型无效,无法通过添加额外的知识融合模块来改变LLM结构。将各种类型的知识转换为不同的文本提示似乎是一个可行的解决方案。然而,目前还不清楚这些提示是否能很好地推广到新的LLM中。此外,基于提示的方法仅限于LLM的输入令牌的长度。因此,如何对黑盒LLM进行有效的知识注入仍然是我们需要探索的一个开放性问题。
6.4 大模型理解知识图谱结构
在纯文本数据上训练的传统LLM并不是用来理解像知识图这样的结构化数据的。因此,LLM可能不能完全掌握或理解KG结构所传递的信息。一种简单的方法是将结构化数据序列化为LLM能够接受的输入,但这种方法受限于KGs的规模,如果KG本身规模过于庞大则无法进行。此外,线性化过程可能会丢失KGs中的一些潜在信息。因此,有必要研究出一种能够直接理解KG结构和并进行推理的方法。
7. 总结
统一大型语言模型(LLM)和知识图(KGs)是一个积极的研究方向,已经引起了学术界和工业界越来越多的关注。文章对这一领域的近期研究进行了全面的概述。首先介绍了集成kg来增强LLM的不同方式,然后介绍了现有的将LLM应用于KG的方法,并建立了基于KG任务的分类。最后,讨论了该领域所面临的挑战和未来的发展方向。
7.1 启发
- 大模型结合知识图谱的方法有了更全面的了解
7.2 不足
- 所介绍的很多方法中,所使用的大模型还属于较传统的编码器模型,如Bert,还算不上最新意义上的大模型;
- 文中有多处细节的文字错误。
8. 相关知识链接
- 论文链接
- BibTex
@article{pan2023unifying,
title={Unifying Large Language Models and Knowledge Graphs: A Roadmap},
author={Pan, Shirui and Luo, Linhao and Wang, Yufei and Chen, Chen and Wang, Jiapu and Wu, Xindong},
journal={arXiv preprint arXiv:2306.08302},
year={2023}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!