热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

ALBERT中文实战之文本相似度

ALBERT是一个比BERT要轻量,效果更好的模型,本篇实践介绍如何用ALBERT计算两个文本的相似度。ALBERT利用词嵌入参数因式分解和隐藏层间参

ALBERT是一个比BERT要轻量,效果更好的模型,本篇实践介绍如何用ALBERT计算两个文本的相似度。

ALBERT利用词嵌入参数因式分解和隐藏层间参数共享两种手段,显著减少了模型的参数量的同时,基本没有损失模型的性能。笔者在下面的文章中详细介绍了ALBERT的理论,感兴趣的同学可以戳进去了解:《解读ALBERT》。

github地址

使用孪生ALBERT网络生成句子的嵌入表示:


Pooling方法:

a. CLS:直接使用CLS的输出作为Embedding

b.MEAN: 平均所有token的输出作为Embedding

c. MAX:取每一维输出向量的最大值

目标函数:

       a. 分类目标函数:

                            640?wx_fmt=png

            其中 u 和 v 为两个句子的 Embedding,Wt为变换矩阵,最终的维度为3n*k,该目标函数可用于预训练Sentence            Embedding

       b. 回归目标函数:

           该目标函数直接计算u和v的cosine相似度,将之均方误差作为loss。另外结构也是预测时候的计算方式

       c. 三胞胎目标函数:

                          640?wx_fmt=png

          其中Sa为句子a的Embedding,Sp则为句子p,句子p是跟a属于同一类型的正例句子,n 则是一个反例,三胞胎网络和孪生网络类似,这个目标函数是为了让正例距离尽量近而反例尽量远
 


推荐阅读
author-avatar
btsk@163.com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有