Joint Learning of QA and QG

Brief introduction

大背景:QA和QG是两个非常相关的任务,但是到目前为止没有进行非常好的结合(作者看来)。

本文大框架:两个联合训练模型+三个具体任务模型,其中的具体任务有:问题生成,答案生成,问句相似度判定。

两个联合训练模型是指:

  • 第一个联合训练模型算是GAN形态的一个变种,但是正负样本判定有讲究。
  • 第二个联合训练模型是Dual Learning对偶学习,利用约束项来保证两个任务对偶性。

三个具体任务模型是指:

  • QA模型(Table-based QA),一个问题+一堆候选的表,选一个最合适的表。
  • QG模型(Table-based QG),一个表,生成一个答案最可能是给定表的问题。
  • 联合判定模型(Collaboration Detector,CD model),用来判定QG生成的问题送给QA时的标签。

然后本文最后对上述的所有模型做了对比,证明第一个联合训练模型在特定调参之后效果最好。

Task introduction

在本文的“Experiment”部分中,针对Table Based QA and QG给出了说明,同时也针对Document Based QA and QG做了介绍。

这里根据自己的一些理解,来简单重述一下原有的任务。

Table Based QA and QG

QA中正样本给出的方式,如下:

即每个Query对应一个完整的表格,表格中带有“One or more Headers, One or more Cells, One Caption”。

而针对于QA任务而言,可以简化成以下的流程:

Input: a query, a collection of candidate table answers.
Output: a table which is most relevant to this query.
Algorithm: give a score of each table, select the biggest table.

针对QG任务而言,可以简化成以下的流程:

Input: a table with one or more Header(s), one or more Cell(s), one Caption.
Output: a query which can be answered by given table.
Algorithm: generate one sentence from input table.

关于数据集,文章中使用的是商业搜索引擎的真实数据,并经过人工标注分为了Table-based部分。有1.49M个数据(1.29M Train, 0.1M Dev, 0.1M Test)。

Document Based QA and QG

文中说的非常的简单,而且做的也非常的简单。针对三个基本模型,没有进行改变,原因是它把任务当成了上面的一个特殊情况。

Document 就是 Table,Document | Table with one long Caption, zero Header and zero Cell

针对QA任务而言,可以简化为以下的流程:

Input: a question, a list of candidate answer sentences from a document.
Output: a most relevant answer sentence which can best answer the question.
Algorithm: give scores of all candidate sentence, sort them, return answer.

针对QG任务而言,可以简化成以下的流程:

Input: a sentence.
Output: a question which can be best answered by the given sentence.
Algorithm: generate the question.

数据集使用的是MARCO dataset,因为作者嫌WikiQA dataset太小。

Evaluation Metric

QA: Mean Average Precision(mAP), Precision@1(预测准确的Acc)。

QG: BLEU-4, 一个新的评测指标。

不过QA里面用了一个candidate retrieval adopted,生成每个问题50个candidate table然后去做具体的任务。

Task-specific Model

本文中主要实现了三个模型,分别是QA、QG、CD模型。

其中QA和QG模型基础架构都是table-based的结构,在RNN基础上结合Memory Network、Attention、Copying Mechanism等技术;

CD model为常规的RNN为主,结合对位相乘(element-wise multiplication)的方法,来判定两个“question”之间的相关性。

三个Task-specific Model的任务分别为:

  • QA模型的任务是给每个Table打分,计算每个Table和Query的相关程度。
  • QG模型的任务就是根据Table生成一个question,并尽力拟合原有的答案。
  • CD模型的任务就是判定QG生成的样本到底应该打正样本标签还是负样本标签

Question Answering Model


基本架构如上图↑

针对其中的组成部分,下面将进行从下往上进行介绍。

先介绍针对Query的特征提取:

Embedding层:用的词嵌入,应该是常用的Embedding,没有进行过多说明。

