悠扬随风 发表于 2024-10-11 07:40:42

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

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

关键词提炼

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

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

2.1 焦点概念

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

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

嵌入方程在自然语言处理中扮演着“桥梁”的角色,它毗连了自然语言和机器学习算法,使得机器能够理解和处理人类的语言。就像桥梁毗连了两岸,使得人们能够方便地通行。
https://i-blog.csdnimg.cn/direct/3bdc84d6b8924fb1ab066f9131838450.png
第三节:公式探索与推演运算【重点在推导】

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​​               ​
同理,我们可以得到其他单词的词向量。
https://i-blog.csdnimg.cn/direct/c1f1323b39e54fc6952ff2cec7c77280.png
第四节:相似公式比对【重点在差异】

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

这段代码使用Python和TensorFlow库训练了一个简单的词嵌入模型,并绘制了词向量的散点图。通过可视化,我们可以直观地看到单词在向量空间中的分布。
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.manifold import TSNE

# Define the vocabulary and some sample sentences
vocabulary = ['apple', 'banana', 'cherry', 'dog', 'cat']
sentences = [
    "The apple is red",
    "The banana is yellow",
    "The cherry is red",
    "The dog is brown",
    "The cat is black"
]

# Convert sentences to indices
tokenized_sentences = [ for sentence in sentences]

# Define the embedding model using TensorFlow
embedding_dim = 3# 3-dimensional embeddings
model = tf.keras.Sequential([
    tf.keras.layers.Embedding(input_dim=len(vocabulary), output_dim=embedding_dim, input_length=5)
])

# Compile the model (not necessary for embedding generation, but useful for training)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')

# Get the embedding weights (this is the embedding matrix)
embedding_matrix = model.layers.get_weights()

# Print the embedding matrix
print("Embedding Matrix:\n", embedding_matrix)

# Use TSNE to reduce the dimensionality of the embedding vectors for visualization
tsne = TSNE(n_components=2, random_state=0)
embedding_vectors_2d = tsne.fit_transform(embedding_matrix)

# Create a DataFrame for visualization
import pandas as pd
df = pd.DataFrame(embedding_vectors_2d, columns=['x', 'y'])
df['word'] = vocabulary

# Visualize the results and beautify with Seaborn
sns.set_theme(style="whitegrid")
plt.figure(figsize=(10, 6))
sns.scatterplot(x='x', y='y', hue='word', data=df, palette='viridis', s=100)
plt.title('Word Embeddings Visualization')
plt.xlabel('x')
plt.ylabel('y')
plt.legend(title='Word')
plt.show()

# Printing more detailed output information
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.")

# Output the embedding vectors for each word
for word, vector in zip(vocabulary, embedding_matrix):
    print(f"Embedding vector for '{word}': {vector}")
输出内容描述嵌入矩阵打印了嵌入矩阵的数值。词向量散点图显示了单词在向量空间中的2D分布。图表标题、x轴标签、y轴标签和图例提供了图表的根本信息和说明。具体的输出信息(打印到控制台)提供了关于词向量散点图的具体表明和每个单词的嵌入向量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