词向量
在机器学习和自然语言处理(NLP)中,词向量(Embeddings)是一种将非结构化数据,如单词、句子或者整个文档,转化为实数向量的技术。词向量背后的主要理念是 相似或者相关的对象在向量空间中的距离应该很近
词向量将单词转换为固定的静态的向量,虽然可以一定程度上捕捉并表达文本中的语义信息,但忽略了单词在不同语境中的意思会受到影响的情况。RAG应用中使用的向量技术一般为通用文本向量(Universal text embedding),该技术可以对一定范围内任意长度的文本进行向量化,与词向量不同的是向量化的单位不再是单词而是输入的文本,输出的向量会捕捉更多的语义信息。
词向量的优势:
- 词向量比文字更适合检索。数据检索时,如果数据库存储的是文字,主要通过关键词等方法找到相对匹配的数据,匹配的程度取决于关键词数量或者完全匹配的查询语句。词向量包含了原文本的语义信息,可以通过计算问题与数据库中数据的点积、余弦距离、欧几里得距离等指标,直接获取问题与数据在语义层面的相似度。
- 词向量比其它媒介的综合信息能力更像,当传统数据库存储文字、声音、图像、视频等多种媒介时,很难去将上述多种媒介构建起关联与跨模态的查询方法。词向量可以通过多种向量模型将多种数据映射成统一的向量形式。
构建词向量的方法
搭建RAG系统时,往往通过使用嵌入模型来构建向量。
- 各个公司的Embedding Api。
- 在本地使用嵌入模型将数据构建为词向量。