Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
book
提交
e729d137
B
book
项目概览
PaddlePaddle
/
book
通知
16
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
40
列表
看板
标记
里程碑
合并请求
37
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
B
book
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
40
Issue
40
列表
看板
标记
里程碑
合并请求
37
合并请求
37
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e729d137
编写于
7月 19, 2019
作者:
Y
Yibing Liu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update readme
上级
43d144e9
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
98 addition
and
98 deletion
+98
-98
04.word2vec/README.cn.md
04.word2vec/README.cn.md
+49
-49
04.word2vec/index.cn.html
04.word2vec/index.cn.html
+49
-49
未找到文件。
04.word2vec/README.cn.md
浏览文件 @
e729d137
...
@@ -29,7 +29,7 @@ One-hot vector虽然自然,但是用处有限。比如,在互联网广告系
...
@@ -29,7 +29,7 @@ One-hot vector虽然自然,但是用处有限。比如,在互联网广告系
词向量模型可以是概率模型、共生矩阵(co-occurrence matrix)模型或神经元网络模型。在用神经网络求词向量之前,传统做法是统计一个词语的共生矩阵$X$。$X$是一个$|V|
\t
imes |V|$ 大小的矩阵,$X_{ij}$表示在所有语料中,词汇表$V$(vocabulary)中第i个词和第j个词同时出现的词数,$|V|$为词汇表的大小。对$X$做矩阵分解(如奇异值分解,Singular Value Decomposition
\[
[
5
](
#参考文献
)
\]
),得到的$U$即视为所有词的词向量:
词向量模型可以是概率模型、共生矩阵(co-occurrence matrix)模型或神经元网络模型。在用神经网络求词向量之前,传统做法是统计一个词语的共生矩阵$X$。$X$是一个$|V|
\t
imes |V|$ 大小的矩阵,$X_{ij}$表示在所有语料中,词汇表$V$(vocabulary)中第i个词和第j个词同时出现的词数,$|V|$为词汇表的大小。对$X$做矩阵分解(如奇异值分解,Singular Value Decomposition
\[
[
5
](
#参考文献
)
\]
),得到的$U$即视为所有词的词向量:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn1.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn1.gif
?raw=true
"
><br/>
</p>
</p>
但这样的传统做法有很多问题:
但这样的传统做法有很多问题:
...
@@ -81,14 +81,14 @@ similarity: -0.0997506977351
...
@@ -81,14 +81,14 @@ similarity: -0.0997506977351
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn2.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn2.gif
?raw=true
"
><br/>
</p>
</p>
然而我们知道语句中的每个词出现的概率都与其前面的词紧密相关, 所以实际上通常用条件概率表示语言模型:
然而我们知道语句中的每个词出现的概率都与其前面的词紧密相关, 所以实际上通常用条件概率表示语言模型:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn3.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn3.gif
?raw=true
"
><br/>
</p>
</p>
...
@@ -102,14 +102,14 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -102,14 +102,14 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
我们在上文中已经讲到用条件概率建模语言模型,即一句话中第$t$个词的概率和该句话的前$t-1$个词相关。可实际上越远的词语其实对该词的影响越小,那么如果考虑一个n-gram, 每个词都只受其前面
`n-1`
个词的影响,则有:
我们在上文中已经讲到用条件概率建模语言模型,即一句话中第$t$个词的概率和该句话的前$t-1$个词相关。可实际上越远的词语其实对该词的影响越小,那么如果考虑一个n-gram, 每个词都只受其前面
`n-1`
个词的影响,则有:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn4.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn4.gif
?raw=true
"
><br/>
</p>
</p>
给定一些真实语料,这些语料中都是有意义的句子,N-gram模型的优化目标则是最大化目标函数:
给定一些真实语料,这些语料中都是有意义的句子,N-gram模型的优化目标则是最大化目标函数:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn5.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn5.gif
?raw=true
"
><br/>
</p>
</p>
其中$f(w_t, w_{t-1}, ..., w_{t-n+1})$表示根据历史n-1个词得到当前词$w_t$的条件概率,$R(
\t
heta)$表示参数正则项。
其中$f(w_t, w_{t-1}, ..., w_{t-n+1})$表示根据历史n-1个词得到当前词$w_t$的条件概率,$R(
\t
heta)$表示参数正则项。
...
@@ -127,7 +127,7 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -127,7 +127,7 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
-
然后所有词语的词向量拼接成一个大向量,并经过一个非线性映射得到历史词语的隐层表示:
-
然后所有词语的词向量拼接成一个大向量,并经过一个非线性映射得到历史词语的隐层表示:
<p
align=
"center"
>
<p
align=
"center"
>
<img src = "https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn6.gif"><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn6.gif
?raw=true
"
><br/>
</p>
</p>
其中,$x$为所有词语的词向量拼接成的大向量,表示文本历史特征;$
\t
heta$、$U$、$b_1$、$b_2$和$W$分别为词向量层到隐层连接的参数。$g$表示未经归一化的所有输出单词概率,$g_i$表示未经归一化的字典中第$i$个单词的输出概率。
其中,$x$为所有词语的词向量拼接成的大向量,表示文本历史特征;$
\t
heta$、$U$、$b_1$、$b_2$和$W$分别为词向量层到隐层连接的参数。$g$表示未经归一化的所有输出单词概率,$g_i$表示未经归一化的字典中第$i$个单词的输出概率。
...
@@ -135,13 +135,13 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -135,13 +135,13 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
-
根据softmax的定义,通过归一化$g_i$, 生成目标词$w_t$的概率为:
-
根据softmax的定义,通过归一化$g_i$, 生成目标词$w_t$的概率为:
<p
align=
"center"
>
<p
align=
"center"
>
<img src = "https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn7.gif"><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn7.gif
?raw=true
"
><br/>
</p>
</p>
-
整个网络的损失值(cost)为多类分类交叉熵,用公式表示为
-
整个网络的损失值(cost)为多类分类交叉熵,用公式表示为
<p
align=
"center"
>
<p
align=
"center"
>
<img src = "https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn8.gif"><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn8.gif
?raw=true
"
><br/>
</p>
</p>
其中$y_k^i$表示第$i$个样本第$k$类的真实标签(0或1),$
\t
ext{softmax}(g_k^i)$表示第i个样本第k类softmax输出的概率。
其中$y_k^i$表示第$i$个样本第$k$类的真实标签(0或1),$
\t
ext{softmax}(g_k^i)$表示第i个样本第k类softmax输出的概率。
...
@@ -160,7 +160,7 @@ CBOW模型通过一个词的上下文(各N个词)预测当前词。当N=2时
...
@@ -160,7 +160,7 @@ CBOW模型通过一个词的上下文(各N个词)预测当前词。当N=2时
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn9.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn9.gif
?raw=true
"
><br/>
</p>
</p>
其中$x_t$为第$t$个词的词向量,分类分数(score)向量 $z=U
*
context$,最终的分类$y$采用softmax,损失函数采用多类分类交叉熵。
其中$x_t$为第$t$个词的词向量,分类分数(score)向量 $z=U
*
context$,最终的分类$y$采用softmax,损失函数采用多类分类交叉熵。
...
...
04.word2vec/index.cn.html
浏览文件 @
e729d137
...
@@ -71,7 +71,7 @@ One-hot vector虽然自然,但是用处有限。比如,在互联网广告系
...
@@ -71,7 +71,7 @@ One-hot vector虽然自然,但是用处有限。比如,在互联网广告系
词向量模型可以是概率模型、共生矩阵(co-occurrence matrix)模型或神经元网络模型。在用神经网络求词向量之前,传统做法是统计一个词语的共生矩阵$X$。$X$是一个$|V| \times |V|$ 大小的矩阵,$X_{ij}$表示在所有语料中,词汇表$V$(vocabulary)中第i个词和第j个词同时出现的词数,$|V|$为词汇表的大小。对$X$做矩阵分解(如奇异值分解,Singular Value Decomposition \[[5](#参考文献)\]),得到的$U$即视为所有词的词向量:
词向量模型可以是概率模型、共生矩阵(co-occurrence matrix)模型或神经元网络模型。在用神经网络求词向量之前,传统做法是统计一个词语的共生矩阵$X$。$X$是一个$|V| \times |V|$ 大小的矩阵,$X_{ij}$表示在所有语料中,词汇表$V$(vocabulary)中第i个词和第j个词同时出现的词数,$|V|$为词汇表的大小。对$X$做矩阵分解(如奇异值分解,Singular Value Decomposition \[[5](#参考文献)\]),得到的$U$即视为所有词的词向量:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn1.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn1.gif
?raw=true
"
><br/>
</p>
</p>
但这样的传统做法有很多问题:
但这样的传统做法有很多问题:
...
@@ -123,14 +123,14 @@ similarity: -0.0997506977351
...
@@ -123,14 +123,14 @@ similarity: -0.0997506977351
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn2.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn2.gif
?raw=true
"
><br/>
</p>
</p>
然而我们知道语句中的每个词出现的概率都与其前面的词紧密相关, 所以实际上通常用条件概率表示语言模型:
然而我们知道语句中的每个词出现的概率都与其前面的词紧密相关, 所以实际上通常用条件概率表示语言模型:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn3.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn3.gif
?raw=true
"
><br/>
</p>
</p>
...
@@ -144,14 +144,14 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -144,14 +144,14 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
我们在上文中已经讲到用条件概率建模语言模型,即一句话中第$t$个词的概率和该句话的前$t-1$个词相关。可实际上越远的词语其实对该词的影响越小,那么如果考虑一个n-gram, 每个词都只受其前面`n-1`个词的影响,则有:
我们在上文中已经讲到用条件概率建模语言模型,即一句话中第$t$个词的概率和该句话的前$t-1$个词相关。可实际上越远的词语其实对该词的影响越小,那么如果考虑一个n-gram, 每个词都只受其前面`n-1`个词的影响,则有:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn4.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn4.gif
?raw=true
"
><br/>
</p>
</p>
给定一些真实语料,这些语料中都是有意义的句子,N-gram模型的优化目标则是最大化目标函数:
给定一些真实语料,这些语料中都是有意义的句子,N-gram模型的优化目标则是最大化目标函数:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn5.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn5.gif
?raw=true
"
><br/>
</p>
</p>
其中$f(w_t, w_{t-1}, ..., w_{t-n+1})$表示根据历史n-1个词得到当前词$w_t$的条件概率,$R(\theta)$表示参数正则项。
其中$f(w_t, w_{t-1}, ..., w_{t-n+1})$表示根据历史n-1个词得到当前词$w_t$的条件概率,$R(\theta)$表示参数正则项。
...
@@ -169,7 +169,7 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -169,7 +169,7 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
- 然后所有词语的词向量拼接成一个大向量,并经过一个非线性映射得到历史词语的隐层表示:
- 然后所有词语的词向量拼接成一个大向量,并经过一个非线性映射得到历史词语的隐层表示:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn6.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn6.gif
?raw=true
"
><br/>
</p>
</p>
其中,$x$为所有词语的词向量拼接成的大向量,表示文本历史特征;$\theta$、$U$、$b_1$、$b_2$和$W$分别为词向量层到隐层连接的参数。$g$表示未经归一化的所有输出单词概率,$g_i$表示未经归一化的字典中第$i$个单词的输出概率。
其中,$x$为所有词语的词向量拼接成的大向量,表示文本历史特征;$\theta$、$U$、$b_1$、$b_2$和$W$分别为词向量层到隐层连接的参数。$g$表示未经归一化的所有输出单词概率,$g_i$表示未经归一化的字典中第$i$个单词的输出概率。
...
@@ -177,13 +177,13 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
...
@@ -177,13 +177,13 @@ Yoshua Bengio等科学家就于2003年在著名论文 Neural Probabilistic Langu
- 根据softmax的定义,通过归一化$g_i$, 生成目标词$w_t$的概率为:
- 根据softmax的定义,通过归一化$g_i$, 生成目标词$w_t$的概率为:
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn7.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn7.gif
?raw=true
"
><br/>
</p>
</p>
- 整个网络的损失值(cost)为多类分类交叉熵,用公式表示为
- 整个网络的损失值(cost)为多类分类交叉熵,用公式表示为
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn8.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn8.gif
?raw=true
"
><br/>
</p>
</p>
其中$y_k^i$表示第$i$个样本第$k$类的真实标签(0或1),$\text{softmax}(g_k^i)$表示第i个样本第k类softmax输出的概率。
其中$y_k^i$表示第$i$个样本第$k$类的真实标签(0或1),$\text{softmax}(g_k^i)$表示第i个样本第k类softmax输出的概率。
...
@@ -202,7 +202,7 @@ CBOW模型通过一个词的上下文(各N个词)预测当前词。当N=2时
...
@@ -202,7 +202,7 @@ CBOW模型通过一个词的上下文(各N个词)预测当前词。当N=2时
<p
align=
"center"
>
<p
align=
"center"
>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn9.gif"
><br/>
<img
src =
"https://github.com/PaddlePaddle/book/blob/develop/04.word2vec/image/Eqn9.gif
?raw=true
"
><br/>
</p>
</p>
其中$x_t$为第$t$个词的词向量,分类分数(score)向量 $z=U*context$,最终的分类$y$采用softmax,损失函数采用多类分类交叉熵。
其中$x_t$为第$t$个词的词向量,分类分数(score)向量 $z=U*context$,最终的分类$y$采用softmax,损失函数采用多类分类交叉熵。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录