Tensorflow的采样方法:candidate sampling

Posted luchi007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow的采样方法:candidate sampling相关的知识,希望对你有一定的参考价值。

采样介绍

假如我们有一个多分类任务或者多标签分类任务,给定训练集 (xi,Ti) ,其中 xi 表示上下文, Ti 表示目标类别(可能有多个).可以用word2vec中的negtive sampling方法来举例,使用cbow方法,也就是使用上下文 xi 来预测中心词(单个target Ti ),或者使用skip-gram方法,也就是使用中心词 xi 来预测上下文(多个target( Ti )).

我们想学习到一个通用函数 F(x,y) 来表征上下文 x 和目标类y的关系,如Word2vec里面,使用上下文预测下个单词的概率。

完整的训练方法,如使用softmax或者Logistic回归需要对每个训练数据计算所有类 yL 的概率 F(x,y) ,当 |L| 非常大的时候,训练将非常耗时。

“candidate sampling”训练方法包括为每一个训练数据 (xi,Ti) 构造一个训练任务,使得我们只需要使用一个较小的候选集合 CiL ,就能评估 F(x,y) ,典型的,candidate set Ci 包含目标类别 Ti 和一些随机采样的类别 SiL

Ci=TiSi , Si 的选择可能依赖 xi Ti ,也可能不依赖。

F(x,y) 可以使用神经网络计算来表征(也就是TensorFlow里面常用的logits)

TensorFlow中各种采样


其中: