如何通过Embedding技术入门AI,开启深度学习的大门?
- 内容介绍
- 文章标签
- 相关推荐
先说说啥叫Embedding, 别慌
哈哈,这玩意儿听起来高大上,其实就是把“文字、图片、 换个思路。 用户ID”这些离散的东西,变成一堆数字。
你想啊,机器只能看数字,根本不懂“猫”是啥。
所以我们给它一个坐标,让它在高维空间里跑来跑去。
精辟。 不对不对,准确点说是把每个符号映射到一个稠密向量。
为什么要丢掉One‑hot?
早期大家用One‑hot,那是个一万维的向量,只有一个1,其他全是0。
后来啊呢?空间浪费得要死,而且“猫”和“狗”的距离跟“猫”和“冰箱”一样——全是正交。
害,这根本不能表达相似度。
于是有人想了个办法:让相近的词在向量里也靠得近。
从Word2Vec到大模型的进化
先说Word2Vec, 它是小模型时代的明星,用CBOW或者Skip‑gram学词的上下文关系。
好像有点意思,但只能给每个词一个固定向量,遇到“一刀切”的情况就尴尬了,大体上...。
再往后BERT、GPT这些大模型来了它们会根据句子里所有词的上下文来生成向量,我们都经历过...。
比如“苹果”在水果句子里和在手机句子里的向量,就完全不同——这叫上下文感知,你懂吧?
怎么把文字变成索引?
先有Tokenizer,把句子切成最小单元——可能是词,也可能是子词。
比如“unhappiness”,会被拆成“un”和 “happiness”。
也是醉了... 这个过程其实就是把语言翻译成机器能读的数字序列。
Embedding层到底干啥的?
想象一下你喂进去的是一串索引,比如。
拉倒吧... Embedding层内部有个巨大的矩阵,每一行对应一个索引的向量。
切中要害。 它会把12对应的行取出来再把345、678对应的行也取出来然后拼成一个三维张量。
这一步很关键,主要原因是后面的卷积或自注意力都只能处理数值矩阵。
图像Embedding也不例外
对于图片, 我们常用CNN或者Vision Transformer来提取特征,然后压缩成向量,实不相瞒...。
别犹豫... 两只长得差不多的小猫,它们的向量距离会很近,这就解释了以图搜图怎么实现的啦。
实际项目里Embedding怎么玩?
推荐系统:用户历史行为做成用户向量,商品属性做成商品向量,两者相似度高就推荐啦,我是深有体会。。
等着瞧。 E‑commerce、短视频平台都在背后偷偷用了这个技巧,才会精准推送内容。
PaiRwise检索与RAG
PaiRwise检索其实就是把你的问题转成向量,然后在海量文档库里找最近邻,心情复杂。。
找到了相关文档,把它们喂给大模型,让模型基于这些材料生成答案——这就是RAG,没耳听。。
A little code snippet for curious
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained
text = "Hello world"
ids = tokenizer.encode
print # 输出类似
# 假设 embedding_dim=768
# 接下来 embedding 层会把每个 id 映射为 768 维向量
怎么选embedding_dim?
维度太低会丢信息,太高又算力吃紧,一般看模型大小和任务需求来定。常见的有128、256、768甚至更高。
调参小技巧, 别忘了玩玩看
- L2 正则化:防止向量过大导致相似度失真;
- LRSchedule:Drop learning rate 能让嵌入更稳;
- PCA 可视化:- 把高维嵌入降到二维,看聚类效果;
- SVD 初始化:- 用统计共现矩阵做初始化,有时比随机更快收敛;
自我纠正一下:别只盯着指标跑,还得看业务意义!
end of story—但别停下来!
实际上... # 嗨,你已经掌握了 Embedding 的基本概念和实战要点。
# 接下来可以挑一个小项目:比如用 FastText 把中文新闻做词向量,看相似新闻是否聚在一起。
///
先说说啥叫Embedding, 别慌
哈哈,这玩意儿听起来高大上,其实就是把“文字、图片、 换个思路。 用户ID”这些离散的东西,变成一堆数字。
你想啊,机器只能看数字,根本不懂“猫”是啥。
所以我们给它一个坐标,让它在高维空间里跑来跑去。
精辟。 不对不对,准确点说是把每个符号映射到一个稠密向量。
为什么要丢掉One‑hot?
早期大家用One‑hot,那是个一万维的向量,只有一个1,其他全是0。
后来啊呢?空间浪费得要死,而且“猫”和“狗”的距离跟“猫”和“冰箱”一样——全是正交。
害,这根本不能表达相似度。
于是有人想了个办法:让相近的词在向量里也靠得近。
从Word2Vec到大模型的进化
先说Word2Vec, 它是小模型时代的明星,用CBOW或者Skip‑gram学词的上下文关系。
好像有点意思,但只能给每个词一个固定向量,遇到“一刀切”的情况就尴尬了,大体上...。
再往后BERT、GPT这些大模型来了它们会根据句子里所有词的上下文来生成向量,我们都经历过...。
比如“苹果”在水果句子里和在手机句子里的向量,就完全不同——这叫上下文感知,你懂吧?
怎么把文字变成索引?
先有Tokenizer,把句子切成最小单元——可能是词,也可能是子词。
比如“unhappiness”,会被拆成“un”和 “happiness”。
也是醉了... 这个过程其实就是把语言翻译成机器能读的数字序列。
Embedding层到底干啥的?
想象一下你喂进去的是一串索引,比如。
拉倒吧... Embedding层内部有个巨大的矩阵,每一行对应一个索引的向量。
切中要害。 它会把12对应的行取出来再把345、678对应的行也取出来然后拼成一个三维张量。
这一步很关键,主要原因是后面的卷积或自注意力都只能处理数值矩阵。
图像Embedding也不例外
对于图片, 我们常用CNN或者Vision Transformer来提取特征,然后压缩成向量,实不相瞒...。
别犹豫... 两只长得差不多的小猫,它们的向量距离会很近,这就解释了以图搜图怎么实现的啦。
实际项目里Embedding怎么玩?
推荐系统:用户历史行为做成用户向量,商品属性做成商品向量,两者相似度高就推荐啦,我是深有体会。。
等着瞧。 E‑commerce、短视频平台都在背后偷偷用了这个技巧,才会精准推送内容。
PaiRwise检索与RAG
PaiRwise检索其实就是把你的问题转成向量,然后在海量文档库里找最近邻,心情复杂。。
找到了相关文档,把它们喂给大模型,让模型基于这些材料生成答案——这就是RAG,没耳听。。
A little code snippet for curious
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained
text = "Hello world"
ids = tokenizer.encode
print # 输出类似
# 假设 embedding_dim=768
# 接下来 embedding 层会把每个 id 映射为 768 维向量
怎么选embedding_dim?
维度太低会丢信息,太高又算力吃紧,一般看模型大小和任务需求来定。常见的有128、256、768甚至更高。
调参小技巧, 别忘了玩玩看
- L2 正则化:防止向量过大导致相似度失真;
- LRSchedule:Drop learning rate 能让嵌入更稳;
- PCA 可视化:- 把高维嵌入降到二维,看聚类效果;
- SVD 初始化:- 用统计共现矩阵做初始化,有时比随机更快收敛;
自我纠正一下:别只盯着指标跑,还得看业务意义!
end of story—但别停下来!
实际上... # 嗨,你已经掌握了 Embedding 的基本概念和实战要点。
# 接下来可以挑一个小项目:比如用 FastText 把中文新闻做词向量,看相似新闻是否聚在一起。
///

