Update negative sampling in hn_mine to fix issue #464#470
Update negative sampling in hn_mine to fix issue #464#470staoxiao merged 3 commits intoFlagOpen:masterfrom
Conversation
|
感谢您的PR!但是目前的操作看起来比较复杂,可能会导致比较大的时间消耗。这块可能还需要再好好考虑一下。 |
@staoxiao 您好,我这边修改了一下策略。 方法我是选择多随机采样一个负样本用于备用,然后采样后查看正样本是否被采样,若正样本在则用备份样本代替,否则直接舍弃备用样本即可。这样每个样本采样后再进行过滤,只需要遍历负样本数量的列表即可。 测试我这边使用数据集大致测试了一下:使用 10 万个样本的数据集进行负样本挖掘,设置脚本参数 结果
|
|
@shtdbb , 非常感谢您的PR! 代码建议改为这样: |
非常感谢您的耐心!很不好意思,我忽略了 |
|
thanks~ |
关于解决 #464 的修改。
避免困难样本挖掘时,当召回负样本数量少于预设负采样数量,会随机采样到正样本、或重复采样负样本的问题。
修改为,默认从
corpus中剔除正例和已召回的负例,再进行随机采样;若剔除后corpus为空,说明需要重复采样负样本才能满足负采样数量要求,则只剔除正样本、重复采样负样本即可。