分享

对话刘铭教授:多模态知识图谱构建初探

 邸彦强 2024-06-23 发布于河北

导读 条件知识图谱是一种强调知识的时效性和情境依赖的图谱,适用于动态变化的环境。多模态知识图谱是一种融合文本、图像等多源数据的图谱,用于丰富信息表达和知识挖掘。这些图谱在智能问答、推荐系统、智能助理等场景中具有重要应用。本文将分享哈工大社会计算与信息检索研究中心在条件知识图谱的抽取构建、数据集扩充、应用和多模态命名实体识别、关系抽取、视频场景图等方面的创新和探索。

文章将围绕下面 5 点展开:

1. 知识图谱背景介绍

2. 条件知识图谱的构建

3. 多模态知识图谱的构建

4. 知识图谱和大模型的融合

5. 问答环节

分享嘉宾|刘铭 哈尔滨工业大学 教授/博士生导师

编辑整理|张阳

内容校对|李瑶

出品社区|DataFun


01

知识图谱背景介绍

1. 知识的分类

对话刘铭教授:多模态知识图谱构建初探

无论人类还是机器都会接触到各种数据来源。从模态的角度来看,正逐渐从单模态数据向多模态数据转变,特别是随着机器传感器性能的提升,在许多场景中都需要处理多模态的数据。从结构角度来看,数据又可以分为非结构化数据和结构化数据。非结构化数据通常是指未经处理的文本、图像等数据。而结构化数据中,最常见、最通用的形式是知识图谱。除了知识图谱外,像数据库、数据表和半结构化文档也属于结构化数据的范畴。一般认为,经过结构化处理和标注的数据可以被称为知识,机器能够理解的数据也是结构化数据。本次分享就将围绕结构化数据中的一种形式——知识图谱来展开讨论。

2. 单模态知识图谱到多模态知识图谱

对话刘铭教授:多模态知识图谱构建初探

无论是单模态知识图谱还是多模态知识图谱,其本质都是一系列的三元组,即由头实体、关系和尾实体组成的三元组。知识图谱本质上就是将这些三元组连接起来,形成一个网络结构。在更高层次上,我们会为其添加一些概念,构建起一种本体架构。最终形成一种网络结构,就是知识图谱。

3. 封闭域信息抽取 VS 开放域信息抽取

对话刘铭教授:多模态知识图谱构建初探

知识图谱的构建主要依赖于三元组,即实体与实体之间的关系。在构建知识图谱时,我们需要从大量的数据中提取这些三元组。为了获取三元组,可以采用封闭式信息抽取和开放式信息抽取两种路径。封闭式信息抽取需要预先定义实体类别和关系类型,然后从文本中抽取相应信息。举例来说,如果我们要从文本中抽取人物和机构之间的关系,首先要提取实体,然后根据实体类型确定可能存在的关系,最终得到三元组。而开放式信息抽取则是以所见即所得的方式,直接从文本中提取主语、谓语、宾语等关系,无需事先设定实体类别和关系类型。目前构建知识图谱的抽取方案主要倾向于开放域信息抽取,因为知识图谱涵盖的信息非常丰富,需要以更灵活的方式去提取信息。

02

条件性知识图谱的构建

1. 知识图谱中容纳的事实知识

对话刘铭教授:多模态知识图谱构建初探

目前信息抽取方法多样,包括与大模型结合和传统方法。本次分享重点讨论两方面:第一个是跨模态数据中提取知识形成知识图谱的方法;第二个问题是,传统知识图谱主要包含大量事实知识,如苹果公司和英特尔公司之间的产品关联,知识图谱主要用于展示事实知识,但仅关注事实知识抽取会导致知识图谱建立时的知识涵盖不足或存在矛盾。

2. 知识图谱中容纳的矛盾事实

对话刘铭教授:多模态知识图谱构建初探

比如上图中就是一个简单的例子:给出两个文本,需要从中抽取相应的三元组形成知识。我们从第一个文本中提取到了一个关于 ARM 处理器性能的三元组,指出其强于 INTEL 处理器。而从第二个文本中提取的三元组表明 ARM 处理器的性能无法和 INTEL 处理器相比。这种看似矛盾的结果引发了我们对文本本身可能存在问题的疑问,是否由于文本的描述不准确导致我们抽取到的三元组出现了矛盾。然而,经过分析发现这两个文本的描述并没有问题。出现矛盾的根本原因在于,传统知识图谱的构建主要关注对事实知识的提取,而忽略了其他条件下的知识。在现实应用中,许多知识是受到特定条件限制的。

