当前位置: 首页 > news >正文

网站开发程序排名做网站如何突出网站特色

网站开发程序排名,做网站如何突出网站特色,云南南网站开发,自建网站需要什么手续【万字长文】Word2Vec计算详解#xff08;一#xff09; 写在前面 本文用于记录本人学习NLP过程中#xff0c;学习Word2Vec部分时的详细过程#xff0c;本文与本人写的其他文章一样#xff0c;旨在给出Word2Vec模型中的详细计算过程#xff0c;包括每个模块的计算过程一 写在前面 本文用于记录本人学习NLP过程中学习Word2Vec部分时的详细过程本文与本人写的其他文章一样旨在给出Word2Vec模型中的详细计算过程包括每个模块的计算过程模块形状变化等最后给出了Word2Vec的两种优化方法----负采样与分层层次Softmax下面开始介绍。 写到一半时发现字数过多需要拆分文章QAQ那就分层三期把分别介绍CBOW模型Skip-gram模型和优化部分。 【万字长文】Word2Vec计算详解一markdown行 9000 【万字长文】Word2Vec计算详解二markdown行 12000 【万字长文】Word2Vec计算详解三markdown行 18000 背景 在自然语言处理NLP领域理解和表示单词之间的语义关系是一个长期存在的问题。传统上这一挑战通过诸如one-hot编码等简单方法来解决。 one-hot局限性 1. one-hot向量是高维稀疏向量: \textbf{one-hot向量是高维稀疏向量:} one-hot向量是高维稀疏向量: 在one-hot编码中每个单词都被表示为一个非常长的向量这个向量的长度等于词汇表中的单词总数。在这个向量中表示当前单词的位置被标记为1其余位置均为0。这种表示方法导致了极高的维度和稀疏性。例如如果词汇表包含10,000个单词每个单词就会被表示为一个有10,000个元素的向量其中只有一个元素是1其余都是0。 2. 无法捕获词之间的语义相似性: \textbf{无法捕获词之间的语义相似性:} 无法捕获词之间的语义相似性: 由于每个单词的向量在只有一个维度上有值而其他所有维度均为零因此任何两个不同的单词的向量之间的距离无论是欧氏距离、余弦相似性还是其他度量都是相同的。这意味着one-hot编码无法表达单词间的语义关系或相似性。例如“狗”和“猫”在现实世界中具有较高的语义相似性因为它们都是宠物但在one-hot编码中它们之间的距离与“狗”和“冰箱”之间的距离完全相同。 3. 无法利用上下文信息: \textbf{无法利用上下文信息:} 无法利用上下文信息: one-hot编码仅仅关注单词的标识忽略了单词在句子中的上下文环境。单词的语义往往依赖于其使用的上下文但是one-hot编码无法捕捉这种依赖关系。 随后更复杂的统计方法被开发出来用于解决one-hot向量出现的问题 待补充 o n e − h o t 到 W o r d 2 V e c 之间的一些统计方法 \textcolor{red}{待补充one-hot到Word2Vec之间的一些统计方法} 待补充one−hot到Word2Vec之间的一些统计方法。这些方法旨在通过分析词在大量文本中的共现信息来推断词义但这些方法往往计算量大效率低且仍然难以充分捕捉词义的丰富性。 常用的两种Word2Vec模型 2013年Google开源了一款用于词向量计算的工具——Word2Vec引起了工业界和学术界的关注。首先Word2Vec可以在百万数量级的词典和上亿的数据集上进行高效地训练其次该工具得到的训练结果——词向量word embedding可以很好地度量词与词之间的相似性。Word2Vec算法或模型其实指的是其背后用于计算word vector的 CBOW 模型和 Skip-gram 模型。Word2Vec 利用浅层神经网络从大量文本中学习低维且密集的词向量表示这些向量能够有效地捕捉词之间的语义和语法关系。与之前的方法相比Word2Vec 不仅提高了表示的质量还显著提升了训练速度和效率。Word2Vec 通过提供一种高效、有效的词表示方法解决了长期存在的词义表示问题其影响深远不仅改进了词义的捕捉能力也为 NLP 的进一步研究和应用开辟了新的道路。下面将具体介绍 Word2Vec 中的两个模型。 CBOW模型 CBOW(continuous bag-of-words) \textbf{CBOW(continuous bag-of-words)} CBOW(continuous bag-of-words)模型的核心思想是利用一个词的上下文即周围的词来预测这个词本身。在自然语言处理NLP领域理解单词的含义常常需要考虑其上下文因为上下文提供了关于单词用法和语义的重要线索。 模型结构 CBOW模型的输入是上下文文本单词的one-hot向量通过线性变换压缩成一个单词向量然后再通过一次线性变换得到一个单词得分表最后经过多分类得到要预测的单词。CBOW的模型结构如图下所示。 预处理 在正式介绍模型输入前需要简单介绍模型输入前的处理。给定一个语料库 text我们要将其处理成能够用于模型输入的 one-hot 向量。首先去重然后将单词与标点符号按读入顺序放入集合corpus并另外存储一份单词与索引直接查询的字典word_to_id 和 id_to_word。参考代码程序见附录Word2Vec一中的preprocess函数。 随后是将单词集合corpus也就是词汇表Vocabulary转换为 one-hot 表示具体函数如附录Word2Vec一中的convert_one_hot函数。 其中 corpus是单词集合vocab_size 是单词集合的大小也就是 len(corpus)。这样我们得到了语料库的 one-hot编码。 模型输入 在模型中将一个词的上下文词表示为独热编码one-hot encoding向量然后并作为模型的一个输入。上下文的词的多少取决于窗口大小 C C C例如当窗口大小为2时上下文为目标单词的前两个词和后两个词共4个词。于是我们的输入 X ( x i − c , x i − c 1 , … , x i − 1 , x i 1 , … , x i c ) ∈ R V × 2 C X (x_{i-c}, x_{i-c 1}, \dots, x_{i - 1}, x_{i 1}, \dots, x_{i c}) \in \mathbb{R}^{V \times 2C} X(xi−c​,xi−c1​,…,xi−1​,xi1​,…,xic​)∈RV×2C 其中 x i x_i xi​为目标单词其中 x i ∈ R V × 1 x_i \in \mathbb{R}^{V \times 1} xi​∈RV×1 X X X 。例如目标单词索引 i i i为 3 3 3时且窗口大小为 2 2 2时 X ( x 1 , x 2 , x 4 , x 5 ) X (x_1, x_2, x_4, x_5) X(x1​,x2​,x4​,x5​)。 权重输入层 在这一层我们将目标单词 x i x_i xi​的上下文的 one-hot 编码与隐藏层的权重输入矩阵 W W W 相乘再加上置偏值 b ∈ R D × 1 b \in \mathbb{R}^{D \times 1} b∈RD×1 得到 x j ′ x_j xj′​即 X j ′ W X j b X_j W X_j b Xj′​WXj​b 其中 x j ′ ∈ R D × 1 x_j \in \mathbb{R}^{D \times 1} xj′​∈RD×1 j ( i − C , i − C 1 , … , i − 1 , i 1 , … , i C ) j (i-C,i-C1,\dots,i-1,i1,\dots,iC) j(i−C,i−C1,…,i−1,i1,…,iC)。写成矩阵的形式为 X ′ W X b X WXb X′WXb 其中 X [ x i − C , x i − C 1 , … , x i − 1 , x i 1 , … , x i C ] X [x_{i-C}, x_{i-C1},\dots,x_{i-1}, x_{i1},\dots, x_{iC}] X[xi−C​,xi−C1​,…,xi−1​,xi1​,…,xiC​] X ′ [ x i − C ′ , x i − C 1 ′ , … , x i − 1 ′ , x i 1 ′ , … , x i C ′ ] X [x_{i-C}, x_{i-C1},\dots,x_{i-1}, x_{i1},\dots, x_{iC}] X′[xi−C′​,xi−C1′​,…,xi−1′​,xi1′​,…,xiC′​]。 加权平均层 我们将输入层得到的所有 X j ′ X_j Xj′​ 进行加权平均得到 h h h。 h ∑ j i − C , j ≠ i i C x j ′ 1 2 C ( x i − C ′ … x i − 1 ′ x i 1 ′ ⋯ x i C ′ ) h \sum\limits^{iC}_{j i-C,j \ne i} x_j \frac{1}{2C}(x_{i-C} \dots x_{i - 1} x_{i 1} \dots x_{i C}) hji−C,ji∑iC​xj′​2C1​(xi−C′​…xi−1′​xi1′​⋯xiC′​) 其中 C C C 是窗口大小 h ∈ R D × 1 h \in \mathbb{R}^{D \times 1} h∈RD×1。写成矩阵的形式为 h 1 2 C X ′ j ⃗ h \frac{1}{2C} X\vec{j} h2C1​X′j ​ 其中 j ⃗ [ 1 , 1 , … , 1 , 1 ] \vec{j}[1,1,\dots,1,1] j ​[1,1,…,1,1]为 2 C 2C 2C行 1 1 1列的向量。 权重输出层 我们将得到 h h h 与隐藏层的权重输出矩阵 W ′ W W′ 相乘再加上置偏值 b ′ ∈ R V × 1 b\in \mathbb{R}^{V \times 1} b′∈RV×1 得到每个单词得分的向量 P P P。 P ( P 1 , P 2 , … , P V ) T P ( P_1, P_2, \dots, P_V)^T P(P1​,P2​,…,PV​)T P i ∈ R P_i \in R Pi​∈R 表示为位置索引为 i i i 处的单词的得分。 P ∈ R V × 1 P \in \mathbb{R}^{V \times 1} P∈RV×1。写成矩阵的形式为 P W ′ h b ′ P Wh b PW′hb′ Softmax层 我们将输出层得到的的得分用 Softmax 处理为概率 P ′ P P′。 P ′ ( p 1 ′ , p 2 ′ , … , p V ′ ) T P (p_1, p_2, \dots, p_V)^T P′(p1′​,p2′​,…,pV′​)T p i ′ p_i pi′​ 表示位置索引为 i i i 处的单词的概率。其中 P ′ ∈ R V × 1 P \in \mathbb{R}^{V \times 1} P′∈RV×1。计算公式如下所示。 p i ′ softmax ( p i ) exp ⁡ ( p i ) ∑ k 1 V exp ⁡ ( p k ) p_i \text{softmax}(p_i) \frac{\exp(p_i)}{ \sum\limits_{k1}^{V} \exp(p_k)} pi′​softmax(pi​)k1∑V​exp(pk​)exp(pi​)​ 其中 P ( p 1 , p 2 , … , p V ) T P ( p_1, p_2, \dots, p_V)^T P(p1​,p2​,…,pV​)T p i p_i pi​ 为 P P P 中的某一项。 P ′ ( p 1 ′ , p 2 ′ , … , p V ′ ) T P (p_1, p_2, \dots, p_V)^T P′(p1′​,p2′​,…,pV′​)T p i ′ p_i pi′​ 为 P ′ P P′ 中的某一项。 模型输出 模型的输出是在 P ′ P P′ 中取出最大概率对应位置的值设为1其他位置设置为0我们将得到一个one-hot编码。从该one-hot编码我们可以找到对应的单词我们将其作为预测结果单词。这就是CBOW模型的输出。 简单的CBOW例子 下面给定一个例子来解释 CBOW 模型的计算。假设语料库为 text The cat plays in the garden, and the cat chases the mouse in the garden.我们使用预处理给处给出的函数 preprocess 和 convert_one_hot 进行处理分别得到以下结果。 index0123456789 x i x_i xi​ x 0 x_0 x0​ x 1 x_1 x1​ x 2 x_2 x2​ x 3 x_3 x3​ x 4 x_4 x4​ x 5 x_5 x5​ x 6 x_6 x6​ x 7 x_7 x7​ x 8 x_8 x8​ x 9 x_9 x9​wordthecatplaysingarden,andchasesmouse. preprocess 函数得到后的结果词汇表 由上表展示了词汇表的信息我们得到词汇表的大小 V 10 V 10 V10。下面是 转换得到的one-hot矩阵我们标记其为 X X X。 X X X 中对应的一列为相应索引单词的 one-hot向量即用 x i x_i xi​表示该索引位置为 i i i 的one-hot向量。例如 x i ( 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) x_i(0,1,0,0,0,0,0,0,0) xi​(0,1,0,0,0,0,0,0,0) 代表“the”。 X o n e h o t ( x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ) [ 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 ] X_{onehot} (x_0, x_1, x_2,x_3,x_4,x_5,x_6, x_7,x_8,x_9) \begin{bmatrix} 1000000000\\ 0100000000\\ 0010000000\\ 0001000000\\ 0000100000\\ 0000010000\\ 0000001000\\ 0000000100\\ 0000000010\\ 0000000001 \end{bmatrix} Xonehot​(x0​,x1​,x2​,x3​,x4​,x5​,x6​,x7​,x8​,x9​) ​1000000000​0100000000​0010000000​0001000000​0000100000​0000010000​0000001000​0000000100​0000000010​0000000001​ ​ 我们假设窗口大小 C 2 C 2 C2隐藏层的维数 D 4 D 4 D4 并且要给定 “plays” 的上下文进行预测。我们可以得到模型输入是 x 0 x_0 x0​ x 1 x_1 x1​ x 3 x_3 x3​ x 0 x_0 x0​对应单词分别为 the、cat、in、the。则 X ( x 0 , x 1 , x 3 , x 0 ) X (x_0, x_1, x_3, x_0) X(x0​,x1​,x3​,x0​)在下方展示。 我们对输入权重权重矩阵 W W W 进行初始化 W W W初始值是 [ 0 , 1 ) [0,1) [0,1)之间的随机数包含0不包含1。 X ( x 0 , x 1 , x 3 , x 0 ) [ 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] , b [ 0.0513 − 1.1577 0.8167 0.4336 ] X (x_0, x_1, x_3, x_0) \begin{bmatrix} 1001\\ 0100\\ 0000\\ 0010\\ 0000\\ 0000\\ 0000\\ 0000\\ 0000\\ 0000 \end{bmatrix} , b \begin{bmatrix} 0.0513 \\ -1.1577\\ 0.8167 \\ 0.4336 \end{bmatrix} X(x0​,x1​,x3​,x0​) ​1000000000​0100000000​0001000000​1000000000​ ​,b ​0.0513−1.15770.81670.4336​ ​ W [ − 0.2047 0.4789 − 0.5194 − 0.5557 1.9657 1.3934 0.0929 0.2817 0.769 1.2464 1.0071 − 1.2962 0.2749 0.2289 1.3529 0.8864 − 2.0016 − 0.3718 1.669 − 0.4385 − 0.5397 0.4769 3.2489 − 1.0212 − 0.577 0.1241 0.3026 0.5237 0.0009 1.3438 − 0.7135 − 0.8311 − 2.3702 − 1.8607 − 0.8607 0.5601 − 1.2659 0.1198 − 1.0635 0.3328 ] W \begin{bmatrix} -0.2047 0.4789 -0.5194 -0.5557 1.9657 1.3934 0.0929 0.2817 0.769 1.2464\\ 1.0071 -1.2962 0.2749 0.2289 1.3529 0.8864 -2.0016 -0.3718 1.669 -0.4385\\ -0.5397 0.4769 3.2489 -1.0212 -0.577 0.1241 0.3026 0.5237 0.0009 1.3438\\ -0.7135 -0.8311 -2.3702 -1.8607 -0.8607 0.5601 -1.2659 0.1198 -1.0635 0.3328 \end{bmatrix} W ​−0.20471.0071−0.5397−0.7135​0.4789−1.29620.4769−0.8311​−0.51940.27493.2489−2.3702​−0.55570.2289−1.0212−1.8607​1.96571.3529−0.577−0.8607​1.39340.88640.12410.5601​0.0929−2.00160.3026−1.2659​0.2817−0.37180.52370.1198​0.7691.6690.0009−1.0635​1.2464−0.43851.34380.3328​ ​ 接下来是权重输入层的运算。我们将 W W W 与 X X X 进行矩阵乘法运算再加上置偏值 b b b计算得到 X ′ X X′。 X ′ W X b [ − 0.1533 0.5302 − 0.5043 − 0.1533 − 0.1506 − 2.4539 − 0.9288 − 0.1506 0.277 1.2936 − 0.2044 0.277 − 0.2798 − 0.3974 − 1.427 − 0.2798 ] X WX b \begin{bmatrix} -0.1533 0.5302 -0.5043 -0.1533\\ -0.1506 -2.4539 -0.9288 -0.1506\\ 0.277 1.2936 -0.2044 0.277 \\ -0.2798 -0.3974 -1.427 -0.2798 \end{bmatrix} X′WXb ​−0.1533−0.15060.277−0.2798​0.5302−2.45391.2936−0.3974​−0.5043−0.9288−0.2044−1.427​−0.1533−0.15060.277−0.2798​ ​ 接下来进行加权平均层的计算也就是将 X ′ X X′每行中的 4 4 4个值进行相加得到 4 × 1 4 \times 1 4×1 的向量 h h h 。 h 1 4 X ′ 1 4 [ − 0.1533 0.5302 − 0.5043 − 0.1533 − 0.1506 − 2.4539 − 0.9288 − 0.1506 0.277 1.2936 − 0.2044 0.277 − 0.2798 − 0.3974 − 1.427 − 0.2798 ] [ − 0.0701 − 0.9209 0.4108 − 0.596 ] h \frac{1}{4} X \frac{1}{4} \begin{bmatrix} -0.1533 0.5302 - 0.5043 - 0.1533\\ -0.1506 - 2.4539 -0.9288 -0.1506 \\ 0.277 1.2936 - 0.2044 0.277\\ -0.2798 -0.3974 -1.427 -0.2798 \end{bmatrix} \begin{bmatrix} -0.0701\\ -0.9209\\ 0.4108\\ -0.596 \end{bmatrix} h41​X′41​ ​−0.15330.5302−0.5043−0.1533−0.1506−2.4539−0.9288−0.15060.2771.2936−0.20440.277−0.2798−0.3974−1.427−0.2798​ ​ ​−0.0701−0.92090.4108−0.596​ ​ 接下来是权重输出层。我们将 W ′ W W′ 进行初始化。然后进行运算 W ′ h Wh W′h然后再加上置偏值 b ′ b b′ 得到评分 P P P。 W ′ [ − 2.3594 − 0.1995 − 1.5419 − 0.9707 − 1.307 0.2863 0.3779 − 0.7538 0.3312 1.3497 0.0698 0.2466 − 0.0118 1.0048 1.3271 − 0.9192 − 1.5491 0.0221 0.7583 − 0.6605 0.8625 − 0.01 0.05 0.6702 0.8529 − 0.9558 − 0.0234 − 2.3042 − 0.6524 − 1.2183 − 1.3326 1.0746 0.7236 0.69 1.0015 − 0.503 − 0.6222 − 0.9211 − 0.7262 0.2228 ] , b ′ [ 1.0107 1.8248 − 0.9975 0.85059 − 0.1315 0.9124 0.1882 2.1694 − 0.1149 2.0037 ] W \begin{bmatrix} -2.3594 -0.1995 -1.5419 -0.9707\\ -1.307 0.2863 0.3779 -0.7538\\ 0.3312 1.3497 0.0698 0.2466\\ -0.0118 1.0048 1.3271 -0.9192\\ -1.5491 0.0221 0.7583 -0.6605\\ 0.8625 -0.01 0.05 0.6702\\ 0.8529 -0.9558 -0.0234 -2.3042\\ -0.6524 -1.2183 -1.3326 1.0746\\ 0.7236 0.69 1.0015 -0.503 \\ -0.6222 -0.9211 -0.7262 0.2228 \end{bmatrix}, b \begin{bmatrix} 1.0107\\ 1.8248\\ -0.9975\\ 0.85059 \\ -0.1315\\ 0.9124\\ 0.1882\\ 2.1694\\ -0.1149 \\ 2.0037 \end{bmatrix} W′ ​−2.3594−1.3070.3312−0.0118−1.54910.86250.8529−0.65240.7236−0.6222​−0.19950.28631.34971.00480.0221−0.01−0.9558−1.21830.69−0.9211​−1.54190.37790.06981.32710.75830.05−0.0234−1.33261.0015−0.7262​−0.9707−0.75380.2466−0.9192−0.66050.6702−2.30421.0746−0.5030.2228​ ​,b′ ​1.01071.8248−0.99750.85059−0.13150.91240.18822.1694−0.11492.0037​ ​ P W ′ h b ′ [ 1.0107 1.8248 − 0.9975 0.8505 − 0.1315 0.9124 0.1882 2.1694 − 0.1149 2.0037 ] P Wh b \begin{bmatrix} 1.0107 \\ 1.8248 \\ -0.9975 \\ 0.8505 \\ -0.1315\\ 0.9124 \\ 0.1882 \\ 2.1694 \\ -0.1149 \\ 2.0037 \end{bmatrix} PW′hb′ ​1.01071.8248−0.99750.8505−0.13150.91240.18822.1694−0.11492.0037​ ​ 接下来是 Softmax 层计算公式如下公式所示计算过程如下 P ′ S o f t m a x ( P ) P ∑ k 1 V exp ⁡ ( P k ) [ e 1.0107 e 1.8248 e − 0.9975 e 0.8505 e − 0.1315 e 0.9124 e 0.1882 e 2.1694 e − 0.1149 e 2.0037 ] T e 1.0107 e 1.8248 e − 0.9975 e 0.8505 e − 0.1315 e 0.9124 e 0.1882 e 2.1694 e − 0.1149 e 2.0037 [ 0.0714 0.185 0.0017 0.0536 0.0375 0.0313 0.2076 0.1661 0.0177 0.2276 ] T P Softmax(P) \frac{P}{\sum\limits_{k1}^{V} \exp(P_k)} \frac{ \begin{bmatrix} e^{1.0107} e^{1.8248} e^{-0.9975} e^{0.8505} e^{-0.1315} e^{0.9124} e^{0.1882} e^{2.1694} e^{-0.1149} e^{2.0037} \end{bmatrix}^T}{e^{1.0107} e^{1.8248} e^{-0.9975} e^{0.8505} e^{-0.1315} e^{0.9124} e^{0.1882} e^{2.1694} e^{-0.1149} e^{2.0037}} \begin{bmatrix} 0.0714 0.185 0.0017 0.0536 0.0375 0.0313 0.2076 0.1661 0.0177 0.2276 \end{bmatrix}^T P′Softmax(P)k1∑V​exp(Pk​)P​e1.0107e1.8248e−0.9975e0.8505e−0.1315e0.9124e0.1882e2.1694e−0.1149e2.0037[e1.0107​e1.8248​e−0.9975​e0.8505​e−0.1315​e0.9124​e0.1882​e2.1694​e−0.1149​e2.0037​]T​[0.0714​0.185​0.0017​0.0536​0.0375​0.0313​0.2076​0.1661​0.0177​0.2276​]T 根据 P ′ P P′我们了解到概率最大的值为 0.2276 0.2276 0.2276也就是索引位置在 9 9 9位置的单词对应的one-hot向量为 [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ] T [0,0,0,0,0,0,0,0,0,1]^T [0,0,0,0,0,0,0,0,0,1]T也就是单词 “.”句号。于是我们输出预测的单词是 “.”句号。 下面依据上面模型结构中的例子继续用来解释损失函数的计算。 损失函数 损失函数是在 CBOW 模型结构中的 CrossEntropyError 模块中意为计算交叉熵损失。交叉熵损失的计算公式会在下面展示。CrossEntropyError 的输入是 Softmax 层计算得到的概率向量 P ′ P P′和正确的监督标签 T T T 其中 P ′ ( P 1 ′ , P 2 ′ , … , P V ) T P (P_1, P_2, \dots, P_V)^T P′(P1′​,P2′​,…,PV​)T正确的监督标签 T ( t 1 , t 2 , … , t V ) T T (t_1, t_2, \dots, t_V)^T T(t1​,t2​,…,tV​)T 就是正确答案单词的 one-hot 向量。 Loss − ∑ i 1 V t i log ⁡ ( P i ′ ) \text{Loss} - \sum_{i 1}^{V} t_i\log(P_i) Loss−i1∑V​ti​log(Pi′​) 这里我们可以直观地进行理解one-hot 向量在正确的索引位置上才是 1 其他位置都是 0 那么上面的公式表示提取出正确答案的概率由于输出是概率取值值在 [0,1]之间在使用 log 函数的时候得到值是负的而且概率越高log 后的值越大取负号可以很好的表示损失。 小结 CBOW 模型训练的基本步骤包括 1.将上下文词进行 one-hot 表征作为模型的输入 X ( x i − C , x i − C 1 , … , x i − 1 , x i , … , x i C − 1 , x i C ) ∈ R V × 2 C X (x_{i-C},x_{i-C1},\dots, x_{i-1}, x_{i}, \dots, x_{iC-1}, x_{iC})\in \mathbb{R}^{V \times 2C} X(xi−C​,xi−C1​,…,xi−1​,xi​,…,xiC−1​,xiC​)∈RV×2C 其中 i i i为目标单词的位置词 C C C为上下文单词数量 V V V为汇表的维度 2.然后将所有上下文词汇的 one-hot 向量分别乘以权重输入层的权重输入矩阵 W ∈ R D × V W \in \mathbb{R}^{D \times V} W∈RD×V 在加上置偏值 b b b得到加权平均层输入 X ′ ∈ R V × 2 C X \in \mathbb{R}^{V \times 2C} X′∈RV×2C即 X ′ W X b X WX b X′WXb 3.将上一步得到的 X ′ X X′对各个列向量 x i x_i xi​相加取平均作为隐藏层向量 h ∈ R D × 1 h \in \mathbb{R}^{D \times 1} h∈RD×1即 h 1 2 C X ′ j ⃗ h \frac{1}{2C} X\vec{j} h2C1​X′j ​ 其中 D D D 为隐藏层的维数 j ⃗ [ 1 , 1 , … , 1 , 1 ] \vec{j}[1,1,\dots,1,1] j ​[1,1,…,1,1]为 2 C 2C 2C行 1 1 1列的向量。 4.随后将隐藏层向量 h h h 乘以隐藏层到输出层的权重 W ′ W W′再加上置偏值 b ′ b b′得到单词得分向量 P ∈ R V × 1 P \in \mathbb{R}^{V \times 1} P∈RV×1即 P W ′ h b ′ P Wh b PW′hb′ 5.将计算得到的得分向量 P P P通过 Softmax 激活处理得到 V V V 维的概率分布 P ′ ∈ R V × 1 P \in \mathbb{R}^{V \times 1} P′∈RV×1即 P ′ Softmax ( P ) P \text{Softmax}(P) P′Softmax(P) 6.通过概率分布取概率最大的索引作为预测的目标词。通过概率分布和one-hot 监督标签用交叉熵损失计算损失。 我们的目标是通过梯度下降让损失函数变小使模型学习到如何根据上下文的信息推断出最可能的目标词训练结束得到的 W W W 或 W ′ W W′ 作为训练的副产物就是我们的词向量矩阵。 附录 预处理的参考程序代码 def preprocess(text):text text.lower()text text.replace(., .)text text.replace(,, ,)text text.replace(!, !)words text.split( )word_to_id {}id_to_word {}for word in words:if word not in word_to_id:new_id len(word_to_id)word_to_id[word] new_idid_to_word[new_id] wordcorpus np.array([word_to_id[w] for w in words])return corpus, word_to_id, id_to_word 预处理转换为one-hot表示程序代码 def convert_one_hot(corpus, vocab_size): N corpus.shape[0] if corpus.ndim 1:one_hot np.zeros((N, vocab_size), dtypenp.int32)for idx, word_id in enumerate(corpus):one_hot[idx, word_id] 1 elif corpus.ndim 2:C corpus.shape[1]one_hot np.zeros((N, C, vocab_size), dtypenp.int32)for idx_0, word_ids in enumerate(corpus):for idx_1, word_id in enumerate(word_ids):one_hot[idx_0, idx_1, word_id] 1 return one_hot其中 corpus是单词集合vocab_size 是单词集合的大小也就是 len(corpus)。
文章转载自:
http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn
http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn
http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn
http://www.morning.prsxj.cn.gov.cn.prsxj.cn
http://www.morning.kkhf.cn.gov.cn.kkhf.cn
http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn
http://www.morning.wjlnz.cn.gov.cn.wjlnz.cn
http://www.morning.nykzl.cn.gov.cn.nykzl.cn
http://www.morning.scrnt.cn.gov.cn.scrnt.cn
http://www.morning.wgdnd.cn.gov.cn.wgdnd.cn
http://www.morning.stcds.cn.gov.cn.stcds.cn
http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn
http://www.morning.hnkkf.cn.gov.cn.hnkkf.cn
http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn
http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn
http://www.morning.byxs.cn.gov.cn.byxs.cn
http://www.morning.srsln.cn.gov.cn.srsln.cn
http://www.morning.nptls.cn.gov.cn.nptls.cn
http://www.morning.jycr.cn.gov.cn.jycr.cn
http://www.morning.jmlgk.cn.gov.cn.jmlgk.cn
http://www.morning.qxxj.cn.gov.cn.qxxj.cn
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn
http://www.morning.nmfxs.cn.gov.cn.nmfxs.cn
http://www.morning.nclbk.cn.gov.cn.nclbk.cn
http://www.morning.bygyd.cn.gov.cn.bygyd.cn
http://www.morning.bsxws.cn.gov.cn.bsxws.cn
http://www.morning.tqbyw.cn.gov.cn.tqbyw.cn
http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn
http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn
http://www.morning.kbyp.cn.gov.cn.kbyp.cn
http://www.morning.bpmfn.cn.gov.cn.bpmfn.cn
http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn
http://www.morning.mpflb.cn.gov.cn.mpflb.cn
http://www.morning.oioini.com.gov.cn.oioini.com
http://www.morning.mydgr.cn.gov.cn.mydgr.cn
http://www.morning.mtxrq.cn.gov.cn.mtxrq.cn
http://www.morning.ybnps.cn.gov.cn.ybnps.cn
http://www.morning.kbyp.cn.gov.cn.kbyp.cn
http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn
http://www.morning.crsnb.cn.gov.cn.crsnb.cn
http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn
http://www.morning.aishuxue.com.cn.gov.cn.aishuxue.com.cn
http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn
http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn
http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn
http://www.morning.mmtjk.cn.gov.cn.mmtjk.cn
http://www.morning.mbmtn.cn.gov.cn.mbmtn.cn
http://www.morning.psxwc.cn.gov.cn.psxwc.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn
http://www.morning.mzjbz.cn.gov.cn.mzjbz.cn
http://www.morning.klwxh.cn.gov.cn.klwxh.cn
http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn
http://www.morning.nykzl.cn.gov.cn.nykzl.cn
http://www.morning.wwkft.cn.gov.cn.wwkft.cn
http://www.morning.rbkml.cn.gov.cn.rbkml.cn
http://www.morning.kjmcq.cn.gov.cn.kjmcq.cn
http://www.morning.fjptn.cn.gov.cn.fjptn.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.knswz.cn.gov.cn.knswz.cn
http://www.morning.mphfn.cn.gov.cn.mphfn.cn
http://www.morning.w58hje.cn.gov.cn.w58hje.cn
http://www.morning.krhkn.cn.gov.cn.krhkn.cn
http://www.morning.rbyz.cn.gov.cn.rbyz.cn
http://www.morning.lcjw.cn.gov.cn.lcjw.cn
http://www.morning.ypktc.cn.gov.cn.ypktc.cn
http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.smxyw.cn.gov.cn.smxyw.cn
http://www.morning.kfhm.cn.gov.cn.kfhm.cn
http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com
http://www.morning.dmthy.cn.gov.cn.dmthy.cn
http://www.morning.nktxr.cn.gov.cn.nktxr.cn
http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn
http://www.morning.knlyl.cn.gov.cn.knlyl.cn
http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn
http://www.tj-hxxt.cn/news/261948.html

