<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>深度学习 on loveLZZ的个人博客</title>
    <link>https://leviathanion.github.io/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/</link>
    <description>Recent content in 深度学习 on loveLZZ的个人博客</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 28 Oct 2022 10:11:28 +0800</lastBuildDate>
    <atom:link href="https://leviathanion.github.io/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cross-Encoder和Bi-Encoder以及双塔模型和孪生网络</title>
      <link>https://leviathanion.github.io/cross-encoder%E5%92%8Cbi-encoder%E4%BB%A5%E5%8F%8A%E5%8F%8C%E5%A1%94%E6%A8%A1%E5%9E%8B%E5%92%8C%E5%AD%AA%E7%94%9F%E7%BD%91%E7%BB%9C/</link>
      <pubDate>Fri, 28 Oct 2022 10:11:28 +0800</pubDate>
      <guid>https://leviathanion.github.io/cross-encoder%E5%92%8Cbi-encoder%E4%BB%A5%E5%8F%8A%E5%8F%8C%E5%A1%94%E6%A8%A1%E5%9E%8B%E5%92%8C%E5%AD%AA%E7%94%9F%E7%BD%91%E7%BB%9C/</guid>
      <description>&lt;h1 id=&#34;cross-encoder&#34;&gt;cross-encoder&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;将query与document交叉输入到encoder中，得到一个得分&lt;/li&gt;&#xA;&lt;li&gt;使用该得分作为相似度&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;bi-encoder&#34;&gt;bi-encoder&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;将query与document分别输入到两个encoder中，得到两个得分&lt;/li&gt;&#xA;&lt;li&gt;使用两个得分进行相似度计算&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;figure&gt;&lt;a class=&#34;lightgallery&#34; href=&#34;https://leviathanion.github.io/encoder/Bi_vs_Cross-Encoder.png&#34; title=&#34;Bi_vs_Cross-Encoder&#34; data-thumbnail=&#34;/encoder/Bi_vs_Cross-Encoder.png&#34; data-sub-html=&#34;&lt;h2&gt;Bi_vs_Cross-Encoder&lt;/h2&gt;&lt;p&gt;Bi_vs_Cross-Encoder&lt;/p&gt;</description>
    </item>
    <item>
      <title>SimKGC</title>
      <link>https://leviathanion.github.io/simkgc/</link>
      <pubDate>Fri, 01 Jul 2022 13:37:07 +0800</pubDate>
      <guid>https://leviathanion.github.io/simkgc/</guid>
      <description>&lt;h1 id=&#34;simkgc模型&#34;&gt;SimKGC模型&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;使用InfoNCE损失改进原有边际排名损失，使其更专注于hard negative&lt;/li&gt;&#xA;&lt;li&gt;使用IB,PB和SN三种负样本种类来增加负样本数量&lt;/li&gt;&#xA;&lt;li&gt;使用图结构重排序来感知图结构&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;问题和动机&#34;&gt;问题和动机&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;最新的基于文本（预训练模型）的方法可以访问到额外的输入信息&#xA;&lt;ul&gt;&#xA;&lt;li&gt;归纳学习到训练过中看不到的实体的表示&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;但性能仍然大幅弱于基于嵌入的方法&#xA;&lt;ul&gt;&#xA;&lt;li&gt;基于文本的方法中对比学习的效率过低，主要是负样本太少&lt;/li&gt;&#xA;&lt;li&gt;基于嵌入的方法不涉及昂贵的文本编码计算，因此可以使用大量负样本&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;同一时间&#xA;默认配置下，RotatE在Wikidata5M数据集上可以训练&lt;strong&gt;1000&lt;/strong&gt;个负样本为&lt;strong&gt;64&lt;/strong&gt;的epoch&#xA;基于文本的方法KEPLER只能训练&lt;strong&gt;30&lt;/strong&gt;个epoch，负样本数量为&lt;strong&gt;1&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>PairRE</title>
      <link>https://leviathanion.github.io/pairre/</link>
      <pubDate>Thu, 09 Jun 2022 18:40:24 +0800</pubDate>
      <guid>https://leviathanion.github.io/pairre/</guid>
      <description>&lt;h1 id=&#34;pairre&#34;&gt;PairRE&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;既考虑了复杂关系建模的问题，又考虑了多种模式的关系&lt;/li&gt;&#xA;&lt;li&gt;通过修改RotatE的公式，将关系参数改为头尾两个，从而可以对复杂关系进行建模(RotatE本身就可以对多种模式关系建模)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;根据本文分析，RotatE本身可以对N-1关系建模，但是不能对1-N和N-N关系建模&lt;/p&gt;</description>
    </item>
    <item>
      <title>KBGAN</title>
      <link>https://leviathanion.github.io/kbgan/</link>
      <pubDate>Thu, 09 Jun 2022 18:40:16 +0800</pubDate>
      <guid>https://leviathanion.github.io/kbgan/</guid>
      <description>&lt;h1 id=&#34;kbgan模型&#34;&gt;KBGAN模型&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;首次使用生成对抗网路的思想，全篇关注负样本的生成质量问题&lt;/li&gt;&#xA;&lt;li&gt;采用生成对抗网络，采用概率模型作为生成器，采用距离模型作为鉴别器，训练鉴别器&lt;/li&gt;&#xA;&lt;li&gt;使用强化学习的策略梯度方法来训练生成器&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;问题和动机&#34;&gt;问题和动机&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;过去知识图谱嵌入领域的负采样仅仅根据概率来采样有以下两个问题&#xA;&lt;ul&gt;&#xA;&lt;li&gt;假负样本问题，有可能会有正确样本被当成负样本来采样&lt;/li&gt;&#xA;&lt;li&gt;低质量负样本问题，会产生一些质量很低的，对训练意义不大的样本(很容易与正样本区分开的样本，对训练贡献很小)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;收到对抗生成网络思想的影响，本文采用生成器来生成高质量负样本，采用鉴别器来计算嵌入&#xA;&lt;ul&gt;&#xA;&lt;li&gt;生成器使用基于概率的log-loss损失&lt;/li&gt;&#xA;&lt;li&gt;鉴别器使用基于距离的margin-loss损失&lt;/li&gt;&#xA;&lt;li&gt;由于存在离散的生成过程，因此不能使用基于梯度的方法进行优化，本文采用强化学习中的方差减少方法来进行优化。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;相关工作&#34;&gt;相关工作&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GAN最早用于生成图像&#xA;&lt;ul&gt;&#xA;&lt;li&gt;生成器接受噪声输入并输出图像&lt;/li&gt;&#xA;&lt;li&gt;鉴别器是一种分类器，将图像分类为真和假。&lt;/li&gt;&#xA;&lt;li&gt;训练GAN时，生成器试图生成真实图像来欺骗鉴别器，鉴别器试图将其与真是图像区分开。&lt;/li&gt;&#xA;&lt;li&gt;GAN还能够生成满足特定要求的样本&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;用于自然语言处理&#xA;&lt;ul&gt;&#xA;&lt;li&gt;梯度传播不适用于离散采样的步骤，因此不能使用原始GAN来生成离散样本，如自然语言句子或三元组&lt;/li&gt;&#xA;&lt;li&gt;SEQGAN使用强化学习来解决离散问题，使用了策略梯度和其他技巧来训练生成器。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;鉴别器不一定是分类器。后来很多方法使用回归器作为鉴别器。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;过去的解决方法&#34;&gt;过去的解决方法&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;过去采用随机替换来生成负样本，但这样容易产生低质量的样本&lt;/li&gt;&#xA;&lt;li&gt;对于log-softmax损失函数而言，通常会为一个正样本产生很多个负样本，因此总有高质量的负样本可以使用，因此低质量样本的影响不大&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;论文&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;(ComplEx)研究表明，当采用100：1的负/正比例会使得效果更佳&lt;/p&gt;</description>
    </item>
    <item>
      <title>CAKE</title>
      <link>https://leviathanion.github.io/cake/</link>
      <pubDate>Wed, 25 May 2022 15:27:53 +0800</pubDate>
      <guid>https://leviathanion.github.io/cake/</guid>
      <description>&lt;h1 id=&#34;cake模型&#34;&gt;CAKE模型&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;首次既考虑了假阴性问题，又考虑了低质量的问题，特别是假阴性问题几乎无人考虑&lt;/li&gt;&#xA;&lt;li&gt;将数据集做一定的处理，进行标注，为每个实体赋予一到多个概念&lt;/li&gt;&#xA;&lt;li&gt;基于概念生成常识，也即（概念，关系，概念）的三元组为常识1和（概念组，关系，概念组）为常识2&lt;/li&gt;&#xA;&lt;li&gt;使用域采样的假设，分别对1-N中1和N中的采用不同的采样方式，首先选取概念，然后从概念组中生成负样本&lt;/li&gt;&#xA;&lt;li&gt;最后链路预测选择实体时，选择符合常识1的概念中的实体&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;问题和动机&#34;&gt;问题和动机&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;本论文主要关注KGE中存在的问题&lt;/p&gt;</description>
    </item>
    <item>
      <title>QRNN</title>
      <link>https://leviathanion.github.io/qrnn/</link>
      <pubDate>Sat, 19 Feb 2022 10:09:43 +0800</pubDate>
      <guid>https://leviathanion.github.io/qrnn/</guid>
      <description>&lt;h1 id=&#34;qrnn&#34;&gt;QRNN&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;将RNN与CNN结合&#xA;&lt;ul&gt;&#xA;&lt;li&gt;卷积层用一种不使用未来数据的masked卷积来代替LSTM中参数矩阵与上一时刻隐藏层相乘的操作。捕获过去时刻信息的同时简化了LSTM中的的操作，因为在计算过程中删除了隐藏层，仅仅使用输入数据来捕获依赖&lt;/li&gt;&#xA;&lt;li&gt;池化层使用各种门结构，例如LSTM的门结构和GRU的门结构使得梯度流稳定&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;通过上述操作简化了LSTM的计算，使其可以并行&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;问题和动机&#34;&gt;问题和动机&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;标准的RNN包括门变种LSTM&lt;/strong&gt;等因为&lt;strong&gt;无法并行计算&lt;/strong&gt;，因此在&lt;strong&gt;长序列&lt;/strong&gt;的任务中性能受到了限制。&lt;/li&gt;&#xA;&lt;li&gt;将&lt;strong&gt;CNN&lt;/strong&gt;用于序列模型时&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;并行性更好&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;可以&lt;strong&gt;更好地扩展到长序列&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;但因为&lt;strong&gt;最大和平均池化时假设了时间不变性&lt;/strong&gt;，（在一次卷积池化过程中，时间步的顺序会被忽略，移动卷积核的过程中，进行相同的池化操作，不同时间步的重要性不同同样也会被忽略）因此无法充分利用&lt;strong&gt;大规模序列的顺序信息&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;因此作者提出了一种将&lt;strong&gt;CNN和RNN混合&lt;/strong&gt;的模型QRNN，既能&lt;strong&gt;跨时间步和小批量维度进行并行计算&lt;/strong&gt;，又使得&lt;strong&gt;输出取决于总体顺序&lt;/strong&gt;。&lt;strong&gt;性能更优秀且更节省时间&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;过去的解决方法&#34;&gt;过去的解决方法&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;将CNN应用到序列模型&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;character-level CNN(NIPS2015)假设了时间不变性，无法利用顺序信息&#xA;&lt;figure&gt;&lt;a class=&#34;lightgallery&#34; href=&#34;https://leviathanion.github.io/QRNN/character-levelCNN.png&#34; title=&#34;character-levelCNN模型&#34; data-thumbnail=&#34;/QRNN/character-levelCNN.png&#34; data-sub-html=&#34;&lt;h2&gt;该模型主要通过多个卷积层和池化层堆叠，沿时间步对序列进行卷积和池化来实现序列信息的捕获&lt;/h2&gt;&lt;p&gt;character-levelCNN模型&lt;/p&gt;</description>
    </item>
    <item>
      <title>SCRN</title>
      <link>https://leviathanion.github.io/scrn/</link>
      <pubDate>Thu, 17 Feb 2022 15:42:05 +0800</pubDate>
      <guid>https://leviathanion.github.io/scrn/</guid>
      <description>&lt;h1 id=&#34;scrn模型&#34;&gt;SCRN模型&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;通过为RNN添加一个参数缓慢变化的隐藏层来捕获长距离依赖，公式如下所示&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;\begin{align*}&#xA;s_t &amp;amp;= (1-\alpha)Bx_t + \alpha s_{t-1}&#xA;\\&#xA;h_t &amp;amp;= \sigma(Ps_t+Ax_t+Rh_{t-1})&#xA;\\&#xA;y_t &amp;amp;= f(Uh_t+Vs_t)&#xA;\end{align*}&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;约束该隐藏层中的B为对角矩阵，由于B为对角矩阵，且没有使用激活函数，所以该隐藏层的梯度流稳定&#xA;&lt;figure&gt;&lt;a class=&#34;lightgallery&#34; href=&#34;https://leviathanion.github.io/SCRN/RNN%E5%92%8CSCRN%E6%9E%B6%E6%9E%84%E5%9B%BE.png&#34; title=&#34;RNN和SCRN的架构图&#34; data-thumbnail=&#34;/SCRN/RNN%E5%92%8CSCRN%E6%9E%B6%E6%9E%84%E5%9B%BE.png&#34; data-sub-html=&#34;&lt;h2&gt;RNN和SCRN的架构图&lt;/h2&gt;&lt;p&gt;RNN和SCRN的架构图&lt;/p&gt;</description>
    </item>
    <item>
      <title>矩阵求导</title>
      <link>https://leviathanion.github.io/%E7%9F%A9%E9%98%B5%E6%B1%82%E5%AF%BC/</link>
      <pubDate>Wed, 19 Jan 2022 11:11:45 +0800</pubDate>
      <guid>https://leviathanion.github.io/%E7%9F%A9%E9%98%B5%E6%B1%82%E5%AF%BC/</guid>
      <description>&lt;h1 id=&#34;矩阵求导&#34;&gt;矩阵求导&lt;/h1&gt;&#xA;&lt;h2 id=&#34;分子布局和分母布局&#34;&gt;分子布局和分母布局&lt;/h2&gt;&#xA;&lt;p&gt;标量，向量，矩阵之间的求导，相对于标量对标量的求导，需要考虑一个额外的因素，就是求导之后的布局，例如标量对列向量求导之后是按照列向量排列还是按照行向量排列并没有一个确切的规定。因此这里我们引入分子布局和分母布局的概念。&lt;/p&gt;</description>
    </item>
    <item>
      <title>IRNN</title>
      <link>https://leviathanion.github.io/irnn/</link>
      <pubDate>Thu, 23 Dec 2021 10:27:32 +0800</pubDate>
      <guid>https://leviathanion.github.io/irnn/</guid>
      <description>&lt;h1 id=&#34;irnn模型&#34;&gt;IRNN模型&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;novelty&#34;&gt;Novelty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;专注于解决RNN模型中的梯度消失问题&lt;/li&gt;&#xA;&lt;li&gt;使用单位矩阵来初始化RNN从而部分解决梯度消失和梯度爆炸问题&lt;/li&gt;&#xA;&lt;li&gt;使用ReLU激活函数代替Sigmoid激活函数也用于解决梯度消失问题（要配合第二点，否则很有可能梯度爆炸）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;问题和动机&#34;&gt;问题和动机&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;梯度消失&lt;/strong&gt;和&lt;strong&gt;梯度爆炸&lt;/strong&gt;的问题导致RNN模型难以学习到&lt;strong&gt;远距离依赖&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;过去的解决方法依赖于复杂的&lt;strong&gt;优化技术&lt;/strong&gt;和&lt;strong&gt;网络架构&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;提出一种较为&lt;strong&gt;简单&lt;/strong&gt;的方式进行优化&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;过去的解决方法&#34;&gt;过去的解决方法&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用&lt;strong&gt;Hessian-Free&lt;/strong&gt;来代替&lt;strong&gt;SGD&lt;/strong&gt;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;（Hessian-Free可以关注到曲率）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;虽然效果上有改进，但并不常用，原因可能如下&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
