📢 GM!Gate 广场|4/5 热议:#假期持币指南
🌿 踏青还是盯盘?#假期持币指南 带你过个“松弛感”长假!
春光正好,你是选择在山间深呼吸,还是在 K 线里找时机?在这个清明假期,晒出你的持币态度,做个精神饱满的交易员!
🎁 分享生活/交易感悟,抽 5 位锦鲤瓜分 $1,000 仓位体验券!
💬 茶余饭后聊聊:
1️⃣ 休假心态: 你是“关掉通知、彻底失联”派,还是“每 30 分钟必刷行情”派?
2️⃣ 懒人秘籍: 假期不想盯盘?分享你的“挂机”策略(定投/网格/理财)。
3️⃣ 四月展望: 假期过后,你最看好哪个币种“春暖花开”?
分享你的假期姿态 👉 https://www.gate.com/post
📅 4/4 15:00 - 4/6 18:00 (UTC+8)
一切都始于一个简单的问题:机器如何理解文本?当你训练模型来区分垃圾邮件和正常消息,或判断评论的情感倾向时,底层发生了一些有趣的事情。模型必须以某种方式将字母和单词转换为数字,因为神经网络只能处理数字。
第一种天真的方法是为每个唯一的单词编号。好 = 6,坏 = 26,极棒 = 27。这看起来合理,但问题在于:数字26和27彼此接近,因此模型会认为“坏”和“极棒”很相似。而实际上,“极棒”和“好”在语义上更接近。这就是一个陷阱。
我们尝试了One Hot编码——为每个单词提供一个与整个词典等长的向量,只有一个位置是1,代表对应的单词,其余都是0。这个方法解决了排序的问题,但出现新问题:如果词典有2万词,每个向量就是2万个维度。占用大量内存,而且模型无法捕捉单词之间的语义关系。
后来引入了Bag of Words和N-gram——统计单词在文本中出现的次数。增加了上下文信息,但同样是高维稀疏向量,模型也无法理解单词之间的深层联系。例如,在句子“The librarian loves books”中,librarian和book没有邻近,N-gram无法捕捉到它们的关联。
这时,正确的编码方式——embedding(嵌入)——派上用场。其思想是相似的单词在向量空间中应该彼此靠近。想象一个二维平面:一条轴代表动物的大小,另一条轴代表危险程度。老虎和狮子会在“巨大且危险”的区域附近,而仓鼠则在“微小且安全”的区域。embedding就是这样一种密集的向量,存储了单词在n维空间中的语义信息。
最棒的是:用这些向量可以进行数学运算。比如,取“儿子”的向量,减去“男人”,再加上“女人”,得到的向量会接近“女儿”。或者:马德里 + 德国 - 西班牙 = 柏林。这之所以成立,是因为模型捕捉到了概念之间的关系。
那么,这样的embedding是怎么训练的呢?Google提出了Word2Vec,有两种方法。CBOW(连续袋模型)是用上下文单词预测中心词;Skip-Gram则相反,用中心词预测邻近词。这两种技术都非常适合训练词嵌入。
在现代模型如GPT或BERT中,情况略有不同。embedding层不是预先固定的,而是与模型一起训练。首先,将文本拆分成tokens,然后一个简单的神经网络为每个token生成embedding。这个层的权重是可训练参数,学会在空间中表示单词。接着,这些embedding经过解码器的各个模块,最终进入输出层,输出下一个token的概率。
还有一个小细节——位置编码。因为Transformer处理所有tokens时是并行的,不像RNN那样逐个处理,所以需要告诉模型单词的顺序。方法是加入位置向量,将其加到embedding向量上。这样就形成了“词义+位置”信息的结合。
经过位置编码的embedding会进入注意力机制——这是所有大型语言模型的核心。embedding捕捉单词的语义,但理解上下文则依赖于attention机制。因此,“key”在不同语境中会得到不同的上下文表示。
就这样,结合简单的思想——分词、词频统计、正确的embedding编码——逐步走向了Transformer和ChatGPT。如今,embeddings无处不在:在推荐系统、相似图片搜索、所有现代大型语言模型的基础。如果你想真正理解NLP,就必须了解CBOW、Skip-Gram以及这些架构的工作原理。这是基础,也是起点。