Bi-GRU Recurrent层:利用双向GRU构建主干特征提取网络,将不定长的查询映射到定长的query vector。其中用到的是Bi-GRU里面两个方向各取最后一个输出,进行concat线性拼接(显然),获得完整的query vector。

然后说明针对Table的特征提取:

Embedding层:不用说大家也知道,第一步是把词语映射到向量空间的Embedding,跟上面的一样。

Bi-GRU Recurrent层:这个是针对图表的标题也就是Caption使用的,利用与之前的一样的策略去设计网络(训练是分开的)。

有些搞不明白的Header和Cell的大箭头:文中说的是“as a vector”,然后作为“External Memory”去做Attention,这里的“as a vector”是经过了Bi-GRU映射成为定长的向量,还是仅仅通过Embedding层+concat获取的不定长matrix?(可能Reference中有说明,猜测是用了Bi-GRU映射)

然后说明三个不同部分(query、header&cell、caption)vector的拼接:

针对query和header&cell的拼接,文中采用的是以query vector为主,针对每个header&cell vector为external memory进行Attention,将获得的针对不同向量的权重信息(Attention获得权重)进行加权,获得最终的Attention作用完成后的加权平均向量。

为什么要分别进行Attention而不是concat到一起做?因为Table的属性决定了交换任何两行、两列都不会影响Table整体的内容,也就是不应该影响结果。因此如果采用concat的方案势必会导致引入错误的位置信息,从而效果并不理想。

而针对Caption和query的拼接,文中采用了Element-wise multiplication,点乘的方法进行计算。也就是把文中的caption vector和query vector进行点乘,获取乘积向量;同时文中指出,”共现词“的个数直接反映了相关程度,因此把”Embedding of co-occurred word count“作为增加的特征,一起参与到最后的concat的过程中(But,好像没有在上图中体现到?)

最后的部分:

Attention之后获得了整个表格Header&Cells的加权平均向量值,作为第一个备选vector。

在进行了element-wise multiplication之后的query和caption向量作为第二个备选vector。

最后是Embedding of co-occurred word count作为第三个备选vector。

三个vector进行concat,然后跑一个MLP做二分类问题,最后套接softmax,完成分类概率输出(对应相关性)。

大概是对每个candidate table都进行运算相关性,然后选取其中得分最高的一个作为答案。

Question Generation Model


基本架构如上图↑

其中的组成部分,从左往右进行介绍(右面有一些黑科技)。

Caption的Bi-GRU:这个模型基本与上面的QA中的Bi-GRU相同,不过这里引入了特殊的Hidden States,也就是"the vector of each word in the caption",并且这个hidden states拼接到了Bi-GRU的两个方向中,辅助完成编码。

Mix of Caption and Header&Cell:这里的Header&Cell还是惊人的表示为了vector,跟上面的模型是一样的。不过,针对参与加权平均的每个Cell向量,都会负载其对应的header向量,即”The representation of each cell is also mixed with the corresponding header representation“。最后输出的Decoder的Initial vector是caption vector、header vector、cell vector(Mixed with its header vector)的平均。

顺着主线看下去Decoder: Decoder的基本架构是一个传统的”Attention based GRU RNN“,不过针对本文的模型,提出了两个改进策略:

  1. 关于针对每个Header&Cell进行Attention这件事。基于观察,人在生成问卷的时候往往核心关注在某个或者某些特定的Header&Cell中的格子或者Caption中某个单词,而这两者分别对应了Table中的vector、Bi-GRU过程中生成的向量,所以本文引入了一个叫做”recurrent attention mechanism“来计算每个候选向量的相关性。通过这个相关性,作为Decoder的一个hidden states,参与解码过程。

  2. 在Table中往往有些词出现次数不多但信息量极大,因此需要单独关照。为了保证”low-frequent words“的生存环境,让模型更多关注这些词,引入了一个机制叫做Copying mechanism(详见参考文档,我也没咋看懂)。但是在传统的RNN decoder里面,生成的答案基本都是dictionary中进行softmax的结果,因此本文在原有的Copying mechanism中拓展了一个”flexible copy mechanism“能保证处理那些真的不常用但信息量极大的词。具体做法是,在decoder中生成的文本从单一的dictionary增加了现有的copy mechanism。然后这里有一个两边加权的方法,计算在下面(水平有限不做解读)

