【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵 ...

打印 上一主题 下一主题

主题 800|帖子 800|积分 2400

【普通理解】嵌入(Embedding)方程——自然语言处理的数学灵魂

关键词提炼

#嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet
第一节:嵌入方程的类比与焦点概念【尽大概普通】

   嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学情势,即向量。
正如翻译机将一种语言转换成另一种语言,嵌入方程将自然语言转换成向量语言,使得机器能够举行后续的处理和分析。
  第二节:嵌入方程的焦点概念与应用

2.1 焦点概念

焦点概念界说比喻或表明词向量(V)代表单词在向量空间中的表现,每个单词对应一个唯一的向量。就像每个人都有自己的身份证,每个单词也有一个独特的向量标识。嵌入矩阵(E)一个包罗全部词向量的矩阵,每一行代表一个单词的向量。就像一本词典,每一页都记载了一个单词的信息。上下文窗口(C)在训练词向量时,考虑的单词周围的其他单词的范围。就像看一个字,不仅要看这个字自己,还要看它前后的字来理解它的意思。 2.2 优势与劣势【重点在劣势】

方面描述优势能够将自然语言转换成机器可理解的数学情势,为后续的机器学习算法提供输入。能够捕获单词之间的语义关系,使得机器能够举行更复杂的语言处理使命。劣势嵌入方程的选择和训练过程较为复杂,必要大量的数据和计算资源。对于稀有词或新词,大概无法得到正确的向量表现。 2.3 与自然语言处理的类比

嵌入方程在自然语言处理中扮演着“桥梁”的角色,它毗连了自然语言和机器学习算法,使得机器能够理解和处理人类的语言。就像桥梁毗连了两岸,使得人们能够方便地通行。

第三节:公式探索与推演运算【重点在推导】

3.1 嵌入方程的根本情势

嵌入方程的根本情势可以表现为:
                                         V                            =                            E                            ⋅                            W                                  V = E \cdot W                     V=E⋅W
此中,                                   V                              V                  V 是词向量的矩阵,                                   E                              E                  E 是嵌入矩阵,                                   W                              W                  W 是单词的one-hot编码矩阵。
3.2 具体实例与推演【尽大概具体全面】

假设我们有一个包罗三个单词的词典:{“apple”, “banana”, “cherry”},每个单词用一个3维的向量表现。那么,我们的嵌入矩阵                                    E                              E                  E 可以表现为:
                                         E                            =                                       [                                                                                                     e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 1                                                                                                                                            e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 2                                                                                                                                            e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 3                                                                                                                                                                  e                                                               b                                                 a                                                 n                                                 a                                                 n                                                 a                                                 1                                                                                                                                            e                                                               b                                                 a                                                 n                                                 a                                                 n                                                 a                                                 2                                                                                                                                            e                                                               b                                                 a                                                 n                                                 a                                                 n                                                 a                                                 3                                                                                                                                                                  e                                                               c                                                 h                                                 e                                                 r                                                 r                                                 y                                                 1                                                                                                                                            e                                                               c                                                 h                                                 e                                                 r                                                 r                                                 y                                                 2                                                                                                                                            e                                                               c                                                 h                                                 e                                                 r                                                 r                                                 y                                                 3                                                                                                                ]                                            E = \begin{bmatrix} e_{apple1} & e_{apple2} & e_{apple3} \\ e_{banana1} & e_{banana2} & e_{banana3} \\ e_{cherry1} & e_{cherry2} & e_{cherry3} \end{bmatrix}                     E=               ​eapple1​ebanana1​echerry1​​eapple2​ebanana2​echerry2​​eapple3​ebanana3​echerry3​​               ​
对于单词 “apple”,其one-hot编码                                              W                                       a                               p                               p                               l                               e                                                 W_{apple}                  Wapple​ 为:
                                                    W                                           a                                  p                                  p                                  l                                  e                                                 =                                       [                                                                                     1                                                                                                                   0                                                                                                                   0                                                                                 ]                                            W_{apple} = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}                     Wapple​=               ​100​               ​
