项目实训(六)

项目实训(六)

本篇主要分析项目中所涉及的句向量生成以及互注意力机制。

句向量生成

我们使用的句向量生成主要包括两种方法,一种是基于词向量,通过加权平均得到句向量,另一种是使用bert模型生成句向量。
对于传统的句向量生成方式,更多的是采用word embedding的方式取加权平均,该方法有一个最大的弊端,那就是无法理解上下文的语义,同一个词在不同的语境意思可能不一样,但是却会被表示成同样的word embedding,BERT生成句向量的优点在于可理解句意,并且排除了词向量加权引起的误差。
项目中使用的bert-as-server生成句向量。

注意力模型(self-attention)

导入

注意力模型借鉴了人类的视觉注意力机制,视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。

深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。

Encoder-Decoder框架

目前大多数注意力模型附着在Encoder-Decoder框架下,当然,其实注意力模型可以看作一种通用的思想,本身并不依赖于特定框架。

Encoder-Decoder框架是深度学习领域常用的一种研究模型,下图是一种抽象表示。
抽象框架表示
文本处理领域的Encoder-Decoder框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。对于句子对<Source,Target>,我们的目标是给定输入句子Source,期待通过Encoder-Decoder框架来生成目标句子Target。Source和Target可以是同一种语言,也可以是两种不同的语言。而Source和Target分别由各自的单词序列构成:
Encoder顾名思义就是对输入句子Source进行编码,将输入句子通过非线性变换转化为中间语义表示C:
Decoder的 任务是根据句子Source的中间语义表示C和之前已经生成的历史信息生成需要的输出信息

Attention模型

本质思想

将Source中的构成元素想象成是由一系列的<Key,Value>数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数
对于具体的计算过程,可以大致抽象为以下两个过程:一是根据Q和K计算权重系数,而是根据权重系数对V进行加权求和。第一个过程又可以分为两个阶段,一是根据Q和K计算两者相似性,而是对第一阶段的求值进行归一化处理。该过程可以归纳为下图:

自注意

由上文可知,Attention机制发生在Target的元素Query和Source中的所有元素之间。而自注意(self-attention)顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制。具体计算过程发生了较小的变化。

互注意

在我们的项目中,使用到了互注意机制,思想来自attention机制,我们根据自己的需求进行改变。在普通注意力机制中,单向注意力矩阵中的每一行被简单地相加或者求均值作为最终的注意力权重向量。在主观题阅卷任务中,对于考生答案的第i句话,即使这句话的内容与参考答案完全不相干,在对匹配系数矩阵进行列归一化之后,i在参考答案中的每句话 上的匹配程度之和仍为 1。本文引入考生答案和参考答案的互注意力机制来解决这个问题。我们针对输入的标准答案文本和学生答案文本使用互注意力机制,由于我们已经将答案文本进行分句处理,所以我们将学生答案的每一个句子分别与标准答案每一个句子进行互注意计算,得到匹配系数矩阵。

参考

https://www.zhihu.com/question/68482809/answer/264632289 张俊林
《基于知识点的专业文本可解释评阅研究》 李东进

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SSM项目在线商城是一种基于Spring + SpringMVC + MyBatis框架的互联网应用设计与开发项目。该项目的目标是构建一个功能完善的在线商城平台,实现用户注册、登录、商品浏览、购物车、订单管理等功能,提供便捷的购物体验。 在项目实训中,我们需要进行一系列的工作来完成这个项目。首先,我们需要进行需求分析,明确项目的功能和业务需求。然后,设计数据库,确定需要的表结构和字段。接下来,我们会搭建开发环境,包括安装JDK、配置Tomcat服务器等。同时,我们会使用Spring框架进行依赖注入和控制反转,使用SpringMVC框架完成请求的分发和处理,使用MyBatis框架完成数据库的操作,以保证项目的高效性和易维护性。 在开发过程中,我们会采用敏捷开发的方式,将整个项目分解为多个子任务,并按照优先级进行排列。每个子任务的开发都有相应的评估时间和实际开发时间,确保项目的开发进度和质量。在开发过程中,我们会使用版本控制工具,保留每个开发阶段的代码版本,方便后期回溯和维护。 同时,在项目实训中,我们也会进行测试工作。包括单元测试、集成测试和系统测试等,以保证项目的质量和稳定性。在测试阶段,我们会充分利用Mockito等工具进行接口的模拟和自动化测试,以提高测试效率和准确性。 最后,在项目实训中,我们还会进行项目的部署和上线工作。我们会将项目部署到服务器上,并进行性能测试和安全性测试,确保项目能够在实际环境中正常运行。同时,我们还会进行项目的维护和优化工作,及时修复bug,对系统进行性能优化,保持系统的稳定性。 通过这个SSM项目在线商城实训,我们能够全面学习和掌握SSM框架的应用和开发技术,提高自己的实际开发能力,并深入理解互联网应用的设计和开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值