对话刘铭教授:多模态知识图谱构建初探

第一个例子中给出 ARM 处理器相对于 INTEL 处理器更强大,但这并非普适真理,而是有特定条件限定的。类似地,处理结果也是有条件限定的才能变得更加完整和可验证。在知识图谱中,除了包含事实外,还应该包含对事实进行条件限定的知识。在诸如科学、生物和医药领域,这种条件限定的事实非常常见,只有这样,事实才能是完整的、可验证的和完备的。因此,接下来我们就要探讨如何从文本中提取事实及其相关条件,并将其最终整合成类似图状的知识图谱结构。

3. 条件性知识图谱

对话刘铭教授:多模态知识图谱构建初探

目前正在构建的是条件性的知识图谱,与传统知识图谱在结构上基本类似,都是网状结构。不同之处在于条件性知识图谱的层次更深。举例来说,给定一个文本,可以从中抽取一系列类似元组结构的内容,形成条件性知识图谱。

简单来说,这种图谱可以分为四层:第一层是传统的实体层,这是必不可少的一层;第二层是关系层,对传统知识图谱做了一些改变,传统知识图谱中用来描述关系的是边,而这里为了更清楚地描述实体间的关系,将边转变成了节点;第三层是条件层,由一系列元组组成,用来描述事实元组和对应条件性元组之间的关系,图中使用蓝色虚线表示事实关系,黄色虚线表示条件关系,一个条件对应一个具体的节点就是知识节点,每个知识节点由一系列三元组相连,其中有些是条件三元组,有些是事实三元组,最终形成一个受条件限制的事实;最上层是次序层,单独描述时间顺序,考虑到许多任务都与时间相关,条件性知识图谱中的知识结点根据时间先后次序排列。

通过这种结构构建,希望将事实和受条件限定的事实纳入同一图谱中。

4. 开放域事实和条件联合抽取数据集构建

对话刘铭教授:多模态知识图谱构建初探

构建知识图谱,核心在于抽取事实三元组和条件三元组的关系。现实中缺乏这种数据,因此第一步是构建支撑,从文本中提取对应数据集。标注的数据集已公开,可从网上下载使用,并随时沟通交流。该数据集将文本转化为元组,构建最小的知识单元——三元组,甚至扩展到五元组结构以增加描述信息。事实和条件知识最终表达为元组序列,包含事实元组和条件元组,用颜色区分。条件元组在特定场景中解释补充其他事实,两者之间存在对应关系。通过人工构建的数据集训练模型,从文本中提取事实和条件元组,并确定它们之间的对应关系。相对于自动构建的数据集,该数据集数量较大,并清晰标示事实、条件及二者之间的对应关系。

5. 分阶段事实和条件知识抽取

对话刘铭教授:多模态知识图谱构建初探

有了数据集之后,我们可以从文本中抽取事实条件以及它们之间的对应关系。在这个过程中,我们提供了两种非常基础和典型的方案。第一种方案是最基础的,通常在信息抽取时被使用。它采用分阶段的方式,首先抽取元组,然后确定元组中的关系,一个元组包含实体和关系,关系被认为是最重要的信息。因此,设计了一个模块用于抽取关系。接着,另一个模块用于补全元组,根据已提取的关系模块从文本中识别实体和属性来完成关系。第三个模块用于确定元组之间的关系,检查它们是否具有事实和条件之间的对应关系。这种方法是一种直观的抽取方法。

6. 多输入和多输出的事实和条件知识联合抽取

对话刘铭教授:多模态知识图谱构建初探

