论文笔记之Distributed Representations of Words and Phrases and their Compositionality

5 篇文章 1 订阅
订阅专栏

这篇文章是用于解决skip-gram和CBOW两种模型在计算softmax时因为语料库V太大导致计算复杂度偏高的问题。为了降低复杂度,提高运算效率,论文作者提出了层次softmax以及负采样的方式去解决(负采样会比层次softmax用的更多些)。此外,作者还提出了一种重采样方式去使得采样更偏重一些含重要信息的词。

参考:
① B站视频
② 论文
③ Word2vec的两种原模型
④ Word2vec 中的数学原理详解
⑤ Word2Vec-知其然知其所以然

Distributed Representations of Words and Phrases and their Compositionality

  • 1 Hierarchical Softmax
    • 1.1 Skip-gram HS构建
    • 1.2 CBOW HS的构建
  • 2 Negative Sampling
    • 2.1 Skip-gram中的NS
    • 2.2 CBOW中的NS
  • 3 Subsampling of Frequent Words
  • 4 实战演练
    • 4.1 PTB数据集
    • 4.2 模型训练
  • 5 Conclusion

文章介绍了2种可以简化skip-gram和CBOW两种模型中softmax部分的计算复杂度,即Hierarchical Softmax(HS)和Negative Sampling(NS)。这两种技巧均可用于上述2种模型,故HS和NS的目标就是改变softmax的表达式:
p ( o ∣ c ) = e x p ( u o T v c ) ∑ w = 1 V e x p ( u w T v c ) (1) p(o|c) = \frac{exp(u_o^Tv_c)}{\sum^V_{w=1}exp(u^T_wv_c)}\tag{1} p(oc)=w=1Vexp(uwTvc)exp(uoTvc)(1)
从式(1)中可以看出,计算一次概率需要经过 V V V(语料库大小)次的指数运算,那么自然HS和NS就要想办法在保证求出概率 p ( o ∣ c ) p(o|c) p(oc)的情况下,减小 u w T v c u^T_wv_c uwTvc的运算次数。因此原skip-gram以及CBOW的softmax需要做出改进。

1 Hierarchical Softmax

层次softmax的核心思想就是通过引出二叉树结构(Huffmax 二叉树)将求softmax的计算转为求sigmoid的计算,从而将计算复杂度从 V V V降到 l o g 2 V log_2V log2V以下,即从原来的需要求 V V V次关于 u w T v c u_w^Tv_c uwTvc的指数运算降低到求小于 l o g 2 V log_2V log2V次的sigmoid运算( s i g m o i d : σ ( x ) = 1 1 + e − x sigmoid: \sigma(x) = \frac{1}{1+e^{-x}} sigmoid:σ(x)=1+ex1)。

为了便于理解,我们中间加入满二叉树过程而不是直接到Huffman树过程。
在这里插入图片描述
上图是一个满二叉树(V=8),可以看到,每次计算一个词 a a a的概率需要进行 l o g 2 V = 3 log_2V=3 log2V=3次的二分类过程,也就是说需要进行3次的sigmoid计算。

那么满二叉树达到了 l o g 2 V log_2V log2V的优化程度,那么有没有更快的方式呢?——引入Huffman树
在这里插入图片描述

哈夫曼树是带权重路径最短二叉树,它基于将权值小的节点放的位子深(越小越接近叶子节点),权值大的节点放的位子浅(越大越靠近根节点)的原则来实现比满二叉树更小的路径和。
Note:

  1. 在层次softmax的CBOW和skip-gram模型中,你无法采用 W + W ∗ 2 \frac{W+W^*}{2} 2W+W的形式来做,因为在skip-gram模型中,只有一组完整的中心词向量矩阵 W W W,而中心词向量矩阵是由 θ \theta θ组成的,其维度势必小于 V V V,故 W W W W ∗ W^* W是size不同的两个矩阵。同理,在CBOW模型中,只有一组完整的周围词向量矩阵 W W W,而 W ∗ W^* W的size是比 W W W要小的,故不能相加。
  2. 对于HS,有的词概率计算用的sigmoid次数可能小于 l o g 2 V log_2V log2V,有的可能要大于 l o g 2 V log_2V log2V,平均下来是 l o g 2 V log_2V log2V