那么,单词 “apple” 的词向量                                              V                                       a                               p                               p                               l                               e                                                 V_{apple}                  Vapple​ 可以通过嵌入方程计算得到:
                                                    V                                           a                                  p                                  p                                  l                                  e                                                 =                            E                            ⋅                                       W                                           a                                  p                                  p                                  l                                  e                                                 =                                       [                                                                                                     e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 1                                                                                                                                                                  e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 2                                                                                                                                                                  e                                                               a                                                 p                                                 p                                                 l                                                 e                                                 3                                                                                                                ]                                            V_{apple} = E \cdot W_{apple} = \begin{bmatrix} e_{apple1} \\ e_{apple2} \\ e_{apple3} \end{bmatrix}                     Vapple​=E⋅Wapple​=               ​eapple1​eapple2​eapple3​​               ​
同理,我们可以得到其他单词的词向量。

第四节:相似公式比对【重点在差异】

公式/模型共同点差异点嵌入方程都涉及将文本转换成向量表现。嵌入方程专注于单词或短语的向量表现,用于自然语言处理。词袋模型(Bag-of-Words)词袋模型也是将文本转换成向量,但它是基于单词出现的频率,而嵌入方程考虑的是单词的语义关系。TF-IDFTF-IDF也是文本向量化的一种方法,但它更侧重于单词在文档中的重要性,而嵌入方程更侧重于单词之间的语义关系。 第五节:焦点代码与可视化

这段代码使用Python和TensorFlow库训练了一个简单的词嵌入模型,并绘制了词向量的散点图。通过可视化,我们可以直观地看到单词在向量空间中的分布。
  1. import tensorflow as tf
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns
  5. from sklearn.manifold import TSNE
  6. # Define the vocabulary and some sample sentences
  7. vocabulary = ['apple', 'banana', 'cherry', 'dog', 'cat']
  8. sentences = [
  9.     "The apple is red",
  10.     "The banana is yellow",
  11.     "The cherry is red",
  12.     "The dog is brown",
  13.     "The cat is black"
  14. ]
  15. # Convert sentences to indices
  16. tokenized_sentences = [[vocabulary.index(word) for word in sentence.split()] for sentence in sentences]
  17. # Define the embedding model using TensorFlow
  18. embedding_dim = 3  # 3-dimensional embeddings
  19. model = tf.keras.Sequential([
  20.     tf.keras.layers.Embedding(input_dim=len(vocabulary), output_dim=embedding_dim, input_length=5)
  21. ])
  22. # Compile the model (not necessary for embedding generation, but useful for training)
  23. model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
  24. # Get the embedding weights (this is the embedding matrix)
  25. embedding_matrix = model.layers[0].get_weights()[0]
  26. # Print the embedding matrix
  27. print("Embedding Matrix:\n", embedding_matrix)
  28. # Use TSNE to reduce the dimensionality of the embedding vectors for visualization
  29. tsne = TSNE(n_components=2, random_state=0)
  30. embedding_vectors_2d = tsne.fit_transform(embedding_matrix)
  31. # Create a DataFrame for visualization
  32. import pandas as pd
  33. df = pd.DataFrame(embedding_vectors_2d, columns=['x', 'y'])
  34. df['word'] = vocabulary
  35. # Visualize the results and beautify with Seaborn
  36. sns.set_theme(style="whitegrid")
  37. plt.figure(figsize=(10, 6))
  38. sns.scatterplot(x='x', y='y', hue='word', data=df, palette='viridis', s=100)
  39. plt.title('Word Embeddings Visualization')
  40. plt.xlabel('x')
  41. plt.ylabel('y')
  42. plt.legend(title='Word')
  43. plt.show()
  44. # Printing more detailed output information
  45. print("\nWord Embeddings Visualization has been generated and displayed.\nEach point in the scatter plot represents a word,\nand its position is determined by its embedding vector.")
  46. # Output the embedding vectors for each word
  47. for word, vector in zip(vocabulary, embedding_matrix):
  48.     print(f"Embedding vector for '{word}': {vector}")
复制代码
输出内容描述嵌入矩阵打印了嵌入矩阵的数值。词向量散点图显示了单词在向量空间中的2D分布。图表标题、x轴标签、y轴标签和图例提供了图表的根本信息和说明。具体的输出信息(打印到控制台)提供了关于词向量散点图的具体表明和每个单词的嵌入向量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表