赞
踩
今天补充了一点上一节分词的内容。还有一点时间,写下机器学习LLM中词语向量化的含义及为什么要这么做的思想以及实现的方式和如何在项目中落地,并分别以手动构建词向量与通过机器学习embedding layer 两种思维模式,相关数学原理及如何落地进行讲解。
在上一节中,分词实现了对一个句子的数字编码,并透过tokenizer的序列化及tensorflow keras(只是一个例子,pytorch等一样有这个功能)的padding完成了batch模式下的句子对齐,为LLM分析奠定基础。
假设我们想做一个翻译软件,或者想做一个词语归类的软件,比如情感分析,我们怎么才能很好的实现?如果仅仅只是将句子数字化并对齐,是达不到我们想要的要求的,因为词本身具有的属性,比如他是表征行为,还是表征情感,是美好的,还是邪恶的,是值得褒扬的,还是值得批评的,又或者是中性词,这个词语在句子中扮演的角色是什么?是可有可无的词组还是核心词语,他在上下文中表现出的含义是什么,这些都无法透过索引化后的句子索引得到答案。
于是,我们想有什么办法可以表征一个词的属性,在需要的时候可以找他他和别的词是否是一类词语,还是根本就是不搭边的两类词语。在早期,我们将所有词语进行归类,比如性别,水果,动物,人,行为,国家,省份等等等,类别越多,词语分的越详细。举一个简单例子,假设我们一共将所有词语分为 5种属性,也就是说每个词都有5种属性,只是有的权重很高,有的权重很低。假设这5种属性分别为:性别,国家,水果,动物,人。一个词语为‘母亲’,那么他对应的向量属性依次为:[0.9, 0, 0, 0, 0.95],突出‘母亲’这个词的‘性别’与‘人’的特性。 在如‘香蕉’,么他对应的向量属性依次为:[0, 0, 0.99, 0, 0.01], 突出他的‘水果’属性。
实际上,我们也可以从数学角度去解释这样的定义,我们喜欢把向量称为特征向量,那是因为我们事先规定好了描述一个事物有多少维度,其中每一个维度代表了所描述事物的一个特征。比如事物A 有A1, A2 特征,事物B 有B1,A1 特征。事物拥有的特征可以相互重叠,正因为这些特点,构成了空间的N维特征向量。高中数学告诉我们,一维向量是点,二维向量是面,三维向量对应x,y,z就是空间。其实描述事物向量可以继续向上递增,10维,20维,30维,只是可能你从几何学的角度比较难以想象他长成什么样,但这不重要,其实M维向量的含义就是一个需要被描述的事物在M维空间上各维度的投影。你可以想象三维向量其实就是(x,y,z)在x,y,z 轴上的投影。有了向量&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。