1.1 Skip-gram HS构建

Skip-gram中哈夫曼树的构建:

  1. 输出层是一课Huffman树。
  2. 叶子节点是语料库中的词。
  3. 将某个词出现的频率作为叶子节点的权值,频率越大的层数越浅,频率越小的层数越深。

在这里插入图片描述
如上图所示,比如说我们要去求"词I"的概率,我们用HS技巧来取代softmax计算,设c为中心词:
p ( I ∣ c ) = σ ( θ 0 T v c ) ⋅ σ ( θ 1 T v c ) ⋅ ( 1 − σ ( θ 2 T v c ) ) = σ ( θ 0 T v c ) ⋅ σ ( θ 1 T v c ) ⋅ σ ( − θ 2 T v c ) (2) p(I|c) = \sigma(\theta_0^Tv_c)\cdot\sigma(\theta_1^Tv_c)\cdot(1-\sigma(\theta_2^Tv_c))\\ = \sigma(\theta_0^Tv_c)\cdot\sigma(\theta_1^Tv_c)\cdot\sigma(-\theta_2^Tv_c)\tag{2} p(Ic)=σ(θ0Tvc)σ(θ1Tvc)(1σ(θ2Tvc))=σ(θ0Tvc)σ(θ1Tvc)σ(θ2Tvc)(2)

  1. θ \theta θ参数的个数一定是小于 V V V的,其没有具体意义,实在要一个意义的话,可以理解为该节点以下整一簇的上下文词向量。
  2. θ \theta θ的个数大约有 l o g 2 V log_2V log2V个,比 V V V要略大。
  3. 树的高度大约是 O ( log ⁡ 2 V ) O(\log_2V) O(log2V)

上图的意思大概就是:从根节点出发,以一半一半的概率走向两个子节点,需要注意的是同一层的两个结点之和为1。然后一半一半的概率继续往下走,当第三次分开走的时候就遇到了我们要求的“词I”,我们把它拿出来做反向传播就行了。具体写成公式如下:
p ( w ∣ w I ) = ∏ j = 1 L ( w ) − 1 σ ( δ ( n ( w , j + 1 ) = = c h ( n ( w , j ) ) ) ⋅ θ n ( w , j ) T v w I ) (3) p(w|w_I) = \prod_{j=1}^{L(w)-1}\sigma(\delta(n(w,j+1)==ch(n(w,j)))\cdot \theta_{n(w,j)}^Tv_{w_I})\tag{3} p(wwI)=j=1L(w)1σ(δ(n(w,j+1)==ch(n(w,j)))θn(w,j)TvwI)(3)
Note:

  1. n ( w , j ) n(w,j) n(w,j)表示词 w w w在树上的第j个节点,比如 n ( w , 1 ) n(w,1) n(w,1)就是根节点。
  2. δ ( n ( w , j + 1 ) = = c h ( n ( w , j ) ) ) \delta(n(w,j+1)==ch(n(w,j))) δ(n(w,j+1)==ch(n(w,j)))表示当节点 n ( w , j ) n(w,j) n(w,j)的右儿子节点是词 w w w的下一个节点的时候,那么就取正号,否则就取负号。
  3. 公式(3)中 v w I v_{w_I} vwI表示中心词向量。

1.2 CBOW HS的构建

在CBOW中HS和skip-gram中差不多,只是公式上略微有点变化。因为和skip-gram相反,CBOW要改变中心词向量矩阵 W ∗ W^* W,具体如下:
在这里插入图片描述

  1. 如上图所示, θ \theta θ在CBOW中的含义大概是中心词向量,而非skip-gram中的上下文词向量。

