当前位置: 首页 > wzjs >正文

石柱网站制作网站导航设计法则

石柱网站制作,网站导航设计法则,博客网站建设源码,企业网站设计的要求引言: 最近在看ragflow源码,其中有一个较为巧妙地设计:分别将 文字 、 标题 行向量化 之后,直接根据权重,进行加法运算,得到向量融合,增强了文本向量化的表示能力,这里开始讨论一下…

引言:

最近在看ragflow源码,其中有一个较为巧妙地设计:分别将 文字 、 标题 行向量化 之后,直接根据权重,进行加法运算,得到向量融合,增强了文本向量化的表示能力,这里开始讨论一下,为什么这里可以直接对向量进行加法运算,而得到一个增强的表示

加权代码片段:

title_w = 0.1 是标题的权重
tts 是标题进行embedding向量化后的矩阵
cnts 是将内容进行embedding向量化后的矩阵
vects 生成的最终的文档向量

    vects = (title_w * tts + (1 - title_w) *cnts) if len(tts) == len(cnts) else cnts

目的:优化表示

单独使用标题向量可能丢失细节(如标题 “报告” 无法区分是 “营收报告” 还是 “技术报告”);单独使用内容向量可能因信息冗余导致主题模糊(如大段无关描述覆盖核心主题)。通过加权融合,可弥补单一模态的缺陷。

完整embedding代码

async def embedding(docs, mdl, parser_config=None, callback=None):if parser_config is None:parser_config = {}batch_size = 16tts, cnts = [], []for d in docs:tts.append(d.get("docnm_kwd", "Title"))c = "\n".join(d.get("question_kwd", []))if not c:c = d["content_with_weight"]c = re.sub(r"</?(table|td|caption|tr|th)( [^<>]{0,12})?>", " ", c)if not c:c = "None"cnts.append(c)tk_count = 0if len(tts) == len(cnts):vts, c = await trio.to_thread.run_sync(lambda: mdl.encode(tts[0: 1]))tts = np.concatenate([vts for _ in range(len(tts))], axis=0)tk_count += ccnts_ = np.array([])for i in range(0, len(cnts), batch_size):vts, c = await trio.to_thread.run_sync(lambda: mdl.encode([truncate(c, mdl.max_length-10) for c in cnts[i: i + batch_size]]))if len(cnts_) == 0:cnts_ = vtselse:cnts_ = np.concatenate((cnts_, vts), axis=0)tk_count += ccallback(prog=0.7 + 0.2 * (i + 1) / len(cnts), msg="")cnts = cnts_title_w = float(parser_config.get("filename_embd_weight", 0.1))vects = (title_w * tts + (1 - title_w) *cnts) if len(tts) == len(cnts) else cntsassert len(vects) == len(docs)vector_size = 0for i, d in enumerate(docs):v = vects[i].tolist()vector_size = len(v)d["q_%d_vec" % len(v)] = vreturn tk_count, vector_size

问题:为什么可以直接简单地通过加法进行融合?

要理解“向量值的含义”和“加法为何能融合特征”,我们需要从语义向量空间的本质特征融合的数学逻辑两个层面入手,结合具体场景(如文档向量化)解释:

一、向量值的本质:语义空间中的坐标

在自然语言处理(NLP)中,文本向量化(Embedding)的核心是将文本映射到一个高维语义空间中,向量的每个维度对应空间中的一个“语义特征”。==向量值(即每个维度的数值)本质是文本在该特征上的“得分” ==

举个具体例子

假设我们有一个简化的3维语义空间,三个维度分别代表:

  • 维度1:“技术”相关程度(数值越大,文本越可能涉及技术);
  • 维度2:“财务”相关程度(数值越大,文本越可能涉及财务);
  • 维度3:“时间”(数值越大,文本越可能涉及时间描述)。

现在有两个文本:

  1. 标题:“2023年公司技术研发报告”
    其向量可能是 [0.8, 0.2, 0.7](表示:技术相关度80%,财务相关度20%,时间相关度70%)。
  2. 内容:“本年度研发投入5000万元,用于AI算法优化”
    其向量可能是 [0.7, 0.6, 0.3](技术相关度70%,财务相关度60%,时间相关度30%)。

这里的每个数值(如0.8、0.2)并非绝对的“分数”,而是模型通过预训练学习到的相对语义关联程度。向量整体则表示文本在这个语义空间中的“位置”——相似文本会在空间中相邻(向量余弦相似度高)。

二、为什么向量加法可以融合特征?

向量加法能融合特征的前提是:标题向量与内容向量在同一语义空间中(即由同一模型编码,维度相同且每个维度的语义含义一致)。此时,加法操作的本质是将两个向量在同一空间中的坐标按比例叠加,从而合并两者的语义信息。

从数学角度看:线性叠加保留所有特征

假设标题向量为 ( \mathbf{T} = [t_1, t_2, …, t_n] ),内容向量为 ( \mathbf{C} = [c_1, c_2, …, c_n] ),融合后的向量为 ( \mathbf{V} = w*\mathbf{T} + (1-w)*\mathbf{C} )(( w ) 是标题权重)。

每个维度 ( v_i ) 的计算为:
[ v_i = w*t_i + (1-w)*c_i ]

这相当于:

  • 对标题在维度 ( i ) 的语义得分 ( t_i ),按权重 ( w ) 保留;
  • 对内容在维度 ( i ) 的语义得分 ( c_i ),按权重 ( (1-w) ) 保留;
  • 最终 ( v_i ) 是两者的加权和,同时包含标题和内容在该维度的信息。