当涉及到抽取方法时,会遇到一个问题,即无法解决元组同线的问题。元组同线是指在抽取中发现许多元组存在重叠的情况,这可能是事实元组或条件元组之间出现重复实体的情况。为了解决这个重叠问题,提出了第二个方案,即多输入多输出方案。这种方法类似于分阶段输出,但在处理过程中进行了特殊调整。该方案通过将多种外部工具的输出结合在一起,例如语言模型、词性标注、关键短语的输出结果,形成对输入文本的综合表示。这样做主要是因为训练数据量有限,为了弥补这一短板,采用了多输入的方式,以获得对输入文本的全面表示,降低对训练数据量的要求。输出模块分为两层。第一层主要用于确定元组中的关系,以区分事实和条件。针对所抽取的关系位置,确定元组是事实还是条件。在输出层中,采用了两个颜色模块来区分抽取的事实值和条件值,以关系为依据进行分离。最后,根据这些关系语境,补充缺失的实体和属性,这种方法有效地解决了元组重叠问题,并在准确率方面有所提升。

7. 半监督方案的引入

对话刘铭教授:多模态知识图谱构建初探

对于训练数据量不足的问题,我们提出了一种半监督的方案。这种方案主要是为了应对训练数据量不足的情况。我们采用的是传统的半监督流程,即 bootstrap 流程:首先使用人工标注的数据训练一个模型,由于数据量较小,用该模型标注数据会产生错误。针对这些错误数据,我们采用人工或规则方法进行纠正,然后将纠正后的数据加入人工标准数据中逐渐丰富训练数据量。这一方法同样应用于前面使用的模型和标注数据来完成半监督方案。具体做法是按照前述流程:首先用人工标注的数据训练多输入多输出模型,然后基于该模型对未标注数据进行标注,但输出结果会存在错误。因此我们设计了多个启发式规则对数据进行纠正。举例来说,通常我们使用BIO 标签对数据进行标注,其中 I 标签中间不应该有 O 标签。如果出现了类似图中展示的错误,即 I 标签中间存在 O 标签,我们不会简单丢弃该样例,而是纠正 O 标签为 I 标签。这样的纠错方法能够修正一些错误例子,丰富训练数据量。通过这种方法,即使在训练数据量较少的情况下,例如生物场景或医疗场景,也能够获得良好的抽取结果。

8. 将条件知识注入到模型中

对话刘铭教授:多模态知识图谱构建初探

为了更好地利用条件型知识图谱,可以通过两个主要渠道来应用。首先,可以直接利用知识图谱进行辅助问答工作,这与传统问答方式类似。其次,可以将条件型知识图谱注入到预训练模型中,以提升其性能。具体做法是将知识图谱注入到预训练模型中的三个阶段。首先是采用传统方式,例如像 K-Bert,通过知识图谱扩充预训练模型的输入文本。这种扩充主要基于知识图谱中的事实知识,用于对输入文本中的实体进行扩充,形成分支结构。在训练过程中,通过可见矩阵控制输入文本的主干分支和扩充分支之间的关系,实现将知识迁入预训练模型。第二阶段是设计一个表示学习模型,用于约束预训练模型的输出,该模型的训练基于条件知识图谱。这一阶段之后,通过第三个阶段的互蒸馏方式,让嵌入了事实知识和条件知识的两个模型相互学习,最终将条件知识和事实知识同时嵌入到预训练模型中。通过这种方法,我们可以在任务中取得一定提升,尤其是在推理任务方面。

03

多模态知识图谱的构建

1. 多模态结构化信息抽取

接下来介绍如何从跨模态数据中抽取实体和关系,并将其与图片进行对齐的工作。

对话刘铭教授:多模态知识图谱构建初探

首先介绍一个跨模态领域常见的任务——场景图生成。其核心是从给定的图片中提取一系列实体和关系,形成一个小规模的知识图谱,代表着图片中目标和目标之间的关系。如果将这个任务扩展到视频,就是视频场景图提取。与图像不同,视频场景图提取需要考虑视频帧之间的时序关系,以更好地理解物体和物体之间的关系。当我们考虑视频帧之间的关系时,可以更准确地描述一个场景,例如一个人拿着杯子,如果考虑前后帧,就可以理解这个人想要喝水。

2. 多模态知识图谱构建

对话刘铭教授:多模态知识图谱构建初探

多模态知识图谱的构建旨在从跨模态数据中抽取实体和实体之间的关系,形成图谱。图谱不仅包含文本性知识,还能整合图片相关的知识和属性,生成一个更加丰富的图谱结构。多模态知识图谱整体结构与传统知识图谱相似,但每个节点都包含图片信息和文本来源等内容,使多模态知识图谱所代表的知识比传统知识图谱更加丰富。