这两个改进都做完之后的效果就是:在decoder的时候double了hidden vector的length,多出来的这部分放attribute embedding,并且把attribute vector对应的attention值作为copy from that attribute的可能性。然后在最后环节把copying mechanism加入到生成答案的过程中即可。

这个模型最后的任务:说白了就是尽量生成的跟标准答案类似,然而由于可以生成非常多的答案,因此采用**Beam Search(束搜索)**来保留top-k的答案,对这些答案进行进一步的Loss计算。(Loss在具体的Learning method中有附加项,但是本质上都是在最小化"negative log-likelihood")。

Collaboration Detector

原论文中对这个模型轻(没)描(有)淡(附)写(图),可以理解为下面这种结构(暂且吧):

QA模型中最后加粗红色线就是CD model的主干线路:两个问句进行判定相关性(然后具体的CD model是下图这样的)。

CD model首先对文本进行Embedding,然后分别针对生成的question和真实的question进行Bi-GRU特征提取,按照之前的方法两个方向进行concat,生成自己的特征向量。然后两个特征向量进行element-wise multiplication获得新的特征向量,新的特征向量与co-occurred word count embedding进行拼接,最后一个softmax生成判定相关性的系数。

文中提及到的CD model的训练:一部分用的是Quora dataset,另一部分是web queries。经过了一个启发式的样本生成规则完成了具体训练数据的生成,然后单独进行训练,最后达到了83的准确度,也就是后面用于Joint Learning的CD model。

训练方法相关的论文片段对应如下:

Small Summary

本章中介绍的算法模型对应原论文中的第五章,分别对应

  • QA : 5.1 The Question Answer Model
  • QG : 5.2 The Question Generation Model
  • CD : 5.3 The Collaboration Detector

其中CD model是训练完成之后直接在Joint Learning中使用的,而QA和QG作为主模型,在后续两种学习方法中更新方式略有区别。

Joint Learning Model

这段主要说明为啥要用联合学习,以及在联合学习中两个模型能够带给对方的增益在哪里。同时介绍两种不同的联合学习方法,也就是文中给出的two algorithm,简单说明本文中所给出的联合学习方法和思想。

How to do joint learning

从以QA任务为主的视角来看,QA的表现高度依赖数据质量和损失函数。而QG在联合学习中,刚好可以提供新的训练实例,同时作为约束项参与到损失函数中。因此本文中的两个方法(Extend GAN & Dual Learning)分别从两个方面来进行

  • Extend GAN:有选择性的去给QG生成的新问答对打标签,也就是“assign label to additional question-answer pairs”,这里区别于传统的GAN的点在于,传统的GAN将所有的“additional data”全都打上了“false”的标签,而本文中采用的方法是引入“CD model”来计算生成的数据应该如何进行label。针对不同的打标签阈值,文中给出了测试曲线,通过该测试曲线选择最佳参数即是最佳模型。
  • Dual Learning:借鉴传统的Dual Learning的范式,也就是概率分布相关性,通过引入概率相关约束项来保证双方训练结果满足Dual Learning的限制。具体的方法在后续的小节会有介绍。

以QG任务为主的视角来看,QG最重要的就是生成跟标准答案更类似的语句,但是吧,传统的问题只是关注在文本的相似性,并没有考虑到这个问句本身是不是合理的,这里补充一个我的理解:这个合理指的可能是句法上的合理和问句与标准答案之间的合理。因此QA就在这上面发挥作用了。

  • Extend GAN:增加约束项,以GAN的形式。通过计算这个问句是不是一个合理的问句来保证生成的问句它确实合理。
  • Dual Learning:增加约束项,以概率分布的形式。同时增加概率相关性保证,保证两个问题的概率相关性。

