1. excel使用记录

    2020/03/17 note

  2. XLNet

    2019/10/14 paper

  3. 良心软件分享

    良心软件分享分享,仅供交流和学习使用,请支持正版╮( ̄▽ ̄)╭。

    2019/05/24 collect

  4. 在线教育调研3——CMU相关论文

    这次调研的主要是CMU的研究团队关于MOOC的数据挖掘行为分析的一些论文,有二十余篇。

    2019/05/20 paper

  5. MultiMeidaSafe

    多媒体安全课堂笔记。 1、信息安全的两种方式: 信息加密: 图像加密 信息隐藏 S:隐藏信息 C:载体 数字隐写:关注S ,为了保护隐藏的信息 传递信息 存储信息 数字水印:关注C ,为了保证载体图片的版权和完整性 版权保护 认证 2、信息隐藏 利用载体中存在的冗余信息来隐藏秘密对象,以实现保密通信或实现数字签名或认证的目的 信息通信模型: 信源,信宿,信道(电信系统,Internet等) 数字图像处理-BMP图像【Bitmap】 文件头【文件类型,文件大小、偏移字节】|位图信息头【长宽高、颜色位数值】|彩色表信息【目前无用】|位图数据 信息隐藏只能改变 位图数据。 1位:类似素描的黑白图片,只有黑白两种颜色 8位图:一个字节8为表示一个图像,灰色图像,每个像素值为0-255。8位数据,那么图像就由8个位平面组成,一个位平面的每一位只能为0/1,位平面越高,对图像影响越大。 3、数字图像隐写技术 3.1 面向BMP图像的隐写技术 LSB隐写 LSB隐写是一种简单而又有效的信息隐藏技术。特点是容量大…… 每个像素都有一个最低比特位,该方法就是在最低比特位进行替换。每个像素值都有一个最低比特位。该方法修改的图片不能恢复,但是人眼难以识别变化。 方法: 1. 将欲嵌入的秘密信息转化为比特流。二进制 2. 逐行或逐列替换载体图像的最低比特位。 嵌入规则: 1. 如果秘密信息与最低比特位相同,则不改动 2. 如果秘密信息与最低比特位不同,则使用秘密信息值代替最低比特位。 不可能出现256,0只能变1或不变,1只能变0或不变。 衡量方法性能的指标 LSB隐写的嵌入容量与嵌入率: 大小为MXN的8bit灰度图像: 嵌入容量: MxN bit 嵌入率: \[嵌入率 = \frac{嵌入的数据位的个数}{总的数据位个数}\] \[\frac {M\times N}{M\times N\times 8} = \frac{1}{8}\] PSNR【峰值信噪比】衡量图片质量,对图片的影响大小,这个指标越大,代表对图片的影响越小: \[\text{PSNR} = -10log\{\frac {1}{255^2MN}\sum_{1}^{M}\sum_{1}^{N} [d(m,n)]^2\}\] $d(m,n)$表示第m行第n列的像素嵌入前后的差值 安全性评估: 容易隐写分析算法破解 3.2 面向JPEG图像的隐写技术 JPEG图像,把原始图像分成一个个8x8的像素块,正向DCI变换,量化,熵编码,压缩的图像数据。 优点速度快,压缩的空间小,简单。 DCT变换:通过DCT,空间表达式可以转换成频谱表达式或频率域。 优点可以节省空间,简单压缩快,容易量化,可逆, DCT变换后,图像重要的可视化信息都集中在在了低频区域。 使用量化表进行量化。 对量化后的DCT系数进行熵编码。对DCT系数进行Z字形排序。霍夫曼编码。 DCT变换和量化不可逆,每一次都会有损耗。所以选择量化后的DCT系数做编码过程做信息隐写。因为编码过程是可逆的。 Jsteg隐写方法: 原始值为-1,0,1的DCT系数不能嵌入,其他正常嵌入。 比LSB嵌入位对图像的影响大,很多位置不能嵌入。 F3隐写方法【嵌入率一般在9%左右】 嵌入规则: 每个非0的DCT数据用于隐藏1比特秘密信息,为0时DCT系数不负载信息。 0碰到+1/-1,视为无效,但是把它变成0。1碰到-1不变。 3.3 隐写分析技术 针对LSB的隐写分析 (1)$\chi ^2$分布统计 统计所有像素值的个数进行分析。 LSB会使一对数值彼此变换,比如40与41嵌入信息以后只能不变或者互相转换,这就会是的两者的个数彼此接近,类似一种中和效果。这种现象符合$\chi ^2$分布。 特点: 原理简单清晰 易于实现,检测效果好。 只能检测到高嵌入率。 只能检测特定的LSB 对部分伪随机嵌入无效。 (2)F3隐写分析 3.4 安全的隐写技术 直方图补偿隐写方法 嵌入容量和安全性成反比,牺牲容量,换取安全性。 通过在隐写后的图像中进行额外的操作,将隐写引起的直方图失真补偿回来。通过修改未迁入秘密新的像素位来进行补偿,让像素值统计分布于嵌入之前相同。 需要预留多少位置用于修改补偿的计算公式: \[(1-a)f_{2i+1}\geq \frac{a}{2}(f_{2i}-f_{2i+1})\] $f_i$表示原始图像像素数目,a表示秘密信息嵌入率 基于随机翻转的安全隐写方法 修改LSB方法 4、数字图像水印技术

    2019/04/25 lesson

  6. 在线教育领域NLP论文调研2

    基于之前的粗略调研,我们确定关键词并寻找论文,我们继续调研在线教育领域相关论文的研究内容及方法。本次调研的主要是EMNLP、ACL相关论文,大多数来自EMNLP2014的共享任务。 在线教育领域NLP论文调研2——ACL、EMNLP相关论文 (1)Your click decides your fate: Inferring Information Processing and Attrition Behavior from MOOC Video Clickstream Interactions 论文地址:https://www.aclweb.org/anthology/W14-4102 【EMNLP 2014】 任务简介: 该论文的任务是以学生看视频时的点击行为序列为基础,进行一系列的结果分析。 作者使用的交互行为有:Play (Pl), Pause (Pa), SeekFw(Sf), SeekBw (Sb), ScrollFw (SSf), ScrollBw(SSb), RatechangeFast (Rf), RatechangeSlow(Rs). 基于上述点击行为,作者将不同的点击行为序列定义为不同的行为: - Rewatch: PlPaSbPl, PlSbPaPl, PaSbPlSb, SbSbPaPl, SbPaPlPa, PaPlSbPa - Skipping:SfSfSfSf, PaPlSfSf, PlSfSfSf, SfSfSfPa, SfSfPaPl, SfSfSfSSf, SfSfSSfSf, SfPaPlPa, PlPaPlSf - Fast Watching: PaPlRfRf, RfPaPlPa, RfRfPaPl, RsPaPlRf, PlPaPlRf (click group of Ratechange fast clicks while playing or pausing video lecture content, indicating speeding up) - Slow Watching: RsRsPaPl, RsPaPlPa,PaPlRsRs, PlPaPlRs, PaPlRsPa, PlRsPaPl (click group of Ratechange slow clicks while playing or pausing video lecture content, indicating slowing down) - Clear Concept: PaSbPlSSb, SSbSbPaPl, PaPlSSbSb, PlSSbSbPa (a combination of SeekBw and ScrollBw clicks, indicating high tussle with the video lecture content) - Checkback Reference: SbSbSbSb, PlSbSbSb, SbSbSbPa, SbSbSbSf, SfSbSbSb, SbPlSbSb, SSbSbSbSb (a wave of SeekBw clicks) - Playrate Transition: RfRfRsRs, RfRfRfRs,RfRsRsRs, RsRsRsRf, RsRsRfRf, RfRfRfRf(a wave of ratechange clicks) 然后使用模糊字符串匹配算法对比实际的点击序列与上述序列,匹配程度越高则该行为的权重就越大。 最后基于以上信息,使用L2正则和线性回归,作者分析以下几个问题: 根据学生的点击序列预测学生对特定课程的参与时间 对于既定点击序列,预测下一个序列是什么可以导致学习不同的参与度 通过点击序列交互行为来预测学生看不完这个视频的概率【不能完成当前这一个视频的概率】 通过点击序列交互行为来预测学生不能完成整个课程的概率【不能完成整个课程的概率】,不过这个用的是所有课程的交互情况,独立考虑各个课程的点击序列 (2)Identifying Student Leaders from MOOC Discussion Forums through Language Influence 论文地址:https://www.aclweb.org/anthology/W14-4103 【EMNLP 2014】 论文介绍:作者的任务是根据语言影响力从mooc论坛中找出学生领导者。从mooc论坛中大规模地识别和理解学生领导者的动机是使得在线学习环境更具有参与性、合作性和指导性的关键。在这篇论文中,我们建议仅根据文本特征来识别学生领袖,或者通过分析他们如何影响其他学生的语言来识别他们。我们提出了一种基于人们对感兴趣的语义话题的词汇选择来衡量语言迁就度的改进方法,并证明了学生领袖确实起到了协调其他学生语言的作用。 一句话说就是,对于给定的主体,通过衡量大家说话时选用的单词来识别出学生中的领导者。 原理就是人说话时,使用的单词往往会迁就和他们一起说话的人。这种现象叫做语言协调。我个人的理解就是,大家在讨论某个问题时,加入先有人用苹果举了一个例子,那么其他人在讨论的过程中,就更倾向于也用苹果来举例子进行反驳或论证,而不是用菠萝、香蕉之类的,虽然究竟用什么水果举例没有影响。 作者的方法如下: 首先基于语义和语法相似度,通过单词的在句子中相对其他单词出现的统计来把句子构建为词向量。 作者采用以下公式来衡量语言协调度,其中a、b代表两个用户,这个公式表示a向b的语言协调度,$w_k$表示第k个聚类中的一个词$E_{u_{a} \rightarrow u_{b}}^{w_{k}}$表示b使用了$w_k$这个单词,a对b的回复中也使用了$w_k$这个单词,即a对b出现了语言协调。$E_{u_{b}}^{w_{k}}$表示所有使用了$w_k$这个单词的事件。注意,以上只在所有包含k类中单词的评论中进行统计。 \(C^{w_{k}}(a \rightarrow b)=P\left(E_{u_{a} \rightarrow u_{b}}^{w_{k}} | E_{u_{b}}^{w_{k}}\right)-P\left(E_{u_{a} \rightarrow u_{b}}^{w_{k}}\right)\) $P_{v_a}$ (3)Predicting Instructor’s Intervention in MOOC forums 论文地址:https://www.aclweb.org/anthology/P14-1141 【ACL 2014】 论文介绍: 目的是通过论坛评论来预测教师是否会回复当前这个话题。 使用的是线性回归的方法,使用的特征包括两方面,一方面是当前这个话题的发起者、时间、地点、题目等等总体信息,另一方面是该话题下所有帖子的一个综合信息,例如所有评论的点赞数、所有评论发布时间的均值和方差、某些特定词出现的总数等等。 最终结果: (4)Predicting MOOC Dropout over Weeks Using Machine Learning Methods 论文地址:https://www.aclweb.org/anthology/W14-4111 【EMNLP 2014】 论文介绍: (5)Point-of-View Mining and Cognitive Presence in MOOCs:A (Computational) Linguistics Perspective 论文地址:https://www.aclweb.org/anthology/W14-4105 【EMNLP 2014】 论文介绍: (6)A Process for Predicting MOOC Attrition 论文地址:https://www.aclweb.org/anthology/W14-4109 【EMNLP 2014】 论文介绍: (7)Understanding MOOC Discussion Forums using Seeded LDA 论文地址:https://www.aclweb.org/anthology/W14-1804 【Proceedings of the Ninth Workshop on Innovative Use of NLP for Building Educational Applications 2014】 论文介绍: (8)Towards Identifying the Resolvability of Threads in MOOCs 论文地址:https://aclweb.org/anthology/W14-4104 【EMNLP 2014】 论文介绍: (9)Semi-Supervised Answer Extraction from Discussion Forums 论文地址:https://www.aclweb.org/anthology/I13-1001 【International Joint Conference on Natural Language Processing】 论文介绍: (10)Predicting Attrition Along the Way: The UIUC Model 论文地址:https://www.aclweb.org/anthology/W14-4110 【EMNLP 2014】 论文介绍: (11)Countering Position Bias in Instructor Interventions in MOOC Discussion Forums 论文地址:https://www.aclweb.org/anthology/W18-3720v2 【 Proceedings of the 5th Workshop on Natural Language Processing Techniques for Educational Applications 2018】 论文介绍:

    2019/04/19 paper

  7. 在线教育领域NLP论文调研

    针对在线教育领域的几篇论文的调用总结。 1、面向MOOC课程评论的学习者话题挖掘研究 (1)内容概括 这篇论文主要研究MOOC课程的评论的话题挖掘,具体分为以下三个方面的研究: (1)根据所有评论分析学生对这门课的总体话题,采用的是统计词频的方法; (2)针对学习者的类型(已完成课程者和未完成课程者,忽略正在上课者的评论),分别对已完成课程者和未完成课程者的话题进行挖掘提炼,然后分析这两个群体话题的相似之处和不同之处,采用机器学习中的LDA方法。 (3)研究话题随时间的演变趋势,选取(2)中挖掘出来的话题中较为明显的5个话题,把评论根据不同的时间段进行划分,分别对每个时间段的话题进行话题挖掘,然后绘制话题随时间的演变趋势折线图。 (2)使用的数据 用户评论内容及时间,用户的课程学习状态【已完成、未完成和正在进行】 (3)总结与分析 作者的前两个研究内容还不错,证明评论中确实存在一定的话题度,并且学生群体话题与其课程完成情况有关,这也是符合常理的。但是第三个研究的效果不是很理想,对于同一门课来说,评论中的话题不会随着时间出现大幅度的可解释的变化趋势,研究价值一般。 (4)缺陷 方法比较简单,并且使用的数据较少,尤其是未完成课程者的评论太少,仅仅有12条,这么少的数据做出来的实验结果难以令人信服。不过这也从侧面说明可能未完成课程的同学更不愿意参与评论讨论这个情况。 2、SPOC论坛互动中学习者情绪特征及其与学习效果的关系研究 (1)内容概括 这篇论文主要研究的是SPOC论坛互动中情绪特征及其与学习效果的关系,主要包括以下几方面的研究内容: (1)学习者的情绪随时间的演化趋势,以周为时间单位,采用的指标是学习者的情绪密度,所谓情绪密度,就是情感词在评论中出现概率的平均值。一共有三种情绪词,积极、消极和困惑。 (2)不同学业成就学习者情绪的差异性分析。引入学习者的最终成绩情况,把他们分词高成就、中等成绩和低成就三个研究群体。使用重复度量方差分析法检验不同学业成就的学习者与其学业情绪之间是否存在交互作用,然后根据不同群体学习者对于不同情绪的情绪密度,以此来进行分析,研究同一情绪在群体之间的差异性以及同一群体中不同情绪的差异性。 (3)分析学习者情绪与学习效果在每周的相关性变化趋势 (2)使用的数据 SPOC论坛的评论以及评论时间,学习者的最终成绩 (3)总结与分析 与第一篇论文不同,这一篇论文针对的仅仅是已完成课程的学习者,主要是从情感方面来分析,分析情感变化趋势以及成绩与情感的关系。该论文使用的方法非常简单,仅仅用了情感词典,唯一的可圈可点之处就在于并非仅仅考虑积极和消极情感,还考虑了一种困惑情感,建立了一个困惑情感词典。但是其实从实验结果来看的话,消极情绪与困惑情绪的变化具有极高的相似性,单独拿出困惑情绪分析是否具有重要意义有待研究。 论文的方法极其简单,花了大量的精力和篇幅做了很多分析结果的研究,更侧重分析学生的行为心理,计算机方面学术性很弱。 3、An Emotion Oriented Topic Modeling Approach to Discover What Students are Concerned about in Course Forums (1)内容概括 这篇论文也是在提取学习者的话题,与第一篇的不同之处在于,它在提取话题的时候,加入了情感方面,也就是说,对于同一个话题而言,大家的评论也都是带有情绪的【积极、消极和困惑】,所以最终提取出了一些带有情绪的话题,根据这些话题的概率主要研究以下几个方面: 学生最关心的话题是什么,以及对这些话题的主要情感是怎样的 情绪话题随时间的变化趋势 针对不同成绩的学生。分别分析他们在各个情绪话题的时间变化趋势 (2)使用的数据 SPOC课程的评论及评论时间,用户的成绩。评论数量为10870条,参与评论的人数为752人。 (3)总结与概括 作者从始至终所采用的的也就是用概率统计学方法统计出的情绪话题概率,使用了第2篇论文中的情绪词典。这一篇论文更像把前两篇论文的内容结合在一起研究,最终结果看上去还是不错的,对于不同的话题有不同的情感。 4、Unfolding Sentimental and Behavioral Tendencies of Learners’ Concerned Topics From Course Reviews in a MOOC (1)内容概括 这篇论文在第三篇论文的基础上,又增加了一个用户行为的特征,主要包括{发表评论,回复评论,点赞,晒证书}这四种行为。也就是说此时作者提炼的是基于情感和行为的学习者关心的话题,最后统计行为、情感和话题的关系,找出每个话题的单词分布、主导情绪和行为分布。 另外与之前不同的一点在于,之前分析对象针对的是每个评论,即认为每个评论有一种情感和一个话题。现在分析更加细化,针对一条评论中的每个句子来分析,一个评论可能有多个句子,对每个句子都分析出一个话题和情感。但是行为其实是针对一个评论的,所以一个评论的多个句子都是同一种行为。 (2)使用的数据 MOOC网站的评论,学习者的行为【行为关联到评论】。 (3)总结与概括 作者这次在情感和话题的基础上又增加了行为这个特征,但是这次没有使用困惑这种感情,只有积极和消极两种情感。并且这一次没有针对具体的用户群体进行分析,即只对整个学习者群体进行分析,没有像之前那样根据成绩或者课程完成情况来进行分析。 5、总结 (1)关键词 e-Learning, mooc, spoc, online course, online study, online learning, course forum, Course reviews,online course, online education community, (2)相关论文 1、Strategyproof Peer Selection using Randomization, Partitioning, and Apportionment

    2019/04/18 paper

  8. Universal Sentence Encoder

    论文主要是提出了一个统一的句子编码框架,句子级别的encode比Word2vec使用起来会更加的方便,因为可以直接拿来做句子分类等任务。 本文主要提出了两个句子encode的框架,一个是之前《attention is all you need》里面的一个encode框架,另一个是DAN(deep average network)的encode方式。两个的训练方式较为类似,都是通过多任务学习,将encode用在不同的任务上,包括分类,生成等等,以不同的任务来训练一个编码器,从而实现泛化的目的。 论文地址:https://arxiv.org/pdf/1803.11175v2.pdf 论文笔记: paperweekly-很简略 知乎-木子李 论文代码: 作者将代码用TensorFlow实现并上传到了TF Hub,详见:https://tfhub.dev/google/universal-sentence-encoder/2,可以直接参照使用样例使用 更多代码实现点这里 【不过我看paperswithcode列出的代码好像都不是论文实现】 paperwithcode:https://paperswithcode.com/paper/sliced-recurrent-neural-networks

    2019/04/16 paper

  9. Sliced Recurrent Neural Networks

    论文提出了一种新的RNN结构–切片循环神经网络(SRNN),提高了训练速度的同时还提高了情感分类效果。所谓的切片指的是将输入序列分割成若干最小序列,每个短序列分别用RNN处理,然后按照切片的逆过程,再把各个短序列的表示作为输入再次用RNN处理,直到表示出整个句子。 论文地址:https://arxiv.org/ftp/arxiv/papers/1807/1807.02291.pdf 论文笔记:https://zhuanlan.zhihu.com/p/44526426 论文代码:作者本人的代码-keras 实验数据: Yelp2013-2015,Amazon (1)模型创新与贡献 本文提出了一种新的模型,称之为SRNN,实际上与其说是一种新模型,倒不如说是一种新的结构化处理方式。因为论文并没有对模型的内部结构进行任何改造,实际上就是用现有的RNN模型,但是处理方法上有改进,不再是传统的把整个句子直接用一个RNN进行处理的方法,而是把长句子划分成短句子,然后先用RNN对短句子建模,再把短句子的表示作为输入,再次使用RNN来进行长句子的表示,逐渐递归,直到表示出原始的整个句子。 该方法的优点是加快了训练速度,实际上相当于把对一个长句子的处理变成了对多个短句子的处理,并且很多短句子的处理是可以同时进行的,因为对每个短句子使用的是不同的RNN,彼此之间独立运算。因此实际上这种方法增强了RNN的可并行性。 (2)模型详解 具体来说,切片指的是将输入序列分割成若干最小序列(最小序列长度由n和k决定,其中n表示每次分割的子序列个数,k表示分割的次数)。假设句子长度为8,以n=2,k=2为例,那么我们将对句子切分两次,每次把所有序列切分成2份。第一次切分的时候,长度为8的句子将被切分为两个长度为4的序列;第二次切分的时候,每个长度为4的序列将被切分为两份,所有将会得到4个长度为2的序列。 RNN处理句子的过程实际上就类似于上述切片过程的逆过程,切片是逐渐分割句子,而处理句子的时候则是逐渐合并序列的表示。由于我们切分了2次,所以切分过程中实际出现过3种不同长度的序列(2,4,8),对应于这三中不同的序列,SRNN有三层RNN,分别标号为0,1,2,那么对于第i层RNN,序列的个数为$n^{k-i}$,序列的长度为$\frac{T}{n^{k-i}}$,其中$T$为原始句子的长度(本例中$T$=8)。第i层有$n^{k-i}$个序列,那么也就需要$n^{k-i}$个RNN分别对每个序列进行表示。本例中,第0层有四个序列,那么需要4个RNN,然后我们分别取这4个RNN的最后一个时刻的输出作为当前这个长度为2小序列的表示,分别记作$h_2^0,h_4^0,h_6^0,h_8^0$(因为分别是第2,4,6,8个单词对应的输出),接下来,我们再以把这4个第0层的输出作为第1层的输入,第1层对应着2个长度为4的序列,所以需要2个RNN,第一个RNN以$h_2^0,h_4^0$为输入,第二个RNN以$h_6^0,h_8^0$为输入,那么就又会得到两个隐层输出$h_4^1,h_8^1$,然后再以这两个隐层输出作为第2层的输入,第2层RNN对应着1个长度为8的序列,因此只需要1个RNN,输入为$h_4^1,h_8^1$,输出最终整个序列的表示$h_8^2$【即下图中的F】。具体直观过程看下图就很容易理解了: 如上图所示,总共使用了$n^0+n^1+\cdots+n^k$【本例中为1+2+4=7】个RNN,RNN虽然多了,但是每个RNN的参数少了,基本上每个RNN的输入都是n个时刻【第0层除外】,并且每一层的多个RNN之间的运算是可以并行的,因此可以减少训练时间,加快训练速度。 另外,作者还给出了证明,RNN相当于是SRNN的一个特例,这个证明虽然有些繁琐,但是并不难理解,文中也写得很清楚,就不在这里说了,有兴趣自己看啊。知乎的笔记也详细讲解了。 (3)实验和结果 实验采用的数据是yelp数据和Amazon数据,详细情况如下: 实验结果如下:

    2019/04/16 paper

  10. Universal Language Model Fine-tuning for Text Classification

    迁移学习在计算机视觉中已广泛使用,但NLP中的现有方法仍然需要从头开始训练。 本文提出了基于微调的通用语言模型(ULMFiT),可以应用于NLP中的多种任务。 实验表明,ULMFiT方法在六个文本分类任务中取得显著效果。 官方主页:http://nlp.fast.ai/ 论文地址:https://arxiv.org/pdf/1801.06146v5.pdf 论文笔记: 作者本人的笔记——主页介绍翻译版! 简书笔记 搜狐笔记 csdn笔记-ttv56 知乎笔记-yifannn 知乎笔记-精益求精一丝不苟 个人博客-潘小榭 程序员大本营 台部落 代码实现: https://github.com/Socialbird-AILab/BERT-Classification-Tutorial【TensorFlow】 https://github.com/cstorm125/thai2fit【pytorch】 https://paperswithcode.com/paper/universal-language-model-fine-tuning-for-text#code 【代码很多,点击链接去paperwithcode看所有代码吧】

    2019/04/15 paper

  11. Hierarchical Attention Based Position-aware Network for Aspect-level Sentiment Analysis

    2019/04/15 paper

  12. Aspect Based Sentiment Analysis with Gated Convolutional Networks

    这篇论文介绍了基于方面的情感分析,提出了一种基于卷积神经网络和门控单元的神经网络,叫做GCAE(Gated Convolutional network with Aspect Embedding),没有使用RNN,大大地提高了模型训练的可并行性,使得训练速度大幅度加快,并且模型的效果有提高,虽然提高不多,但是能在不使用RNN的情况下也算是不错了,毕竟该模型最大的优点是提高训练速度,节省训练时间。 论文地址:https://www.aclweb.org/anthology/P18-1234 论文笔记: https://zhuanlan.zhihu.com/p/50284374 https://blog.csdn.net/weixin_38772011/article/details/82230335 https://www.itread01.com/content/1546599088.html 论文代码:https://github.com/wxue004cs/GCAE 【pytorch】 实验数据:SemEval2014 Task4 (1)模型创新与贡献 与一般模型不同,作者认为使用RNN和Attention机制都会使得模型的训练过程难以并行运算,这大大影响了训练速度,因此尝试仅仅使用CNN和一些门控单元就在保证模型效果的情况下,提高训练速度,毕竟CNN是可并行运算的。最后,事实证明,作者确实提高了训练速度,并且模型准确率比之前的模型还要高一些。 与其他模型的收敛时间对比如下如所示: 另外,作者将传统的ABSA任务分为了两类:分别是ACSA任务和ATSA任务。 第一种叫做ACSA任务,即aspect-category sentiment analysis。该种任务的aspect是事先确定的一些类别,并且可能该aspect在句子中不出现,比如service,price这些,“这件衬衫居然要1000块钱!”就是针对“价格”的情感句,但是价格这个词并不会直接出现。 第二种叫做ATSA任务,即aspect-term sentiment analysis。与第一种相反,这种ABSA任务的aspect不是事先确定的,而是从句子中提取出来的,因此该种任务的aspect必然在句子中出现,可能是一个词,也可能是短语,说白了就是找没个短句的评价aspect,这种aspect通常会比较多,毕竟大部分句子的评价aspect都不同。 举个例子,比如评论“这些泰国菜非常好吃,但是配送太慢了!”。对于ACSA来说,这两个短句的aspect可能分别是“口感”、“服务”。对于ATSA来说,则是“泰国菜”,“配送”。这个例子可能不准确,比较泰国菜不算是aspect,意会即可。 (2)模型介绍 作者的模型如下图所示: 如上图所示,首先使用两个卷积层独立对句子进行卷积操作,然后其中一个输出(图中红色输出)再经过一个Tanh门控单元负责提的情感特征,另外一个输出(图中绿色输出)则负责提取aspect的特征,所以它需要与Aspect的向量进行组合【作者采用的是相加的方式,详细见下面的公式】,然后经过ReLU门控单元,作为Aspect特征。这两个门控单元就是作者设计的门控单元。最后让两个门控单元的输出【情感特征和Aspect特征】进行按位乘的操作,其结果再经过最大池化层处理作为最终该Aspect对应的情感信息,把该向量经过输出层进行分类。具体计算过程如下公式: \[\begin{aligned} a_{i} &=\operatorname{relu}\left(\mathbf{X}_{i : i+k} * \mathbf{W}_{a}+\mathbf{V}_{a} \boldsymbol{v}_{a}+b_{a}\right) \\ s_{i} &=\tanh \left(\mathbf{X}_{i : i+k} * \mathbf{W}_{s}+b_{s}\right) \\ c_{i} &=s_{i} \times a_{i} \end{aligned}\] 其中${X}_{i : i+k}$代表第$i$个单词到第$i+k$个单词,$*W+b$代表卷积操作。$v_a$代表Aspect的向量,进行线性变换以后与卷积层输出加起来求和。 显然,上述模型是针对ACSA任务的,因为它需要有一个Aspect的词向量作为输入。针对ATSA任务,作者对上述模型做出了一点改进,使得它也可以用于ATSA任务。思路非常简单,既然没有事先确定的Aspect向量,我们就自己去寻找Aspect,但是不应该使用RNN来找Aspect,这回使得模型难以并行计算,与初衷背道而驰。因此,作者又使用了一个与之前类似的卷积层来找出句子中Aspect,模型结构如下图所示: (3)实验结果 作者使用的数据集是SemEval2014Task4的数据集,数据分布情况如下: 最终的实验结果如下所示,首先是与其他模型的正确率Acc的对比: 然后,作者为了展示门控单元确实是有效的,对数据结果做了可视化,如下图所示,可以看到对于不同的aspect,其对应的评价词与其他评价词的权重有明显差异,可以说,作者的这个门控机制起到了类似Attention的作用: 另外,作者还通过具体实验证明自己的门控机制比其他常用的门控单元效果要好【如下表所示】,确实可以有效控制模型找到与aspect相关的情感词,忽略不相关的其他情感词。

    2019/04/15 paper

  13. 示例笔记

    2019/04/13 note

  14. 我的第一篇博客

    我的第一篇博客,留作纪念!

    2019/04/13 memory

  15. 中文文档收藏

    1、pytorch中文文档 1、https://pytorch-cn.readthedocs.io/zh/latest/ 2、https://github.com/zergtant/pytorch-handbook 3、https://github.com/apachecn/pytorch-doc-zh 在线阅读:https://pytorch.apachecn.org/#/ 4、https://www.pytorchtutorial.com/docs/ 2、

    2019/04/13 collect

  16. Sentiment Classification towards Question-Answering with Hierarchical Matching Network 论文阅读笔记

           这篇论文介绍的是关于电商平台问答的情感分析,类似淘宝的“问大家”这种形式的问题对,根据问题答案对来分析其中的情感。 论文地址:https://aclweb.org/anthology/D18-1401 数据链接地址:https://github.com/clshenNLP/QASC/ 代码地址:暂无代码。 (1)该论文的贡献主要有两个: 提出了一个新问题,即问答情感分析。并且上传了一份用于研究该问题的标注数据。数据链接地址:https://github.com/clshenNLP/QASC/ 对这个新问题提出了一种专门的解决方法,即题目中的分层匹配神经网络。 (2)论文概括        该论文首先介绍了这个任务描述,然后分析这种任务为什么不适合直接用传统的情感分析技术来进行研究,并提出了一种专门针对这种问答的情感分析研究方法,叫作分层匹配神经网络,该方法分为三步: 将问题和答案都分解为一个个短句,然后对于每个Q和A中的短句构建 [Q-sentence, A-sentence]单元。加入Question有N个句子,Answer有M个句子,那么我们就有N*M个这样的短句匹配单元。 使用一个QA双向匹配层,将每个[Q-sentence, A-sentence]匹配pair单元编码为一个向量,以便用于后续情感分析。注意这里的双向的含义,并不是指使用的是双向LSTM,而是指作者在计算匹配pair单元表示向量的时候,使用的Attention机制是双向的,问题短句和答案短句彼此互相做Attention,计算问题短句的时候使用答案短句的表示与之来做Attention,计算答案短句的表示的时候使用问题短句的表示来做Attention,这就是所谓的双向匹配。 使用自我匹配注意力层(self-matching attention layer)让模型自动捕捉每个[Q-sentence, A-sentence]匹配向量的重要程度,以便更好的推断Q-A的情感极性。这里是针对第二步生成的一个个匹配向量又做了一次Self-Matching Attention,这一次是句子级别的Attention。 (3)分层匹配神经网络结构详细说明 分层匹配神经网络的网络结构如下图所示: 下面是其中QA双向匹配机制的详细结构图:        注意上图是针对问题的第i个句子与回答的第j个句子所组成的问答短句pair来进行分析的,以这样一个短句pair作为输入,最后输出的是这个问答短句pair的一个相关性向量。所以下面的文字中提到的问题句子指的就是问题的第i个句子,回答句子就是回答中的第j个句子,都只是一个短句而已。        问题句子和答案句子匹配向量的计算思路很简单,实际上就是把问题句子和答案句子的最终表示拼接在一起,就表示它俩的匹配向量。计算句子表示向量的方法也很简单,就是把句子作为BiLSTM的输入,然后对各个时刻的输出加权求和,权重是通过Attention机制计算出来的,关键点也就在这个Attention的计算上,使用的是问题句子表示和答案句子表示彼此互相做Attention的方法,也就是所谓的双向匹配机制。        $D_{[i,j]}$中的第[a,b]个元素代表问题句子的第a个单词与回答句子中的第b个单词的语义相关性评分。作者采用了两个Attention,第一种是Answer-to-Question Attention,也就是使用答案句子对问题句子进行Attention。把$D_{[i,j]}$的每一行经过神经网络处理成权重(上角标r代表row),$D_{[i,j]}$的第k行代表问题句子的第k个单词与答案句子的每个单词的相关性,是词级别的Attention,实际上相当于用$H_{A_j}$与$H_{Q_i}$的每个时刻的输出进行Attention,然后计算每个时刻的权重,得到$H_{Q_i}$的加权后的表示$V_{[i,j]}^r$。        其中$H_{Q_i}$是问题Q的第i个句子经过BiLSTM后的表示,$N_i$是时刻数,即问题句子的单词数;$H_{A_j}$是回答第j个句子经过BiLSTM后的表示,$M_j$是时刻数,即回答第j个句子的单词数。其中$h_{j,m}\in R^{d’}$,即每个单词(时刻)的表示都是$d’$维的。具体计算公式如下: \[\begin{aligned} H_{Q_{i}} &=\left[h_{i, 1}, h_{i, 2}, \ldots, h_{i, n}, \ldots, h_{i, N_{i}}\right] \\ H_{A_{j}} &=\left[h_{j, 1}, h_{j, 2}, \ldots, h_{j, m}, \ldots, h_{j, M_{j}}\right] \end{aligned} \\D_{[i, j]}=\left(H_{Q_{i}}\right)^{\top} \cdot\left(H_{A_{j}}\right) \\\begin{array}{c}{U_{[i, j]}^{r}=\tanh \left(W_{r} \cdot D_{[i, j]}^{\top}\right)} \\ {\alpha_{[i, j]}^{r}=\operatorname{softmax}\left(w_{r}^{\top} \cdot U_{[i, j]}^{r}\right)}\end{array} \\ V_{[i, j]}^{r}=\left(H_{Q_{i}}\right) \cdot \alpha_{[i, j]}^{r}\] 其中$H_{Q_i}\in R^{d’\times N_i},H_{A_j}\in R^{d’\times M_j}$,所以$D_{[i,j]}\in R^{N_i\times M_j},W_r\in R^{d’\times M_j},w_r \in R^{d’}$,所以$U_{[i,j]}^r\in R^{d’\times N_i},\alpha_{[i, j]}^{r} \in \mathbb{R}^{N_{i}},V_{[i,j]}^r\in R^{d’}$。 实际上我们有: \(D_{[i,j]} = \left[ \begin{matrix} h_{i,1}h_{j,1} & h_{i,1}h_{j,2} & h_{i,1}h_{j,3} & \cdots & h_{i,1}h_{j,M_j}\\ h_{i,2}h_{j,1} & h_{i,2}h_{j,2} & h_{i,2}h_{j,3} & \cdots & h_{i,2}h_{j,M_j}\\ h_{i,3}h_{j,1} & h_{i,3}h_{j,2} & h_{i,3}h_{j,3} & \cdots & h_{i,3}h_{j,M_j}\\ \cdots & \cdots &\cdots &\cdots &\cdots &\\ h_{i,N_i}h_{j,1} & h_{i,N_i}h_{j,2} & h_{i,N_i}h_{j,3} & \cdots & h_{i,N_i}h_{j,M_j} \end{matrix} \right] \\ D_{[i,j]} = \left[ \begin{matrix} h_{i, 1}H_{A_{j}}\\ h_{i, 2}H_{A_{j}}\\ h_{i, 3}H_{A_{j}}\\ \ldots\\ h_{i, N_{i}}H_{A_{j}} \end{matrix} \right]= \left[ \begin{matrix} H_{Q_{i}}^{\top}h_{j, 1}, H_{Q_{i}}^{\top}h_{j, 2}, H_{Q_{i}}^{\top}h_{j, 3}, \ldots, H_{Q_{i}}^{\top}h_{j, M_{j}} \end{matrix} \right]\)        而第二种显然就是Question-to-Answer Attention,也就是使用问题句子对回答句子进行Attention。使用问题句子的表示$H_{Q_i}$对答案句子$H_{A_j}$的每个时刻进行Attention,把$D_{[i,j]}$的每一列经过神经网络处理成权重(上角标c代表column),同理我们最后可以得到答案句子的新表示向量$V_{[i,j]}^c \in R^{d’}$,计算公式如下: \[\\\begin{array}{c}{U_{[i, j]}^{c}=\tanh \left(W_{c} \cdot D_{[i, j]}\right)} \\ {\alpha_{[i, j]}^{c}=\operatorname{softmax}\left(w_{c}^{\top} \cdot U_{[i, j]}^{c}\right)}\end{array} \\ V_{[i, j]}^{c}=\left(H_{A_{j}}\right) \cdot \alpha_{[i, j]}^{c}\]        最后,这个Q-A短句匹配pair的表示向量$V_{[i,j]}$由$V_{[i,j]}^r$和$V_{[i,j]}^c$拼接表示起来,如下公式所示,$V_{[i,j]}\in R^{2d’}$其中$\oplus$代表连接操作符: \(V_{[i, j]}=V_{[i, j]}^{r} \oplus V_{[i, j]}^{c}\)        使用上面的双向匹配网络,我们把$N\times M$个短句匹配单元中的每一个单元作为输入,都可以输出一个匹配向量,所有现在我们就得到了$N\times M$个$2d’$维的向量,我们把它们拼成一个向量,然后做一个简单的句子级别的self-Attention,得到最终的的表示,最终再经过一个输出层即可,$p$就是最终分类的输出结果(四分类),如下所示: \[\begin{array}{c}{V=\left[V_{[1,1]}, V_{[1,2]}, \ldots, V_{[i, j]}, \ldots, V_{[N, M]}\right]} \\ {U=\tanh \left(W_{h} \cdot V\right)} \\ {\alpha=\operatorname{softmax}\left(w_{h}^{\top} \cdot U\right)}\end{array} \\ R=V\cdot \alpha \\p=softmax(W_l\cdot R+B_l)\] (4)关于作者分析的标注数据集: 数据来源:淘宝的“问大家”,主要包括美妆、鞋和电子产品这三个领域,每个领域收集了10000条问答对。 标注说明:对于情感分类的标注结果有四类,分别是positive, negative, neutral,conflict。其中conflict代表这个问答对中既包含对整体评价对象的积极情感,又包含消极情感。比如:“Q:这个手机好用吗? A:手机使用起来手感很好,非常流畅。但是电池不太好,一会儿就没电了!”。这个Q-A就会被标注为“conflict”。 而neutral并不一定是中立的,按照作者描述的规则,以下这些情况都会被标注为“neutral”: 答非所问。比如“Q:屏幕清楚吗? A:电池寿命很长!” 不确定的回答,“我不知道”这种回答。比如“Q:这款手机怎么样? A:不知道,买来送人的” 不包含感情的客观事实。比如“Q:手机什么颜色? A:蓝色” 对比两个或多个产品的问答。比如“Q:这款手机和iPhone6相比怎么样? A:那决定于你,它们是不可比较的” 下面是数据分布情况:

    2019/04/12 paper