下面将介绍如何从跨模态的数据中抽取事件的关系,并实现实体和图片之间的对齐。

3. 模态的概念

对话刘铭教授:多模态知识图谱构建初探

首先来解释一下模态的概念。对模态的理解可以从广义和窄义两个角度入手。传统上对模态的理解为,不同来源的分布不一致的数据就代表着不同模态的数据。在人工智能和深度学习的发展下,模态的概念已扩展到不同的声图文数据。因此,多模态理解转变为处理声图文数据,关键在于模态表示的学习,模态表示分为单模态表示和多模态表示。对于单模态表示,如声音、图像、文本和视频,每种模态有各自的表示方案。而对于多模态表示,则需要分别表示多个模态数据,并关注如何融合这些不同模态数据。

4. 多模态联合表示

对话刘铭教授:多模态知识图谱构建初探

进行多模态数据融合时,通常有两种融合方案,分别是模态共作用语义表示和模态约束语义表示。模态共作用语义表示是将不同模态的信息映射到高维空间下,以实现多模态融合表示,认为不同模态的重要性相同。模态约束语义表示通常包括主模态和辅模态,在很多任务中,主模态被认为是比较重要的,其他模态会映射到主模态空间下以获得多模态表示。在一些任务中,如多模态命名实体识别,常采用模态约束的语义表示方法来处理,这种方法在多模态数据融合中被广泛运用。

5. 多模态命名实体识别

对话刘铭教授:多模态知识图谱构建初探

多模态命名实体识别是指在多模态数据中提取实体和实体类型。知识图谱的核心是实体关系,因此多模态任务面临的第一个挑战是如何在跨模态或多模态数据中高效抽取实体。多模态命名实体识别与传统命名实体识别的区别在于模型的输入是多模态数据。比如只输入文本,模型可能会识别出'Rocky'是一个实体,但无法确定其类型。通过结合文本和图片输入,可以更准确地确定实体类型,确定'Rocky'是一只狗。在多模态命名实体识别任务中,文本通常被视为主模态,而其他模态(如图片)则用于辅助判断实体类型,这就是多模态命名实体识别的基本原理。

6. 多模态实体关系抽取

对话刘铭教授:多模态知识图谱构建初探

除了实体之外,三元组还包括实体之间的关系。在构建跨模态知识图谱时,另一个重要任务是如何从多模态数据中识别实体之间的关系。对于多模态实体关系抽取,和多模态命名实体识别类似,需要联合文本和图像确定实体间的关系类型。多模态实体关系抽取更注重给定实体对相关的特征,以帮助识别实体之间的关系。在这个过程中,图像也会被用来确定实体之间的关系类型,尤其关注围绕实体的细粒度图片特征。如上图示例中,通过人物标签或者围绕这个人物的细粒度特征,可以判断这个人物的类型,通过人物之间的位置信息也能帮助确定人物之间的关系。

7. 多模态实体抽取

对话刘铭教授:多模态知识图谱构建初探

在探索多模态命名实体识别任务的过程中,我们提出了一系列方法。第一个要分享的方法是多模态命名实体识别中的多任务融合方法。这里增加了两个任务。首先是引入图文相关任务,即对文本进行多模态表示并与整体模型的表示进行判断,从而判断图文之间的相关性。其次是图文之间的系列相关任务,这也是多模态任务中常见的做法。通过外部工具获取文本与图像之间的对齐结果,再通过多模态交互层的输出和视觉对齐工具的输出来判断图文之间的细粒度对齐结果,以获得更好的效果。结合这两个子任务与图文识别主任务,我们提出了一种综合的多任务融合的多模态命名实体识别方法。通过这种方法,获得了多模态命名实体识别效果的提升。

8. 多模态实体抽取-grounding

对话刘铭教授:多模态知识图谱构建初探

在多模态命名实体识别任务中,除了关注文本中的实体外,我们还希望了解识别出的实体与图片中的特定区域之间的对应关系。为此,我们引入了 grounding 方法,扩展了传统的多模态命名实体识别工作。通过在模型中增加 grounding 的工作,我们不仅要识别实体,还要确定实体识别结果与图片中特定区域之间的对应关系。我们提出了一种用于跨模态对齐的模型,主要解决多模态任务中存在的模态 Gap 和语义 Gap。

