AI学习日记——嵌入(Embeddings)
一、举例:餐点推荐
1. 实际问题场景
假设我们正在开发一款餐点推荐应用,用户输入自己喜欢的餐点,应用会推荐相似的餐点。例如:"因为您喜欢煎饼,所以我们推荐可丽饼"。

数据准备:
-
收集5000种热门餐点数据集
-
包括罗宋汤、热狗、沙拉、披萨、沙瓦玛等
-
需要找到合适的数值表示方法
2. 独热编码(one-hot)的局限性
独热编码表示:
每种餐点用一个长度为5000的向量表示,只有对应位置为1,其他为0:
独热编码的问题:
权重数量爆炸:
-
输入向量维度:5000
-
第一隐藏层节点数:N
-
需要训练的参数:5000 × N
-
参数量随数据规模线性增长
计算资源挑战:
-
数据需求:参数越多,训练所需数据量越大
-
计算复杂度:超出硬件处理能力
-
内存占用:加速器内存需求巨大
-
设备端部署困难:难以在移动设备运行
二、嵌入的基本概念
1. 什么是嵌入
嵌入是稀疏数据的低维向量表示法,通过将高维空间投影到低维空间来发现数据的潜在结构。
核心思想:
-
用n个浮点数表示n维空间中的每个项
-
数值范围通常介于-1到1或0到1之间
-
显著降低数据维度,提升计算效率
2. 嵌入空间的理解
一维空间示例:"三明治度"维度

二维空间扩展:添加"甜点度"维度

-
苹果馅饼:(0.5, 0.3) - 中等三明治度,较高甜点度
-
热狗:(0.2, -0.5) - 较低三明治度,非甜点
-
沙瓦玛:(0.9, -0.6) - 高三明治度,非甜点
三维空间完善:添加"液体度"维度

-
罗宋汤:(0.0, -0.3, 0.9) - 非三明治,非甜点,高液体度
-
汤圆:(0.1, 0.8, 0.7) - 低三明治度,高甜点度,中高液体度
相似度计算:在嵌入空间中可以通过数学方法计算任意两项之间的距离,距离越近表示相似度越高
-
热狗与沙瓦玛:距离较近,相似度高
-
苹果馅饼与罗宋汤:距离较远,相似度低
三、静态嵌入技术
1. 传统嵌入方法
降维技术:
-
主成分分析(PCA):找到高度相关可合并的维度
-
其他数学方法:在低维空间捕获高维结构
神经网络训练嵌入:

在为目标任务训练神经网络时创建嵌入:
-
设置大小为d的隐藏层作为嵌入层
-
d表示隐藏层节点数和嵌入维度数
-
在训练过程中优化嵌入层参数
2. Word2Vec原理
基本概念:
Word2Vec通过预测词语上下文来学习词嵌入,假设在类似上下文中出现的词语在语义上相关。
训练示例:
-
"They rode a burro down into the Grand Canyon"
-
"They rode a horse down into the canyon"
-
表明"horse"和"burro"出现在类似上下文中,语义相关
静态嵌入特点:
-
每个词语有唯一的全局嵌入向量
-
适用于一般语言任务
-
但无法处理一词多义情况
四、上下文嵌入
1. 静态嵌入的局限
一词多义问题:
-
"Yeah":单独使用表示肯定,"Yeah, right"表示否定
-
"Post":可表示邮件、支柱、张贴、后期等不同含义
-
"Orange":既表示颜色又表示水果
无法结合语境:
静态嵌入为每个词语分配固定向量,无法根据上下文调整含义,导致语义理解不准确。
2. 上下文嵌入的优势
动态语义表示:
上下文嵌入为同一词语在不同上下文中生成不同的嵌入向量,更好地捕捉语义。
实现方法:
-
ELMo等模型:基于静态嵌入,通过周围词语信息进行转换
-
生成上下文相关的嵌入表示
应用扩展:
-
自然语言处理:理解词语在具体语境中的含义
-
计算机视觉:结合像素位置和相邻像素信息
-
多模态任务:融合不同类型的数据上下文
总结
本文探讨了嵌入技术在数据处理中的应用。首先分析了独热编码在高维数据场景下的局限性,指出其会导致参数爆炸和计算资源挑战。接着介绍了嵌入技术的基本概念,通过将高维数据投影到低维空间来发现潜在结构,并以餐点为例说明如何在低维空间表示和计算相似度。然后比较了静态嵌入(如Word2Vec)和上下文嵌入的区别,前者为每个项目分配固定向量,后者能根据上下文生成动态表示。最后指出上下文嵌入在多模态任务中的优势,能更准确地捕捉语义信息。嵌入技术通过降维和语义表示,有效解决了高维数据处理难题。
更多推荐




所有评论(0)