对应skip-gram中的公式3,CBOW也要略微进行修改:
p ( w ∣ w I ) = ∏ j = 1 L ( w ) − 1 σ ( δ ( n ( w , j + 1 ) = = c h ( n ( w , j ) ) ) ⋅ u w I T θ n ( w , j ) ) (4) p(w|w_I) = \prod_{j=1}^{L(w)-1}\sigma(\delta(n(w,j+1)==ch(n(w,j)))\cdot u_{w_I}^T \theta_{n(w,j)})\tag{4} p(wwI)=j=1L(w)1σ(δ(n(w,j+1)==ch(n(w,j)))uwITθn(w,j))(4)

2 Negative Sampling

负采样的核心思想就是将多分类(V类)问题转为二分类问题。Softmax之所以慢,是因为它涉及一个多分类问题,且和词表大小 V V V相关的。负采样就是舍弃多分类,转为二分类来提升速度。

2.1 Skip-gram中的NS

既然是二分类,正样本由中心词以及窗口内上下文词组成;负样本由中心词和词库中随意采样的样本组成
先给出负采样的核心公式,即目标函数:
J n e g − s a m p l e ( θ ) = l o g σ ( u o T v c ) + ∑ k = 1 K E k ∼ P ( w ) [ l o g σ ( − u k T v c ) ] (5) J_{neg-sample}(\theta) = log\sigma(u_o^Tv_c) + \sum^K_{k=1}\mathbb{E}_{k\sim P(w)}[log\sigma(-u_k^Tv_c)]\tag{5} Jnegsample(θ)=logσ(uoTvc)+k=1KEkP(w)[logσ(ukTvc)](5)

  1. v c v_c vc是中心词向量; u o u_o uo是窗口内上下文词向量; u k u_k uk是负采样上下文词向量。
  2. 我们的目标是最大化式(5),即正样本的 u o T v c u_o^Tv_c uoTvc概率越大越好;负样本 u k T v c u_k^Tv_c ukTvc越小越好。这也是二分类的核心思想:增大正样本概率,减小负样本概率。
  3. 对于每个词,一次要输出 K + 1 K+1 K+1个概率,一般也不大(3~10),所以会比Hierarchical Softmax需要计算大约 l o g 2 V log_2V log2V个概率或者原模型需要的 V V V个概率要高效很多。
  4. 我们之所以取期望 E \mathbb{E} E以及采取多个负样本,就是因为负样本是采样得来的,需要多采样几份求平均。
  5. NS里面还是需要完整的 W W W W ∗ W^* W,故总的参数比HS要多,但是每次的计算量不多。

2.2 CBOW中的NS

大多数和skip-gram中的NS类似,除了正负样本的定义以及目标函数。
正样本由中心词及其窗口内上下文词的平均组成;负样本窗口内上下文词的平均和随机采样的词组成。
其目标函数为:
J n e g − s a m p l e ( θ ) = l o g σ ( u o T v c ) + ∑ k = 1 K E k ∼ P ( w ) [ l o g σ ( − u o T v k ) ] (6) J_{neg-sample}(\theta) = log\sigma(u_o^Tv_c) + \sum^K_{k=1}\mathbb{E}_{k\sim P(w)}[log\sigma(-u_o^Tv_k)]\tag{6} Jnegsample(θ)=logσ(uoTvc)+k=1KEkP(w)[logσ(uoTvk)](6)
Note:

  1. u o u_o uo是窗口内上下文词向量; v c v_c vc是正确的中心词向量; v k v_k vk是错误的中心词向量。

如何采样呢?
在这里插入图片描述

  1. 采样的核心思想就是减小频率大的词的采样概率,增加概率小的词的采样概率。之所以这么做,是因为概率小的词往往比较重要,反之概率大的词不太重要,如“the、a、to、的”。

3 Subsampling of Frequent Words

自然语言共识:在语料库中出现频率高的词往往不太重要,所含信息较少,如“a、and、the”;在语料中出现频率低的词往往比较重要,所含信息比较多。
重采样的原因:

  1. 更多地训练重要的词对,比如训练“Chinese”和“HangZhou”的关系,少训练“Chinese”和“the”之间的关系。
  2. 高频词很快就训练好了,而低频词需要训练更多的轮次。