其中,模态 Gap 指的是图像和文本之间的分布不一致性,而语义 Gap 则是指图像中的目标与文本中的实体之间的对应关系。为了解决这两个 Gap,有两种方案。第一种方案是将图片划分为区域,并通过 Caption 方式将每个区域转换为文本,然后利用文本之间的关系来捕获区域之间的相关性,并通过图网络对相关性进行编码。针对语义 Gap,将图像中的每个区域转换为文本,通过注意力矩阵学习区域文本和输入文本中概念与实体的对应关系,以消除语义 Gap。这两种方法的结合,最终产生了更准确的多模态命名实体识别结果,使得识别的实体能够与图像中的特定区域建立对应关系。

9. 桥接的多模态实体关系抽取

对话刘铭教授:多模态知识图谱构建初探

以上分享的是关于多模态命名实体识别的探索。在多模态实体关系抽取任务中,我们提出了基于桥接的方法。这种方法的核心是学习一个中间表示,通过这个中间表示实现图像和文本之间的对齐。在这个方法中,我们首先将文本和图像分别表示成图形式。对于文本,我们使用树状结构方法从文本中提取图,而对于图像,则是从场景图任务中生成场景图。通过将文本和图像转化为图形式,我们利用图为桥梁来学习它们之间节点的对应关系,建立起图像和文本之间的跨模态交互。因此,利用图作为桥梁来建立文本和图像之间的对应关系,即桥接的多模态实体关系抽取。通过这种方法,我们发现图结构能够提升图像和文本之间的关联,从而显著提高最终抽取结果的准确性。

10. 基于细粒度匹配的多模态实体关系抽取

对话刘铭教授:多模态知识图谱构建初探

在处理文本和图像之间的交互时,仅仅依靠图像是不够的。我们之前主要考虑了文本形成的图和图像形成的图之间节点的对应关系,但是这种对应关系往往会遇到问题。为了应对这种情况,我们扩展了对应关系的范围。引入了三元组和路径等概念,以在节点级别和路径级别上对齐文本形成的图和图像形成的图。通过这种更广泛的对齐方式,可以实现文本形成的图和图像形成的图之间更深入的关联,进一步提升多模态实体识别的效果。

11. 迭代的多模态实体关系抽取

对话刘铭教授:多模态知识图谱构建初探

在进行图文交互时,我们考虑如何模仿 Diffusion 框架,引入时间因素。这种交互模式中,我们模仿人类对文本和图片进行理解的过程。当我们看到文本和图片时,可能会先整体把握它们,如果了解了细节,就会更关注特定区域或实体。这种模拟人类认知的过程,开始时只学习文本和图像之间的粗略关联,随着时间的推移,注意力会转向更细致的交互。通过引入时间因素,控制从粗到细的交互过程,使命名实体识别效果有了进一步提升。

12. 视频场景图生成

对话刘铭教授:多模态知识图谱构建初探

在视频数据中进行结构化信息生成是一个重要的探索。之前我们主要关注图像数据,现在要开始关注视频数据中的结构化信息抽取。这里介绍的方法是目前公认效果最好的,即首先对整个视频的结构化信息进行抽取,也就是场景图的抽取,可以分为两个阶段。首先是针对视频中的每一帧进行单独的信息抽取。比如,如果视频只有在抽取帧内信息后,考虑帧与帧之间的相互关系。一种简单的方式是将这两个帧拼接在一起,使帧与帧之间的关系得以呈现。紧接着,在整合帧与帧之间的关系后,再对每一帧内抽取到的物体和物体之间的关系进行细化处理。通过这种方法,可以综合考虑帧内信息和帧间时序信息,最终达到更好的视频场景图抽取效果。

13. 基于生成+筛选机制的视频场景图生成

对话刘铭教授:多模态知识图谱构建初探

具体做法是,首先从帧内提取目标物体和它们之间的关系,然后基于时间进一步细化这些关系。我们的改进聚焦在第一个阶段,传统方法在处理视频场景图时,仅使用视频场景图数据训练模型,然后从帧内提取物体关系。我们认识到,从每帧提取物体关系和从图片提取物体关系类似,因此我们决定利用传统基于图片的场景图抽取出的数据来对提取模型进行二次 Pretrain。通过这种二次 Pretrain,我们可以使得从帧内提取物体关系的结果更加丰富和准确。在第二步中,我们延续了之前的方案,引入时序信息来进一步细化结果。最终,我们发现这种方法能够使得视频帧的场景图抽取结果提升两个百分点。