相关文章:

  • 网站改版seo广西建设人力资源网
  • 技术支持 东莞网站建设传送带镇江建工建设集团网站
  • 做电影网站需多大的空间建设网站最好的软件
  • 电脑可以做服务器部署网站吗国家icp备案查询系统
  • wordpress站点统计网上做任务网站有哪些内容
  • 上海网站seo策划手机网站怎么做SEO优化
  • 定制网站开发接私活企业公众号
  • seo 哪些媒体网站可以发新闻找美工做网站多少钱
  • 淮北建设机械网站龙岩网站建设大概费用
  • 七星彩的网站怎么做的wordpress的安装过程
  • 网络规划与优化技术学什么上海板块做企业优化的公司
  • 网站推广行业有那些猎头做单的网站
  • ps做图 游戏下载网站富平网站建设
  • 河南微网站建设公司哪家好四川成都设计公司
  • 如何制作外贸网站自媒体发布平台有哪些
  • vs做网站时怎么弹出窗口做网站优化哪家好
  • 淘宝优惠网站怎么做服务公司起名
  • 网络品牌维护厦门网站关键词优化
  • 网站 php连接mysql 代码青岛做网站定制
  • 做hmtl的基本网站河南省建设监理协会网站
  • 大连 网站开发少儿编程线下培训机构排名前十
  • 网站后台怎么换图片一个网站如何做cdn加速
  • 鲜花网站建设的目标小网站链接怎么找
  • 中国建设信用卡积分兑换网站建筑企业名单和电话
  • 专业做网站优化价格wordpress api 插件
  • wordpress搭建下载站点学校网站logo怎么做
  • 网站流量50g网站解析需要多长时间
  • 建站公司接单长春网站设计哪家好
  • 网站建设制作要学什么网站源码上传到哪个文件夹
  • 广东网站建设服务商广水网站设计