重采样方式:
P ( w i ) = m a x ( 0 , 1 − t f ( w i ) ) . P(w_i) = max(0, 1-\sqrt{\frac{t}{f(w_i)}}). P(wi)=max(0,1f(wi)t ).

  1. 其中 f ( w i ) f(w_i) f(wi)为词 w i w_i wi在数据集中出现的概率。文中选取 t = 1 0 − 5 t=10^{-5} t=105,训练集中的词 w i w_i wi会以 P ( w i ) P(w_i) P(wi)的概率删除
  2. 词频越大, f ( w i ) f(w_i) f(wi)越大, P ( w i ) P(w_i) P(wi)越大,那么词 w i w_i wi就有更大的概率被删除。
  3. 实验表明,重采样可以加加速训练,得到更好的词向量。

4 实战演练

实战部分基于Negative Sampling的Skip-gram模型。
Pytorch库

4.1 PTB数据集

语料库:PTB数据集
在这里插入图片描述
PTB数据集主要是三个.txt文件:ptb_test.txt、ptb_train.txt、ptb_valid.txt。其中ptb_train.txt文件部分截图如上所示,其每一行都是一句话,便于直接读取。其中句尾符为,生僻词为,数字则用N表示。
训练部分我们将读取ptb_train.txt文件,其中共有887521个单词。

4.2 模型训练

在这里插入图片描述
数据预处理:
由于窗口的大小是随机选取的,因此不同中心词对应的上下文词的长度是不一样的,但是负采样值的长度和上下文词是一样的,这样就导致了训练过程中数据不对齐,我们可以采用补0的形式,然后用掩码去解决0带来的影响,让补0部分不参与训练。
其中前向推断如下:
在这里插入图片描述

中心词:(batch,1)
上下文词+负采样值:(batch,S)
Embding层:(词表大小N,D)——调用nn.Embding类
中心词向量:(batch,1, D)
周围词向量矩阵:(batch, S,D)
Label和来自中心词向量和周围词向量的乘积做二分类交叉熵Loss。

Note:

  1. 在batch个中心词向量中,每一个中心词对应一个长度为S的,由周围词和负采样值以及掩码组成,因此这就相当于一个中心词对应窗口内的周围词都做了运算。
  2. 这里和之前写的那篇 Word2Vec笔记中不一样的一点是,并没有从索引到one-hot,再用矩阵乘法输出中心词向量,而是直接将索引通过Embding层挑选出指定索引对应的中心词向量。
  3. 最后我们所想要的就是上图绿色Embding层的weight参数。

5 Conclusion

在这里插入图片描述

从模型复杂度理论对比以及实验来看:

  1. CBOW和skip-gram都比NNLM或者RNNLM要快。
  2. CBOW要比skip-gram计算要快一些。
  3. K K K不超过14时候,负采样要比层次softmax要高效。