14. 视频场景图提取演示系统

对话刘铭教授:多模态知识图谱构建初探

根据之前构建的方法,我们制作了一个演示版本。这个演示版本已经上传到 GitHub 上。如果您感兴趣,随时可以下载并尝试使用。

04

知识图谱和大模型的融合

对话刘铭教授:多模态知识图谱构建初探

最后要分享的是关于知识图谱和大型模型融合的工作。我们致力于让大型模型模拟人类动态认知的能力,不同于静态的知识表示。人类在接触到各种信息后,对事物的认知会随之变化,我们希望大型模型也能实现这种能力。为了模拟人类大脑的思考过程,我们引入了外部信息,首先定义一个人设,通过外部文本生成一系列三元组代表此人设,同时建立包含短期和长期记忆的知识库。短期记忆记录重要知识点,长期记忆则存储与人设相关的高频知识。大型模型被用作分析判断工具,通过筛选视频和文本来更新知识库和人设。随着大量信息的接触,大型模型的人设和记忆将发生变化,影响其对事物的认知。我们在 GitHub 上分享了相关数据和代码,欢迎下载试用,或与我们交流。

05

问答环节

Q1:大模型如何动态地更迭条件型知识图谱?

A1:大模型在知识图谱中有两个作用。首先,大模型能够帮助发现新知识。其次,大模型可以用来丰富条件知识图谱,修正模型中存在的错误和知识欠缺。在实践中,有两种主要方法可以应用大模型来帮助丰富条件知识图谱。第一种方法是通过直接输入文本,并使用大模型抽取条件知识,类似传统数据抽取的方式。第二种方法则是微调大模型,使其更好地适应特定任务,起到底层基座的作用,帮助进行新的抽取工作。虽然微调能使大模型更好地适应,但也可能导致丧失其他性能。目前,我们正在探索这两种方法的可行性。

Q2:怎么去把控大模型给出的知识?

A2:要控制大模型输出的知识,首先要解决大型模型存在的问题,包括可能说错的和不知道的内容。大模型输出知识校验在很多任务上的最大问题是可解释性和确定性。为了确保大模型输出的准确性,一种方法是利用知识图谱进行二次校正。通过对比大模型的输出和知识图谱的内容,来验证输出知识的准确性,以确保大模型输出的知识符合实际情况。另一种方法是检索增强,即从多个来源的知识中检索答案。虽然这种方法可能会有一些错误的信息,但可以采取集成学习或投票的方式来判断最终结果的正确性。通过这两种方式,可以更好地控制大型模型输出的知识。

Q3:条件知识图谱或者结合大模型是否能够实现智能医疗辅助决策?

A3:关于条件知识图谱结合大模型实现智能医疗辅助决策的可能性,在医疗场景及其他科学领域,将条件性知识融入预训练模型中,如 Bert-large 或 Albert 等小规模模型,推理准确率得到提升,这种嵌入条件知识的模型对知识密集、严谨领域特别有帮助。但大模型存在概率性问题,导致输出知识可能含有一定误差,不能达到 100% 的正确,虽然把条件知识嵌进去,可能对于某些知识的约束能力变得更强了。

Q4:针对多模态知识图谱中实体的嵌入表示,如何才能比较好地促进模态间的信息交互来完成实体的多模态信息融合?

A4:实际上,多数跨模态任务的本质是在进行跨模态的对齐,比如分享中列出的几项工作、多模态知识图谱上对齐和跨模态任务中的抽取、视频理解与问答。对于实现跨模态的对齐,有两个主要方向。一方面是追求细粒度的对齐,即不仅仅进行整体图像与文本的对齐,还要实现区域之间、甚至实体、词语之间的对齐。另一方面是解决文本和图像这两种不同类型数据分布的对齐问题。由于它们之间存在较大差异,因此需要通过一种桥接方式,将两种不同类型的分布有机结合起来。关键在于有效实现数据的对齐,不同的对齐方案会有所差异。

以上就是本次分享的内容,谢谢大家。

对话刘铭教授:多模态知识图谱构建初探

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多