《Cross-modal Zero-shot Hashing》实验设置

CZHash[1] 是一篇 zero-shot hashing 的工作,有在 multi-label 数据集上做实验。经与作者[3]确认,这里记录此文的实验设置,对照原文 IV.B 节看,本文符号有所不同。

Dataset

一个完整的数据集,如 MIR-Flickr25k,记为 O = { o i } i = 1 n = { v i , t i , l i } i = 1 n O=\{o_i\}_{i=1}^n=\{v_i,t_i,l_i\}_{i=1}^n O={oi}i=1n={vi,ti,li}i=1n v i v_i vi 是第 i 张 image, t i t_i ti 是 text, l i l_i li 是 label。记 class set 为 C = { c k } k = 1 K C=\{c_k\}_{k=1}^K C={ck}k=1K,共 K 个类。因为是 multi-label 数据,假设 l i l_i li 是 multi-hot 的 0/1 向量。

Setting (a)

谓之 cross-modal hashing baseline experiments,是普通的 cross-modal retrieval 的划分。O 分成两部分:retrieval set D D D 和 query set Q Q Q。其中 D D D 同时用作 training set,且全部都是 labeled 的。这和 DCMH[4] 的划分同。

Setting (b)

谓之 cross-modal zero-shot hashing experiments,将 C 分成 seen classes S ⊂ C S\subset C SC 和 unseen classes U ⊂ C U\subset C UC 两部分, S ∪ U = C S\cup U=C SU=C S ∩ U = ∅ S\cap U=\emptyset SU=。其中 S 占 C 的 80%、U 占 20%。

其限制 training set 中只能有 seen classes、test set 只有 unseen classes。有两种可行的方案:

  1. training 和 test set 各筛掉不合法的 data,伪代码:
    # filter training set
    training_set_b := {}
    for each o in training_set:
        if o.l has NO intersection with U:
        	add o to training_set_b
    
    # filter test set
    test_set_b := {}
    for each o in test_set:
    	if o.l has NO intersection with S:
    		add o to test_set_b
    
    其中 training_set 即 D,test_set 即 Q,将 training_set_b 记为 D ( b ) D^{(b)} D(b)test_set_b 记为 Q ( b ) Q^{(b)} Q(b)。此时 training set 缩水了,但 retrieval database 还可以是整个 D。
  2. 筛数据,而是筛 labels,将 training data 的 label 中属于 U 的、test data 的 label 中属于 S 的置零,伪代码:
    # modify training set labels
    training_set_b := training_set
    for each o in training_set_b:
        for each u in U:
        	o.l[u] := 0
    
    # modify test set labels
    test_set_b := test_set
    for each o in test_set_b:
        for each s in S:
        	o.l[s] := 0
    
    这样 data 就不会变少。

经确认,作者表示用的是第种方案,即改 labels。

Setting (c)

谓之 semi-supervised cross-modal zero-shot experiments,就是将 D ( b ) D^{(b)} D(b) 分成两部分:

  • labeled part D L ( c ) D_L^{(c)} DL(c),占 D ( b ) D^{(b)} D(b) 的 70%;
  • unlabeled part D U ( c ) D_U^{(c)} DU(c),占另外 30%;

这样划分就是类似 DCMH[4] 的分法,即 retrieval database 分 labeled 和 unlabeled 两部分。

Setting (d)

谓之 semi-supervised cross-modal zero-shot hashing experiments with different label spaces for different modalities,原文说它基于 (c) 的 training set 在 image 和 text 分别拣 80% 作为 seen classes,那 class set 岂不是缩了两次?我怀疑这点,又是提出两种可能的做法:

  1. 基于 (a) 的 training set 做,即类似 © 先将 D 分成 D L ( a ) D_L^{(a)} DL(a) D U ( a ) D_U^{(a)} DU(a) 两部分(注意 D L ( a ) D_L^{(a)} DL(a) 不同于 D L ( c ) D_L^{(c)} DL(c),因为 D L ( a ) D_L^{(a)} DL(a) 中的 labels 还是完整的,而 D L ( c ) D_L^{(c)} DL(c) 中的只剩 80% 的类了),然后用 (b) 中改 labels 的做法改 D L ( a ) D_L^{(a)} DL(a) 的 labels。这样,分别从 image 和 text 的角度,class set 就只缩了一次,还有 80% 的类。
  2. 基于 © 的 training set 做,即用 (b) 改 labels 的策略改 D L ( c ) D_L^{(c)} DL(c) 的 labels。这样 class set 就缩了次(因为 D L ( c ) D_L^{(c)} DL(c) 继承自 D ( b ) D^{(b)} D(b),而 D ( b ) D^{(b)} D(b) 的 class set 是已经缩过一次的),training data 的 label 就只剩 80 % × 80 % = 64 % 80\%\times 80\%=64\% 80%×80%=64% 的类了。

经确认,作者表示是基于 (c) 的,即确实缩次。

Class Attribute Vectors

IV.A 节讲到,attribute vectors 是用 word2vec 生成 500-d 的 word embeddings,但是常用的预训练 word emb 有 500-d 的,所以要重新训练一个 word2vec 模型,需要确定训练用的 corpus。

经确认,作者说用 Wikipedia 做训练 corpus。应该是 [5]?

References

  1. Cross-modal Zero-shot Hashing
  2. code
  3. 一作:刘玄武
  4. Deep Cross-Modal Hashing
  5. corpora.wikicorpus
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值