Distributed Representation of Words and Phrases and their Compositionality
huhu0769的博客
07-24 1074
Abstract Skip-gram模型是一个学习高质量的词分布向量表示的方法,这个向量可以捕获许多细微的语法和语义关系。在本文将提出一些策略用来提高训练的词向量的质量和提高训练速度。 提出对高频词语进行下采样,加速训练过程和提高词向量质量(特别出现频率低的词) 通过负采样替代层次softmax(能够提高高频率词汇的词向量质量) 提出一个简单的从文本中发现短语,从而学习出短语向量的方法 ...
Distributed Representations of Words and Phrases and their Compositionality--翻译
CDUTCo的博客
04-03 562
词和短语的分布表示及其构成 原作者:Tomas Mikolov等 #摘要 最近引入的连续Skip-gram模型是学习高质量分布向量表示的有效方法,分布向量表示可以捕获大量精确的句法和语义关系。在本文中,我们提出了几个扩展,提高了向量的质量和训练速度。通过对频繁的单词进行二次抽样,我们获得了显着的加速,同时还学习了更多的常规单词表示。我们还提出了一个分层soft max的简单替代方案,称为负采...
论文翻译解读:Distributed Representations of Words and Phrases and their CompositionalityWord2Vec优化】
weixin_43923463的博客
07-11 1198
替代分层softmax方案–负采样词表示固有的限制:不关心次序,无法表示习惯用于本文提出在文本中查找短语的方法用向量表示整个短语会使skip-gram更具表现力高频词二次取样,因为in,the,a没什么信息,可以加速训练,提高算法精度最近引入的连续跳过图模型是一种学习高质量分布式向量表示的有效方法,它捕获了大量精确的句法和语义词关系。在本文中,我们提出了几个扩展,以提高向量的质量和训练速度。通过对频繁出现的单词进行子采样,我们获得了显著的加速,并学习了更规则的单词表征。我们还描述了分层softmax的一个简
Distributed-representations-of-words-and-phrases- and-their-compositionality-Paper
咖乐部
11-15 248
Distributed-representations-of-words-and-phrases-and-their-compositionality-Paper 最近介绍的continuous skip-gram 模型能够有效地学习高质量的分布式向量表示。本文提出了几个拓展能够提高向量的质量和训练速度。——通过二次词频采样获得显著的加速和更规律的词表示。——提出一个更简单的hierarchical softmax 替代模型 称之为负采样。 行文结构:围绕摘要 1.首先Introduction,介绍了
Distributed representations of words and phrases and their compositionality
snow
12-09 905
Distributed representations of words and phrases and their compositionality 基本信息 @inproceedings{mikolov2013distributed, title={Distributed representations of words and phrases and their compositionali...
Distributed Representations of Words and Phrases and their Compositionality.zip
03-12
Distributed Representations of Words and Phrases and their Compositionality”这个主题主要探讨的是如何通过神经网络模型生成词和短语的分布式表示,以及这些表示如何具有组合性,即如何通过基本单位(单词)...
Word2Vec 与《Distributed Representations of Words and Phrases and their Compositionality》学习笔记
scanf_yourname的博客
07-04 3198
什么是Word2Vec 目录 词嵌入(word embedding) 词嵌入的特点 嵌入矩阵 Skip−gramSkip-gramSkip−gram模型 分层SoftmaxSoftmaxSoftmax (HierarchicalSoftmax)(Hierarchical Softmax)(HierarchicalSoftmax) 负采样 词嵌入(word embedding) ...
[论文笔记] [2013] [NIPS] Distributed Representations of Words and Phrases and their Compositionality
Alexzhuan
07-02 475
这篇论文的作者 Mikolov 基于他前面的工作——skip-gram model学习 word embedding,提出了几个提高词向量性能和训练速度的技巧,以及如何学习短语的表示。 这篇论文的主要贡献为: 利用 subsampling 加速训练和提高词向量的质量; 对 Noise Contrastive Estimation(NCE)做了一些简化,提出了 Negative sampling 来优化模型训练速度; 尝试学习短语的表示。 The Skip-gram Model Mikolov 之前的工作
Distributed Representations of Words and Phrasesand their Compositionality
Thinking_boy1992的博客
12-04 2110
https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf“>翻译论文 最近提出的连续Skip-gram模型是一个有效的方法,用来学习高质量的分布式向量表示,它能够捕获大量的准确的单词间语义和句法关系。在这篇文章中,我们呈现一些扩
论文Distributed Representations of Words and Phrases and their Compositionality
知行_那片天
08-24 3907
这篇论文是对《Efficient Estimation of Word Representations in Vector Space》的补充,介绍了使用Skip-gram模型和Hierarchical Softmax训练模式的训练方法。并补充了Negative Sampling的训练模式替代Negative Sampling,获得更快的训练效果。
Distributed Representations of Words and Phrases and their Compositionality
wang_CJ
10-24 399
Distributed Representations of Words and Phrases and their Compositionality Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean 1.Abstract 在这篇文章中,我们提出了对原来Skip-gram模型的一些扩展。我们展示了在训练结果过程...
论文阅读报告】Distributed Representations of Words and Phrases and their Compositionalit
weixin_43578660的博客
06-18 1044
主要内容 本篇论文的主要内容为对skip-gram模型的优化扩展,主要内容包括以下三点 对高频词重采样 negative sampling(负采样) 从基于单词的模型扩展到基于短语的模型 高频词重采样 在语料库非常大的时候,一些高频词很容易出现上百万甚至上亿次,然而这些高频词能提供的信息一般都比那些低频次要来的少。所以为了平衡高频词和低频词的样本数量,本文提出了二次采样的方法,在二次采样中,每个词语都有一定几率会被丢弃,概率计算公式如下:P(wi)=1−tf(wi) P(w_i) = 1 - \sqr
(29)[NIPs13] Distributed Representations of Words and Phrases and their Compositionality
gdtop的个人笔记
03-31 1454
计划完成深度学习入门的126篇论文第二十九篇,Google的Jeffrey Dean、Greg Corrado、Tomas Mikolov及Ilya Sutskeve发表的word2vec论文,引用高达12000次,同时也是CS224nLecture1的推荐readings。 ABSTRACT&INTRODUCTION 摘要 最近引入的Skip-gram模型是一种高效的学习高质量分布...
翻译:Distributed Representations of Words and Phrases and their Compositionality
热门推荐
新垣结衣法定男友的博客
08-02 1万+
原文:《Distributed Representations of Words and Phrases and their Compositionality》 原作者:Tomas Mikolov等摘要最近引入的连续Skip-gram模型是学习高质量distributed vector representations(分布向量表示)的有效方法,distributed vector represen
Distributed Representations of Words and Phrases and their Compositionality 论文简解
qq_41978896的博客
10-12 594
Distributed Representations of Words and Phrases and their Compositionality 论文简解摘要1.介绍2. Skip-gram 模型2.1 Hierarchical Softmax2.2 Negative Sampling2.3 Subsampling of Frequent Words3. 测试结果4. 总结 摘要 该文章的主要研究工作是在Skip-gram模型的基础上提出了几种模型的改进方法,可以提升原始Skip-gram模型的训练速
Distributed Representations of Words and Phrases and their Compositionality翻译与感悟
jokerxsy的博客
03-02 1083
paper地址: Distributed Representations of Words and Phrases and their Compositionality-Tomas Mikolov 翻译: 摘要 最近发布的连续型Skip-gram,对于学习高质量分布式向量表述,是一个非常搞笑的模型,它描述了大量精确的语法语义方面的词语关系。在这篇论文中,我们将陈述数个延展,将会推进向量的质量和训...
distributed representations of words and phrases and their compositionality
最新发布
03-16
分布式表示是指将单词和短语表示为向量,使得它们的含义可以通过向量之间的相似性来捕捉。这种表示方法可以通过神经网络等机器学习技术来学习。组合性是指短语的含义可以通过其组成部分的含义来推导出来。...
写文章

分类专栏

  • 超分 25篇
  • 深度学习 11篇
  • NLP 5篇
  • Meta-RL 10篇

最新评论

  • 超分之EDVR

    abababababhj: 公式2应该是计算对齐后的支持特征图上一点像素值的公式

  • 论文笔记之Stein变分梯度下降

    武汉大学-赵智博: 你好 源码链接,现在打不开了,可以再放一下源码吗

  • 论文笔记之TRPO

    barbara2008: 关于(1)的证明, V^pi(S)根据定义应该是策略pi下的所有折扣return的和的期望,本身已经是常量了,与采样没什么关系,对常量求期望还是常量

  • 强化学习之基于gym环境的DQN算法实战(Pytorch)

    error_u: 有了吗 俺也需要 呜呜

  • 超分之ESPCN

    nailixiaomianbao: 这个和反卷积的不同之处在哪里呢

最新文章

  • 超分之RVRT
  • 深度学习之DAT
  • 深度学习之SuperViT
2022年41篇
2021年37篇
2020年20篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为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 网站制作 网站优化