在此基础上,文章作者发现QG模型采用policy gradient,也就是策略梯度(好像在强化学习中用的多)能够较好的提升QG的性能,于是作者把QG的损失函数上加上了policy gradient。

然后将从两个方面讲解文中的Joint Learning,也就是Extend GAN和Dual Learning。

Generative Collaborative Network

这个就是Extend GAN with CD model的模型,文中称之为GCN(个人感觉前者更有特征一些)

算法流程模型:

从这个模型可以看出来:

  • QA算法提升的主线在于:经过QG扩充了的数据,在通过CD model打标签,然后补充上对应的loss约束项,完成QA的更新。

  • QG算法提升的主线在于:通过QA给出的与正确答案之间的概率差距,来补充policy gradient,更新QG模型。

整体思路在上面可以看到,具体的算法流程在下面:

这里文中给出了两个保证训练准确性的方法:

  • pre-training, QA和QG在joint learning之前都经过了pre-training,来保证结果可靠。
  • baseline strategy, 来逐渐decrease QG的学习率,来保证QG能够效果好。

从损失函数入手,来回看整个训练过程:

  • QA函数模型的gradient,第一部分也就是第一个加号之前的部分,是正常的数据里面取出正负数据,然后做了二分类判定,最后计算交叉熵,最大化这个相似度。第二部分是也就是第一个等号之后的两部分,其实跟上面的非常相似。
    log ⁡ P q a ( a i p , q i p ; θ q a ) + log ⁡ ( 1 − P q a ( a i n , q i n ; θ q a ) ) \log P_{qa}(a_i^p,q_i^p;\theta_{qa}) + \log(1-P_{qa}(a_i^n,q_i^n;\theta_{qa})) logPqa(aip,qip;θqa)+log(1Pqa(ain,qin;θqa))
    原本的这个交叉熵,所有的正例都是 a i p , q i p a_i^p, q_i^p aip,qip,反例对应 a i n , q i n a_i^n,q_i^n ain,qin。然后后面这个
    I b q a ( x ) = { 1 , x ≥ b q a 0 , x < b q a I_{b_{qa}}(x) = \begin{cases} 1 &, x \geq b_{qa}\\ 0 &, x < b_{qa} \end{cases} Ibqa(x)={10,xbqa,x<bqa
    这样来看后面的损失函数就显得非常的合理了起来,比如:
    λ q a ∑ i = 1 m ( { log ⁡ P q a ( a i p , q i 0 g ; θ q a ) , P c d ( q i p , q i 0 g ) ≥ b q a log ⁡ ( 1 − P q a ( a i p , q i 0 g ; θ q a ) ) , P c d ( q i p , q i 0 g ) < b q a ) \lambda_{qa}\sum_{i=1}^{m} (\begin{cases} \log P_{qa}(a_i^p, q_{i0}^g;\theta_{qa}) &, P_{cd}(q_i^p, q_{i0}^g) \geq b_{qa}\\ \log( 1 - P_{qa}(a_i^p, q_{i0}^g;\theta_{qa})) &, P_{cd}(q_i^p, q_{i0}^g) < b_{qa}\end{cases}) λqai=1m({logPqa(aip,qi0g;θqa)log(1Pqa(aip,qi0g;θqa)),Pcd(qip,qi0g)bqa,Pcd(qip,qi0g)<bqa)
    其实就是利用了CD model区分了一个正反例,然后按照 λ q a \lambda_{qa} λqa的标准去作为损失函数更新到原先的模型里面去了。

  • QG模型的损失函数非常的简单,是一个常规损失函数+policy gradient,不过针对policy gradient,由于我水平有限所以没有进行详细分析。似乎policy gradient来自于强化学习(我不会)。

    就长这样,利用 λ q g \lambda_{qg} λqg来控制policy gradient,来保证效果。

有几个小地方:CD model是单独训练好了的,不需要在这里进行训练。QG生成的答案非常的多,采用beam search来保证启发式的前m个可能的答案。

Dual Learning of QA and QG

相比前面的GCN模型,这个模型的基础就相对简单一些。基本的思想就是Dual Learning中两个任务可以互逆,通过贝叶斯公式可以得到:
P ( q , a ) = P ( a ) ∗ P ( q ∣ a ) = P ( q ) ∗ P ( a ∣ q ) P(q, a) = P(a) * P(q|a) = P(q) * P(a|q) P(q,a)=P(a)P(qa)=P(q)P(aq)
然后就可以套上我们的QA和QG的model了!
Q A : P q a ( a ∣ q ) → P ∗ ( a ∣ q ) Q G : P q g ( q ∣ a ) → P ( q ∣ a ) QA : P_{qa}(a|q) \rightarrow P^*(a|q)\\ QG : P_{qg}(q|a) \rightarrow P(q|a) QA:Pqa(aq)P(aq)QG:Pqg(qa)P(qa)
这里需要说明的是,QA模型不可能遍历所有的可能的answer,来计算出真实的 P ( a ∣ q ) P(a|q) P(aq),因此本文中近似采用所有候选集中对应的 P ( a ∣ q ) P(a|q) P(aq)来代替全分布下的概率,计算公式与softmax类似,为下式:
P ( a ∣ q ; θ q a ) = e x p ( f q a ( a , q ; θ q a ) ) e x p ( f q a ( a , q ; θ q a ) ) + ∑ a ′ ∈ A ′ e x p ( f q a ( a ′ , q ; θ q a ) ) P(a|q;\theta_{qa}) = {exp(f_{qa}(a,q;\theta_{qa})) \over exp(f_{qa}(a,q;\theta_{qa})) + \sum_{a'\in A'} exp(f_{qa}(a',q;\theta_{qa}))} P(aq;θqa)=exp(fqa(a,q;θqa))+aAexp(fqa(a,q;θqa))exp(fqa(a,q;θqa))
Joint learning的第二个算法的流程如下:

仍然是从梯度入手,梯度里面有一些超参数 λ a , λ q \lambda_{a}, \lambda_{q} λa,λq就不再说明了,针对其中的函数项进行说明:

  • l q a ( f q a ( a i p , q i p ; θ q a ) , 1 ) l_{qa}(f_{qa}(a_i^p, q_i^p;\theta_{qa}), 1) lqa(fqa(aip,qip;θqa),1)和它后面的那一项,都是常规的QA的信息熵。

  • l q g ( q i p , a i p ) = − log ⁡ P q g ( q ∣ a ; θ q g ) l_{qg}(q_i^p, a_i^p) = -\log P_{qg}(q|a;\theta_{qg}) lqg(qip,aip)=logPqg(qa;θqg)是采用正例训练得到的QG的常规损失函数项。

  • l d u a l ( a i p , q i p ; θ q a , θ q g ) l_{dual}(a_i^p, q_i^p;\theta_{qa}, \theta_{qg}) ldual(aip,qip;θqa,θqg)这一项在QA和QG两个任务中进行共享,它的具体计算方法如下:
    l d u a l ( a i p , q i p ; θ q a , θ q g ) = ( log ⁡ P a ( a ) + log ⁡ P ( q ∣ a ; θ q g ) − log ⁡ P q ( q ) − log ⁡ P ( a ∣ q ; θ q a ) ) 2 l_{dual}(a_i^p, q_i^p;\theta_{qa}, \theta_{qg}) = (\log P_a(a) + \log P(q|a;\theta_{qg})- \log P_q(q) - \log P(a|q;\theta_{qa}) )^2 ldual(aip,qip;θqa,θqg)=(logPa(a)+logP(qa;θqg)logPq(q)logP(aq;θqa))2
    这个式子的源头在于上面的那个约束项 P q q ∗ P ( a ∣ q ; θ q a ) = P a ( a ) ∗ P ( q ∣ a ; θ q g ) P_q{q} * P(a|q;\theta_{qa}) = P_a(a) * P(q|a;\theta_{qg}) PqqP(aq;θqa)=Pa(a)P(qa;θqg),也就是概率的贝叶斯公式。这里面 P a ( a ) , P q ( q ) P_a(a), P_q(q) Pa(a),Pq(q)都是语言模型的一个计算,本文中采用的是“bigram language models”,而剩下两个的计算,QG采用的是Markov链的计算,QA采用上面说过的那个softmax计算。

    至于为啥式子长这样,因为数学基础太差,我还没有看懂。

文中说这个训练是可以从零开始的,不需要像上面那个GCN一样,需要pre-training,就可以达到不错的效果。

Experiment

文中利用一些常用的模型比如BM25等,针对不同的QA和QG的任务分别进行了对比,也给出了在参数选择上的一个格点图,展示模型的效果。

Table-based QA and QG

这个是QA的成绩,其中Dual是第二个联合训练方法,能够达到不错的mAP和Acc@1,但是还是不如GCN那个来的实在。

这个是QG的成绩,可以发现两个方法中,除了GCN里面collaborative的部分,不太比得过Seq2SeqPara,其他的方法都要强于baseline和Seq2SeqPara。

GCN有三个部分,其中competitive是把所有QG生成的问答对都当成negative了,对应的collaborative是把所有QG生成的都当作正例。final版本则是针对label进行了 b q a b_{qa} bqa的一个择优,择优方式和参考是针对不同的取值进行测试。如下:


于是最后选择了最好的那个 b q a b_{qa} bqa,对应两个表格中的GCN(final)。

同样,作者还把文中给出的联合学习方法用在了其他几个经典模型上面,来说明他们这个联合学习方法确实可以提升模型性能,详细的测评图如下:

这里作者还给了一个图,说明QG任务生成问句:

Document-based QA and QG

在这个任务上,利用MARCO dataset进行性能的对比,其中MARCO数据集的大小情况如下:

两个模型跑出来的对比结果如下:

QA↑,可以看到GCN的最佳结果显然最好。

QG↑仍然是GCN最佳结果非常棒。不过这里的Dual Learning也比之前的好一些了。

Discussion

  1. QG模型有时候抓不住重点,因为answer sentence中往往包含比question sentence中更多的信息。
  2. 数据集针对这种体量的模型来说还是非常小(指MARCO),需要更大的数据集才能发挥更好的效果。
  3. 用来leverage the duality的方法主要有两个类别:
    1. 在训练过程中的,也就是本文用的这种。不过与dual learning不同,本文采用对偶约束项 l d u a l l_{dual} ldual的方式,使得模型不需要进行pre-training就能够得到比较好的结果。
    2. 在推理过程中的,本文也能用。针对单独的任务,比如QG,可以把QG生成的question放在QA里面测一下,然后再决定到底返回哪个question,不过现在并没有做,在本文的future work中。
  4. 本文用的QA、QG模型太基础,可以换更复杂的网络。同时语言模型 P q ( q ) , P a ( a ) P_q(q), P_a(a) Pq(q),Pa(a)也比较基础,可以换成可以联合训练的神经网络模型。
  5. QG的那个评测指标还有待提升,BLEU只是判定文本相似度,而不是真正的问题相似度。

Source

Y. Sun et al., “Joint Learning of Question Answering and Question Generation,” in IEEE Transactions on Knowledge and Data Engineering, vol. 32, no. 5, pp. 971-982, 1 May 2020, doi: 10.1109/TKDE.2019.2897773.

Joint Learning of QA and QG阅读笔记相关推荐

  1. q learning 参数_Soft Q-Learning论文阅读笔记

    标题|作者 Reinforcement Learning with Deep Energy-Based Policies Tuomas Haarnoja, Haoran Tang, Pieter Ab ...

  2. 《Sequence to Sequence Learning with Neural Networks》阅读笔记

    Abstract DNNs 可用于各种复杂的学习任务并取得很好的效果,但是 DNNs 不能用于序列到序列的映射.这篇论文提出了一种端到端(end-to-end)的神经网络模型,来学习这种映射关系.作者 ...

  3. 《Learning without Forgetting》 论文阅读笔记

    文章目录 1. 引言 2. 相关工作 2.1 方法对比 2.2 局部相关方法 2.3 同时期的方法 3. 不遗忘学习 原文链接: Learning without Forgetting 1. 引言 在 ...

  4. 《A sparse annotation strategy based on attention-guided active learning for 3D medic》--阅读笔记-Arxiv

    之前读过,但是没做笔记,就直接拉的其它作者的笔记了.感谢 https://blog.csdn.net/sinat_35779431/article/details/99682540 文章链接:http ...

  5. Mutual Graph Learning for Camouflaged Object Detection阅读笔记

    CVPR 2021 Qiang Zhai, Xin Li, Fan Yang, Chenglizhao Chen, Hong Cheng, Deng-Ping Fan https://arxiv.or ...

  6. MicrosoftAsia-Semantics-Aligned Representation Learning for Person Re-identification---论文阅读笔记和工程实现总结

    给我一瓶酒,再给我一支烟,说code就code, 我没的是时间 各位看官老爷,欢迎就坐观看. 博主Github链接:https://github.com/wencoast 原理流程 摘要 就是去掉RE ...

  7. 《Learning Without Forgetting》(LWF)阅读笔记

    Learning Without Forgetting Abstract   这篇文章仍然从最简单的分类任务入手,LWF是结合知识蒸馏(Knowledge Distilling)避免灾难性遗忘的经典持 ...

  8. 【2D多目标跟踪】Quasi-Dense Similarity Learning for Multiple Object Tracking阅读笔记

    1.为什么要做这个研究(理论走向和目前缺陷) ? 之前的2D MOT里只用gt样本训练(基本沿用reid的训练所用的损失)embedding特征(记为reid特征).但是GT样本是稀疏的,没有充分利用 ...

  9. Open-world Machine Learning: Applications, Challenges,and Opportunities || 阅读笔记

    研究背景:传统的机器学习(主要是监督学习)遵循封闭世界学习的假设(将当前未知的事物都设为假的假设),对于他们每个测试类都有一个训练类可用.然而,这样的模型无法识别训练期间看不见的类(即看不见的类),开 ...

最新文章

  1. R语言ggplot2可视化分面图(faceting)、在所有的分面中添加相同的参考基准曲线(overlay a base or reference plot to all facets )
  2. oracle shutdown 默认,Oracle的shutdown命令
  3. Spark 1.4连接mysql诡异的问题及解决
  4. linux关于防火墙的一些知识
  5. 手机隔空充电,会有辐射吗?
  6. ?Web开发者需要知道的CSS Tricks
  7. 程序员外包避坑指南?
  8. 第十节(补课):函数的扩展 — 箭头函数的this使用
  9. 单击跳转_如何在100张工作表中快速实现查找和跳转
  10. Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
  11. windows10常用快捷键
  12. Android使用相机demo
  13. 【信息系统项目管理师】第7章-项目成本管理 知识点详细整理
  14. 作业:xml练习2-写.xml的外部约束文件(dtd文件)
  15. 现在大家如何搭建一款神兽H5游戏
  16. springboot跳转外部链接
  17. 和华明诚:提高店铺关注的操作方法
  18. android知乎小圆圈刷新效果
  19. Conflux 网络已获 Cobo 钱包支持
  20. 呆萌程序猿的恋爱奇葩说

热门文章

  1. mssql保留两位小数
  2. DBA思考系列——凛冬将至,丧钟为谁而鸣!
  3. fel的简单使用及介绍
  4. 简单分析RLP编码原理
  5. MySQL基础——DML语句
  6. 【转载】2010年国内开源状况
  7. 数字设计自学-数字系统设计教程3:自写思考题答案
  8. vim 显示行号 (Linux)
  9. opencv图像显示函数
  10. 新能源汽车的充电、电池包的组成、充电的设备