Embedding:从文本到推荐的语义桥梁
约 1942 字大约 6 分钟
2025-06-12
在推荐系统的远古时代,计算机眼里的世界是离散且无情的。它如何识别一个商品?答案是:One-Hot编码。
想象一个拥有100万商品的大型电商平台:
- iPhone 14 的编码可能是
[0, 0, ..., 1, ..., 0, 0]
(在第8888个位置是1) - 华为 Mate 60 的编码可能是
[0, 1, ..., 0, ..., 0, 0]
(在第12345个位置是1) - 一本《三体》 的编码可能是
[0, 0, ..., 0, ..., 1, 0]
(在第54321个位置是1)
这套系统有两个致命缺陷:
- 语义的真空:从数学上看,
iPhone 14
和华为 Mate 60
的向量是完全正交的,它们的距离和iPhone 14
与三体
是一样远的。计算机完全是个"脸盲",无法理解商品之间的任何关联。 - 维度的诅咒:向量巨大且极其稀疏,这对于存储和计算都是一场灾难。
为了解决语义问题,人们尝试了人工打标签,就像给每个商品都办一张"身份证"(标签:电子产品、手机、Apple...)。但这太耗费人力,且标签的粒度和质量都难以控制。
世界需要一场革命,一场能让计算机自动理解万物关联的革命。
创世纪:Word2Vec 与"上下文"的神谕 ✨
革命的曙光来自看似毫不相关的NLP(自然语言处理)领域。2013年,Google的Word2Vec带来了神谕:
一个词的意义,由其周围的词来定义 (Context is King)。
这个思想简单却颠覆认知。比如,在海量文本中:
- "国王" 常常和 "王后"、"权力"、"国家" 一起出现。
- "皇帝" 也常常和 "皇后"、"权力"、"国家" 一起出现。
那么,模型就能自动推断出:"国王"和"皇帝"的语义是相近的。
Word2Vec做的,就是把每个词语,从高维稀疏的One-Hot向量,"降维打击" 成一个低维(比如300维)的稠密向量——这,就是 Embedding。
"语义宇宙":Embedding空间的奇妙法则 🌌
这个由Embedding向量构成的低维空间,如同一个"语义宇宙",遵循着奇妙的物理法则:
法则一:距离代表相似性
在这个宇宙里,语义相近的物体,它们的"空间坐标"(Embedding向量)也相互靠近。
distance(国王, 皇帝)
→ 很近distance(国王, 香蕉)
→ 很远
法则二:方向蕴含关系
向量的方向和差异,竟然蕴含了抽象的语义关系。最经典的例子就是:
vector(国王) - vector(男性) + vector(女性) ≈ vector(王后)
这意味着,从"国王"的位置,沿着"从男性指向女性"的方向移动,你就能到达"王后"的附近!这个简单的数学运算,打开了语义计算的大门。
从文本到推荐:Item2Vec 的"思想迁跃" 🚀
推荐系统的大师们敏锐地意识到,这个思想可以完美地"迁跃"到电商领域:
一个商品的意义,由和它一起被浏览/购买的商品来定义。
于是,Item2Vec诞生了:
- 语料库 (Corpus):不再是文章句子,而是用户的行为序列(如点击序列、购买序列)。
- 单词 (Word):变成了商品ID。
一个用户的购买序列 [iPhone, AirPods, Apple Watch]
就相当于一个句子。通过学习大量的这类"句子",模型自动学会了:
Embedding(iPhone)
和Embedding(AirPods)
在空间中应该很近。vector(iPhone) - vector(Apple) + vector(小米) ≈ vector(小米手机)
这种品牌和产品的关系。
Embedding,第一次赋予了每个商品独一无二、可计算的"灵魂"。
现代应用:Embedding 如何驱动推荐系统? 🎯
在现代推荐系统中,Embedding早已成为水和电一样的基础设施,其应用贯穿始终。
阶段一:召回 —— 在亿万商品中"物以类聚"
当一个用户来访时,我们如何从亿万商品中,快速找到他可能感兴趣的几千个候选者?答案就是利用Embedding进行高效的相似性搜索。
这通常通过双塔模型 (Two-Tower Model) 实现:
- 用户塔 (User Tower):将用户的ID、历史行为序列等信息,通过一个网络(如DNN、RNN)计算出该用户的实时
User Embedding
。 - 物品塔 (Item Tower):离线计算好所有商品的
Item Embedding
。
推荐过程就变成了:拿着实时的User Embedding
,去庞大的Item Embedding
宇宙中,通过近似最近邻搜索 (ANN) 技术(如Faiss、HNSW),光速般地找出与用户向量最相似的Top-K个商品。
阶段二:排序 —— 让Embedding成为模型的"眼睛"
召回阶段选出的几千个商品,还需要一个更精细的模型(即精排模型,如DeepFM)来精准预估点击率(CTR),决定最终的呈现顺序。
在这里,Embedding扮演了另一个关键角色——作为特征输入。
- 过去:精排模型看到的输入是
item_id=8888
这种无意义的ID。 - 现在:模型看到的输入是
item_embedding=[0.12, -0.45, ..., 0.88]
这样一个充满语义的向量。
这等于给模型装上了一双能理解商品内在含义的"眼睛"。它不再是处理一堆ID,而是在处理具有丰富内涵的语义信息,从而能学习到更复杂的交叉模式,做出更精准的判断。
拓展应用:解决"冷启动"等疑难杂症
Embedding的魔力不止于此,它还能优雅地解决很多业界难题:
- 冷启动 (Cold Start):一个新商品没有任何行为,如何为它生成Embedding?我们可以利用它的内容信息,比如将其文字描述(通过BERT)和图片(通过ResNet)转换成Embedding,给它一个合理的初始"宇宙坐标"。
- 跨领域推荐:可以将新闻的Embedding和商品的Embedding映射到同一个语义空间,从而实现从新闻偏好到商品推荐的跨越。
📖 延伸阅读
- Efficient Estimation of Word Representations in Vector Space - Word2Vec 原始论文,一切开始的地方。
- Item2Vec: Neural Item Embedding for Collaborative Filtering - 将Embedding思想迁移到推荐系统的经典之作。
- Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba - 阿里巴巴关于构建工业级大规模商品Embedding的雄文。
- Real-time Personalization using Embeddings for Search Ranking at Airbnb - Airbnb在实时搜索推荐中应用Embedding的经典案例。
🧠 思考题
- 在双塔模型中,为什么用户塔和物品塔的Embedding通常需要保持维度一致?
- 除了用户行为序列,你还能想到哪些数据可以用来为商品生成更有意义的Embedding?(例如,商品的文本描述、图片、价格、品牌等)
- 你认为
king - man + woman = queen
这个类比,在电商场景下的iPhone - Apple + Huawei ≈ Pura70
,其背后的成功本质是什么?
🎉 章节小结
Embedding是深度学习时代推荐系统的基石,它将离散的ID世界转化为连续的语义空间。从Word2Vec的"上下文定义语义"到Item2Vec的"共现定义关联",Embedding让机器第一次拥有了理解事物内在联系的能力。无论是召回阶段的相似性搜索,还是排序阶段的特征输入,Embedding都扮演着不可替代的角色。它不仅解决了稀疏性和冷启动问题,更重要的是为推荐系统构建了一个可计算的"语义宇宙"。
"You shall know a word by the company it keeps." —— John Rupert Firth
在推荐系统的世界里,你也将通过一个物品的"伙伴"来了解它的本质。