从语义角度看:互补信息的融合

回到前面的例子,标题和内容的向量各维度得分如下:

维度标题向量 ( \mathbf{T} )内容向量 ( \mathbf{C} )融合后 ( \mathbf{V} )(( w=0.3 ))
技术相关度0.80.7( 0.30.8 + 0.70.7 = 0.24 + 0.49 = 0.73 )
财务相关度0.20.6( 0.30.2 + 0.70.6 = 0.06 + 0.42 = 0.48 )
时间相关度0.70.3( 0.30.7 + 0.70.3 = 0.21 + 0.21 = 0.42 )

融合后的向量 ( \mathbf{V} = [0.73, 0.48, 0.42] ) 同时体现了:

  • 标题的“时间相关度高”(原0.7,融合后0.42);
  • 内容的“财务相关度高”(原0.6,融合后0.48);
  • 两者共同的“技术相关度高”(原0.8和0.7,融合后0.73)。

这比单独使用标题(可能忽略财务细节)或内容(可能弱化时间信息)的向量更全面。

三、为什么必须用同一模型编码?

如果标题和内容用不同模型编码(例如标题用模型A,内容用模型B),它们的向量可能不在同一语义空间(维度不同,或同一维度的语义含义不同)。此时加法无意义。

例如:

  • 模型A的维度1表示“技术相关度”;
  • 模型B的维度1可能表示“长度”(文本字数);
  • 两者的维度1数值无法直接相加(一个是语义得分,一个是字数统计)。

而代码中标题和内容均使用 mdl.encode(同一模型),确保了向量在同一空间中,加法操作才有语义意义。

总结

向量值的本质是文本在高维语义空间中的坐标,每个维度对应一个语义特征的“得分”。同一模型编码的标题和内容向量处于同一空间,加法操作通过线性叠加合并了两者在各维度的得分,从而融合了标题的概括性特征和内容的细节性特征。这就像将两种颜色按比例混合——最终颜色同时保留了两种颜色的成分,且比例由权重参数控制。


文章转载自:

http://QA12wevD.nkkpp.cn
http://gqGv5UBz.nkkpp.cn
http://i3l1D4zI.nkkpp.cn
http://OvAoaFE6.nkkpp.cn
http://icF8Ml6m.nkkpp.cn
http://UbhYdzhc.nkkpp.cn
http://v71durLn.nkkpp.cn
http://ITaNcfss.nkkpp.cn
http://eveOuYHn.nkkpp.cn
http://5f2ZmPhP.nkkpp.cn
http://eA6hTfnt.nkkpp.cn
http://cJlNCdKP.nkkpp.cn
http://9olAImqZ.nkkpp.cn
http://btoYCr1B.nkkpp.cn
http://rWjSBqq0.nkkpp.cn
http://6WKGVriR.nkkpp.cn
http://ODI5YAlv.nkkpp.cn
http://tCII1w09.nkkpp.cn
http://RepLMC25.nkkpp.cn
http://ynrQdv9b.nkkpp.cn
http://QEj1SkTr.nkkpp.cn
http://Wpm2hQXf.nkkpp.cn
http://JQRrIEhN.nkkpp.cn
http://4Bu0iWQ9.nkkpp.cn
http://wxScAg7R.nkkpp.cn
http://eEJ3CiBw.nkkpp.cn
http://NtdkNP3X.nkkpp.cn
http://6YkhG3VN.nkkpp.cn
http://veUanguO.nkkpp.cn
http://cbIS0F7U.nkkpp.cn
http://www.dtcms.com/wzjs/710112.html

相关文章:

  • 网站建设公司自适应源码哪个网站的体验做的最好
  • 凡科网站制作12580黄页注册的公司
  • 网站图片宽度宝安附近做网站公司
  • 网站建设需要哪些专业技术重庆网站建设公司名单
  • 自建购物网站秦皇岛pc端网站建设
  • 在windows2003上做网站广州建设网站公司
  • 微信建设网站找哪家wordpress会员空间插件
  • 潍坊 网站临沂手工活外发加工网
  • 做剧情游戏的网站哪里可以在百度做网站
  • 知道域名怎么进入网站电子商务名词解释
  • 中国企业报泊头网站排名优化
  • 房地产景区网站建设方案惠州网络推广公司
  • 网站建设客户目标模板创建全国文明城市要求街巷
  • 织梦 网站迁移亚洲网站正在建设中
  • 家装公司网站建设做网站麻烦不
  • seo网站结构如何优化广州公共交易中心
  • 潍坊建设网站公司wordpress不用公众号
  • 金山做网站的公司网站建设需要什么编程语言
  • 哪网站建设手表网站建设规划书
  • 做印刷的网站有哪些东莞优速网站建设推广罗裕
  • 公司网站做的一样算不算侵权6网站建设预算策划
  • 网站建设吴江有什么图片做视频的网站吗
  • wordpress能大网站帮网站做关键词排名优化
  • dw做网站一般设为什么样河南新乡做网站公司哪家好
  • 工业设计网站哪个好用wordpress内容页标签函数
  • 微信引流推广网站建设杭州公共资源交易中心
  • 本地佛山企业网站建设推广网络广告
  • 做网站用什么编程软件直播软件有哪些
  • 网站建设需要个体营业执照做产品代理上哪个网站好
  • 网站建设管理招聘工程公司管理软件