理解BERT模型理论

60 篇文章 16 订阅
订阅专栏
38 篇文章 2 订阅
订阅专栏
35 篇文章 11 订阅
订阅专栏

BERT 模型是 Google 在 2018 年提出的一种 NLP 模型,成为最近几年 NLP 领域最具有突破性的一项技术。在 11 个
NLP 领域的任务上都刷新了以往的记录,例如GLUE,SquAD1.1,MultiNLI 等。

一,BERT整体概述

1,前言

Google 在论文《 BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding》中提出了 BERT 模型,BERT 模型主要利用了 Transformer 的 Encoder 结构,采用的是最原始的 Transformer。

2,结构

采用了 Transformer 的 Encoder 结构,但是模型结构比 Transformer 要深。Transformer Encoder 包含 6 个 Encoder block,BERT-base 模型包含 12 个 Encoder block,BERT-large 包含 24 个 Encoder block。

3,训练

训练主要分为两个阶段:预训练阶段Fine-tuning 阶段。预训练阶段与 Word2Vec,ELMo 等类似,是在大型数据集上根据一些预训练任务训练得到。Fine-tuning 阶段是后续用于一些下游任务的时候进行微调,例如文本分类,词性标注,问答系统等,BERT 无需调整结构就可以在不同的任务上进行微调。

  • 预训练任务1:BERT 的第一个预训练任务是 Masked LM,在句子中随机遮盖一部分单词,然后同时利用上下文的信息预测遮盖的单词,这样可以更好地根据全文理解单词的意思。Masked LM 是 BERT 的重点,和 biLSTM 预测方法是有区别的,后续会讲到。

  • 预训练任务2:BERT 的第二个预训练任务是 Next Sentence Prediction (NSP),下一句预测任务,这个任务主要是让模型能够更好地理解句子间的关系。

二,BERT 结构

在这里插入图片描述
上图是 BERT 的结构图,左侧的图表示了预训练的过程,右边的图是对于具体任务的微调过程。

1, BERT 的输入

BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子。同时 BERT 增加了一些有特殊作用的标志位:

  • [CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
  • [SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A,B 后面增加 [SEP] 标志。
  • [MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。

例如给定两个句子 "my dog is cute""he likes palying" 作为输入样本,BERT 会转为 "[CLS] my dog is cute [SEP] he likes play ##ing [SEP]"。BERT 里面用了 WordPiece 方法,会将单词拆成子词单元 (SubWord),所以有的词会拆出词根,例如 "palying" 会变成 "paly" + "##ing"

BERT 得到要输入的句子后,要将句子的单词转成 Embedding,Embedding 用 E表示。与 Transformer 不同,BERT 的输入 Embedding 由三个部分相加得到:Token EmbeddingSegment EmbeddingPosition Embedding
在这里插入图片描述
Token Embedding:单词的 Embedding,例如 [CLS] dog 等,通过训练学习得到。
Segment Embedding:用于区分每一个单词属于句子 A 还是句子 B,如果只输入一个句子就只使用 EA,通过训练学习得到。
Position Embedding:编码单词出现的位置,与 Transformer 使用固定的公式计算不同,BERT 的 Position Embedding 也是通过学习得到的,在 BERT 中,假设句子最长为 512。

2,BERT 预训练

BERT 输入句子中单词的 Embedding 之后,通过预训练方式训练模型,预训练有两个任务。

第一个是 Masked LM,在句子中随机用 [MASK] 替换一部分单词,然后将句子传入 BERT 中编码每一个单词的信息,最终用 [MASK] 的编码信息 T[MASK] 预测该位置的正确单词。

第二个是下一句预测,将句子 A 和 B 输入 BERT,预测 B 是否 A 的下一句,使用 [CLS] 的编码信息 C进行预测。

BERT 预训练的过程可以用下图来表示。
在这里插入图片描述

3,BERT 用于具体 NLP 任务

预训练得到的 BERT 模型可以在后续用于具体 NLP 任务的时候进行微调 (Fine-tuning 阶段),BERT 模型可以适用于多种不同的 NLP 任务,如下图所示。
在这里插入图片描述
( a ) 一对句子的分类任务: 例如自然语言推断 (MNLI),句子语义等价判断 (QQP) 等,如上图 (a) 所示,需要将两个句子传入 BERT,然后使用 [CLS] 的输出值 C进行句子对分类。

( b ) 单个句子分类任务: 例如句子情感分析 (SST-2),判断句子语法是否可以接受 (CoLA) 等,如上图 (b) 所示,只需要输入一个句子,无需使用 [SEP] 标志,然后也是用 [CLS] 的输出值 C进行分类。

( c ) 问答任务: 如 SQuAD v1.1 数据集,样本是语句对 (Question, Paragraph),Question 表示问题,Paragraph 是一段来自 Wikipedia 的文本,Paragraph 包含了问题的答案。而训练的目标是在 Paragraph 找出答案的起始位置 (Start,End)。如上图 © 所示,将 Question 和 Paragraph 传入 BERT,然后 BERT 根据 Paragraph 所有单词的输出预测 Start 和 End 的位置。

( d ) 单个句子标注任务: 例如命名实体识别 (NER),输入单个句子,然后根据 BERT 对于每个单词的输出 T预测这个单词的类别,是属于 Person,Organization,Location,Miscellaneous 还是 Other (非命名实体)。

三,预训练任务

预训练部分是 BERT 的重点,接下来了解 BERT 预训练的细节。BERT 包括两个预训练任务 Masked LM下一句预测

1,Masked LM

我们先回顾一下以往语言模型的预训练方法,使用句子 "我/喜欢/学习/自然/语言/处理" 为例。在训练语言模型的时候通常需要进行一些 Mask操作,防止信息泄露问题,信息泄露指在预测单词 “自然” 的时候,提前得知 “自然” 的信息。后面会讲到 Transformer Encoder 信息泄露的原因。

Word2Vec 的 CBOW: 通过单词 i 的上文和下文信息预测单词 i,但是采用的是词袋模型,不知道单词的顺序信息。例如预测单词 “自然” 的时候,会同时采用上文 “我/喜欢/学习” 和下文 “语言/处理” 进行预测。CBOW 在训练时是相当于把 “自然” 这个单词 Mask 的。

ELMo: ELMo 在训练的时候使用 biLSTM,预测 “自然” 的时候,前向 LSTM 会 Mask “自然” 之后的所有单词,使用上文 “我/喜欢/学习” 预测;后向 LSTM 会 Mask “自然” 之前的单词,使用下文 “语言/处理” 进行预测。然后再将前向 LSTM 和后向 LSTM 的输出拼接在一起,因此 ELMo 是将上下文信息分隔开进行预测的,而不是同时利用上下文信息进行预测。

OpenAI GPT: OpenAI GPT 是另外一种使用 Transformer 训练语言模型的算法,但是 OpenAI GPT 使用的是 Transformer 的 Decoder,是一种单向的结构。预测 “自然” 的时候只使用上文 “我/喜欢/学习”,Decoder 中包含了 Mask 操作,将当前预测词之后的单词都 Mask。

下图显示了 BERT 和 ELMo、OpenAI GPT 的区别。
在这里插入图片描述
BERT 的作者认为在预测单词时,要同时利用单词 left (上文) 和 right (下文) 信息才能最好地预测。将 ELMo 这种分别进行 left-to-right 和 right-to-left 的模型称为 shallow bidirectional model (浅层双向模型),BERT 希望在 Transformer Encoder 结构上训练出一种深度双向模型 deep bidirectional model,因此提出了 Mask LM 这种方法进行训练。

Mask LM 是用于防止信息泄露的, 例如预测单词 “自然” 的时候,如果不把输入部分的 “自然” Mask 掉,则预测输出的地方是可以直接获得 “自然” 的信息。
在这里插入图片描述
BERT 在训练时只预测 [Mask] 位置的单词,这样就可以同时利用上下文信息。但是在后续使用的时候,句子中并不会出现 [Mask] 的单词,这样会影响模型的性能。因此在训练时采用如下策略,随机选择句子中 15% 的单词进行 Mask,在选择为 Mask 的单词中,有 80% 真的使用 [Mask] 进行替换,10% 不进行替换,剩下 10% 使用一个随机单词替换。

例如句子 “my dog is hairy”,选择了单词 “hairy” 进行 Mask,则:

  • 80% 的概率,将句子 “my dog is hairy” 转换为句子 “my dog is [Mask]”。
  • 10% 的概率,保持句子为 “my dog is hairy” 不变。
  • 10% 的概率,将单词 “hairy” 替换成另一个随机词,例如 “apple”。将句子 “my dog is hairy” 转换为句子 “my dog is apple”。

以上是 BERT 的第一个预训练任务 Masked LM。

2,下一句预测

BERT 的第二个预训练任务是 Next Sentence Prediction (NSP),即下一句预测,给定两个句子 A 和 B,要预测句子 B 是否是句子 A 的下一个句子。

BERT 使用这一预训练任务的主要原因是,很多下游任务,例如问答系统 (QA),自然语言推断 (NLI) 都需要模型能够理解两个句子之间的关系,但是通过训练语言模型达不到这个目的。

BERT 在进行训练的时候,有 50% 的概率会选择相连的两个句子 A B,有 50% 的概率会选择不相连得到两个句子 A B,然后通过 [CLS] 标志位的输出 C预测句子 A 的下一句是不是句子 B。

  • 输入 = [CLS] 我 喜欢 玩 [Mask] 联盟 [SEP] 我 最 擅长 的 [Mask] 是 亚索 [SEP]类别 = B 是 A 的下一句
  • 输入 = [CLS] 我 喜欢 玩 [Mask] 联盟 [SEP] 今天 天气 很 [Mask] [SEP]类别 = B 不是 A 的下一句

四,BERT 总结

因为 BERT 预训练时候采用了 Masked LM,每个 batch 只会训练 15% 的单词,因此需要更多的预训练步骤。ELMo 之类的顺序模型,会对每一个单词都进行预测。

BERT 使用了 Transformer 的 Encoder 和 Masked LM 预训练方法,因此可以进行双向预测;而 OpenAI GPT 使用了 Transformer 的 Decoder 结构,利用了 Decoder 中的 Mask,只能顺序预测。

Transformer大模型实战 训练学生BERT 模型(DistilBERT 模型
程序员光剑
07-07 357
自然语言处理(NLP)领域,预训练模型BERT、GPT等已经展示了强大的表示能力,在各种下游任务上取得了令人瞩目的成果。然而,这些大型预训练模型往往面临计算资源消耗高、训练时间长的问题,限制了它们在某些场景下的应用。因此,研究人员开发了基于BERT的小型化版本——DistilBERT,旨在保留BERT的优点的同时降低资源需求,提高效率。本文将以训练DistilBERT为例,深入探讨其核心概念、算法原理及其实际应用。知识蒸馏:通过让学生模型观察教师模型的输出分布,学习到更多的语义信息。压缩。
一切皆是映射:BERT模型原理及其在文本理解中的应用
程序员光剑
07-13 1046
一切皆是映射:BERT模型原理及其在文本理解中的应用 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:BERT, Transformer, 自注意力机制, 语义表示, 文本分类, 句子对匹配
NLP修炼系列之Bert(一)】Bert的前世今生-理论
zenRRan的博客
02-20 413
来自:布尔NLPer引言之前的文章和大家详细的介绍了静态的词向量表示word2vec理论加实战,但是word2vec存在一个很大的问题,由于是静态词向量所以无法表示一词多义,对于每个词只能有一个固定的向量表示,今天我们来介绍一个给NLP领域带来革新的预训练语言大模型Bert,对比word2vec和Glove词向量模型Bert是一个动态的词向量语言模型,接下来将带领大家一起来聊聊Bert的前世今生...
BERT(预训练Transformer模型
teletubbies的博客
10-15 4497
Bert在18年提出,19年发表,Bert的目的是为了预训练Transformer模型encoder网络,从而大幅提高准确率Bert 的基本想法有两个,第一个想法:随机遮挡一个或者多个单词,让encoder网络根据上下文来预测被遮挡的单词。第二个想法:把两个句子放在一起让encoder网络判断两句话是不是原文里相邻的两句话Bert用这两个任务来预训练Transformer模型中的encoder网络。
一文彻底搞懂 BERT 模型_bert模型结构
最新发布
2401_86585069的博客
08-10 1197
2018 年是机器学习模型处理文本(或者更准确地说,自然语言处理NLP)的转折点。我们对这些方面的理解正在迅速发展:如何最好地表示单词和句子,从而最好地捕捉基本语义和关系?此外,NLP 社区已经发布了非常强大的组件,你可以免费下载,并在自己的模型和 pipeline 中使用(今年可以说是 NLP 的 ImageNet 时刻,这句话指的是多年前类似的发展也加速了 机器学习在计算机视觉任务中的应用)。ULM-FiT 与 Cookie Monster(饼干怪兽)无关。但我想不出别的了…
自然语言处理 | BERTBERT:Pre-training of Deep Bidirectional Transformers for Language Understanding论文讲解
wzk4869的博客
05-04 1632
自然语言处理 | BERTBERT:Pre-training of Deep Bidirectional Transformers for Language Understanding论文讲解
BERT模型
云计算、数据库、大数据、容器、微服务、深度学习、NLP、Python
05-30 1055
BERT模型是2018年的10月Google发布的论文《Pre-training of Deep Bidirectional Transformers for Language Understanding》,提到的BERT模型刷新了自然语言处理的11项记录 模型架构 ELMO(Embedding from Language Models),采用的双向的Bi-LSTM实现的,图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外的上文Context,右端的逆向双层LSTM代表反方向
自然语言处理BERT模型算法、架构和案例实战.pptx
10-13
作者通过介绍多个不同领域的实际应用案例,让读者更好地理解BERT模型在实际问题中的应用方法和技巧。这些案例涉及了多个领域,如情感分析、文本分类、文本生成等等。 通过这些案例的实战演练,我不仅加深了对BERT...
Transformer大模型实战 理解多语言BERT 模型
程序员光剑
07-14 957
Transformer大模型实战:理解多语言BERT模型 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:多语言BERT,Transformer模型自然语言处理,多语言处理,语言理解,预训练模型
自然语言处理(七):来自Transformers的双向编码器表示(BERT
qq_51957239的博客
09-05 2263
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的自然语言处理模型,由Google于2018年提出。它是基于Transformer模型架构的深度双向(双向指同时考虑上下文信息)表示学习模型BERT的目标是通过在大规模文本语料上进行自监督学习来学习通用的语言表示。
BERT简单解读
m0_50896529的博客
12-06 3191
BERT的原论文为:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT是Google公司在2018年提出的基于深层Transformer的预训练语言模型BERT不仅充分利用了大规模无标注文本来挖掘其中丰富的语义信息,同时还进一步加深了NLP模型的深度。 1. 整体结构 BERT的基本模型结构由多层Transformer构成,包含两个预训练任务:掩码语言模型(MLM)和下一个句子预测(NS
BERT模型的详细介绍
热门推荐
IT之一小佬的博客
04-01 11万+
BERT模型的详细介绍 1.BERT 的基本原理是什么? BERT 来自 Google 的论文Pre-training of Deep Bidirectional Transformers for Language Understanding,BERT 是“Bidirectional Encoder Representations from Transformers”的首字母缩写,整体是一个自编码语言模型(Autoencoder LM),并且其设计了两个任务来预训练该模型。 第一个任务是采用 Ma
自然语言处理中的Transformer和BERT
Zhangbei_的博客
12-23 1万+
2018年马上就要过去,回顾深度学习在今年的进展,让人印象最深刻的就是谷歌提出的应用于自然语言处理领域的BERT解决方案,BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(https://arxiv.org/abs/1810.04805)。BERT解决方案刷新了各大NLP任务的榜单,在各...
BERT论文解读:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
weixin_44607838的博客
12-17 3062
BERT 相信热爱NLP的朋友都对BERT十分熟悉,google提出的这个模型NLP的多项任务中都取得了惊人的成绩,是目前NLP领域最厉害的武器之一。本文会以原论文为基础来详细解读一下BERT的来龙去脉。 在此声明一下,我并不会完全按照原论文的顺序进行解读,而是根据自己的理解来重点介绍我认为核心或者比较重要的部分。OK,我们开始。 首先我们先来看一下论文的abstract部分的关于BERT的介绍。 这句高亮语句其实已经对BERT做出了非常准确的说明。首先,BERT是一个已经经过预训练的模型,同时BERT
BERT简要介绍
Breeze
03-07 1799
BERT(Bidirectional Encoder Representation from Transformers) 网络架构由 Jacob Devlin 等人提出用于预训练,学习在给定上下文下给出词的 Embedding 表示。BERT 采用了 Transformer 架构的编码器部分用于学习词在给定上下文下词的 Embedding 表示。考虑到语言模型任务为从左往右或从右往左预测下一个词...
BERT介绍
triplemeng的博客
10-20 8万+
这篇介绍以下最近大热的[BERT](https://arxiv.org/pdf/1810.04805.pdf),它在11个NLP任务中刷新了成绩,效果确实惊人。
bert实践:关系抽取解读
爱吃火锅的博客
07-31 4万+
前言 bert模型是谷歌2018年10月底公布的,反响巨大,效果不错,在各大比赛上面出类拔萃,它的提出主要是针对word2vec等模型的不足,在之前的预训练模型(包括word2vec,ELMo等)都会生成词向量,这种类别的预训练模型属于domain transfer。而近一两年提出的ULMFiT,GPT,BERT等都属于模型迁移,说白了BERT 模型是将预训练模型和下游任务模型结合在一起的,核心...
BERT解读(论文 + TensorFlow源码)
Magical_Bubble的博客
04-25 8591
BERT,全称Bidirectional Encoder Representations from Transformers,是Google在18年11月份推出的一个NLP预训练的模型,它一出现,就横扫各大NLP任务的SoTA,并且Google还良心的放出了源码和预训练模型,可以说是像ImageNet那种里程碑式的突破。
bert模型的由来和理论知识
04-12
BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型,由Google在2018年提出[^1]。BERT的主要创新之处在于引入了双向上下文信息,通过同时考虑左右两个方向的上下文,使得模型能够更好地理解语言的语境和含义。 BERT模型的训练过程包括两个阶段:预训练和微调。在预训练阶段,BERT模型使用大规模的无标签文本数据进行训练,通过预测遮蔽词(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)任务来学习语言的表示。具体来说,BERT模型通过随机遮蔽输入文本中的一些词,并预测这些被遮蔽的词是什么,从而学习词的上下文表示。同时,BERT模型还通过判断两个句子是否是连续的来学习句子级别的表示。 在微调阶段,BERT模型使用有标签的任务特定数据进行微调,例如文本分类、命名实体识别等。通过在特定任务上进行微调,BERT模型可以将预训练得到的通用语言表示适应到具体任务上,从而提升模型在各种自然语言处理任务上的性能。 DistilBERT是一种基于BERT模型的知识蒸馏方法,旨在通过压缩和提炼BERT模型的知识,来获得一个更轻量级、更高效的模型。DistilBERT通过在预训练阶段使用与BERT相同的训练目标,但使用更小的模型结构和更短的训练时间来训练模型。然后,通过将BERT模型的知识转移到DistilBERT模型中,可以在保持相对较高性能的同时,减少模型的大小和计算资源的消耗。
写文章

热门文章

  • Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图 53787
  • 基于python中jieba包的详细使用介绍 43243
  • (排坑)ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain) 17717
  • python批量替换列表中的元素 12401
  • NLP(四)词形还原(Lemmatization) 9607

分类专栏

  • GPT大模型 9篇
  • nlp 60篇
  • 深度学习 16篇
  • 算法 41篇
  • 驱动升级 2篇
  • python环境 7篇
  • Docker 2篇
  • airlfow 1篇
  • nvidia 3篇
  • python语法 5篇
  • python常用工具库 53篇
  • 排坑 4篇
  • keras 38篇
  • tensorflow 35篇
  • GIT 1篇
  • 搭建服务器 1篇
  • tfidf 1篇
  • jwt 1篇
  • django 4篇
  • sk-learn 18篇
  • 数据结构与算法 1篇
  • mysql 1篇
  • 多任务 5篇
  • 网络通信 3篇
  • 装饰器 1篇
  • huffman tree 1篇
  • pandas 13篇
  • numpy 9篇
  • RabbitMq 1篇
  • mysql-疑难杂症 3篇
  • kafka
  • zookeeper 2篇
  • github 1篇

最新评论

  • Keras(三十四)Transformer模型代码实现

    bioinfomatic: 真的是大佬!学到了!

  • LLM主流框架:Causal Decoder、Prefix Decoder和Encoder-Decoder

    TFATS: 是的,T5 是encoder-decode架构,已修改。

  • LLM主流框架:Causal Decoder、Prefix Decoder和Encoder-Decoder

    nqct1: T5也是prefix LM架构嘛?不是encoder-decoder架构?

  • (排坑)ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)

    学u额: 输入启动zookeeper命令,没有报错,但一直卡主了

  • 什么是RoPE-旋转位置编码?

    NLP小讲堂: 表情包

大家在看

  • 线程的创建方式 84

最新文章

  • LLM主流框架:Causal Decoder、Prefix Decoder和Encoder-Decoder
  • 什么是RoPE-旋转位置编码?
  • LORA的基本原理
2024年3篇
2023年11篇
2022年5篇
2021年25篇
2020年117篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家山东动物玻璃钢雕塑厂家玻璃钢仿真雕塑工程宝鸡广场校园玻璃钢雕塑校园玻璃钢花盆造型玻璃钢浮雕雕塑供应上海特色玻璃钢雕塑哪家便宜韶关玻璃钢卡通雕塑销售电话贵州玻璃钢花盆价格表成品玻璃钢花盆制造拱墅区玻璃钢雕塑公司北京湘西玻璃钢人物雕塑安阳景观标识校园玻璃钢景观雕塑商场门口做什么美陈江苏省玻璃钢雕塑哪里有铜陵商场中庭美陈甘肃酒店玻璃钢美陈雕塑玻璃钢雕塑上色技法卢湾区商场玻璃钢花盆河北室内商场美陈供货商宽城区玻璃钢雕塑工程艺术商场美陈价格浙江景观玻璃钢雕塑定制广东开业商场美陈报价杭州玻璃钢牛雕塑河北季节性商场美陈供货商南湖玻璃钢雕塑汕头玻璃钢卡通雕塑报价表青州玻璃钢花盆花器玻璃钢雕塑冬天制作流程玻璃钢花盆采购香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化