Skip to content

HMCN是怎么同时考虑层次标签之间关系的呢? #120

@littttttlebird

Description

@littttttlebird

看咱们HMCN-F的实现代码,标签字典是通过数据集里面标签构造的,比如样本集如下:

case1 A
case2 A--A1
case3 B--B1--B11
case4 B--B1
case5 B--B1--B12

那么将会得到标签字典如下:

A
A--A1
B--B1
B--B1--B11
B--B1--B12

在训练的时候,一级类目标签有[A],二级类目标签有[A--A1, B--B1],三级标签有[B--B1--B11, B--B1--B12]。
以case3为例,真实标注标签为B--B1--B11

  • 在分级标签预测上,一级标类目上标签是[0],二级类目上标签是[0, 0],三级类目上标签是[1, 0];
  • 在全局标签预测上,真实类目标签是[0, 0, 0, 1, 0](对应[A, A--A1, B--B1, B--B1--B11, B--B1--B12]五个标签);
    可以看见,这种标签设置要求模型将case3预测为B--B1--B11,但是去不让模型预测为B--B1,也不让模型预测为B,这样的话,模型怎么能学习到层次之间的关系呢?

-------------------------------------我的思考---------------------------------------
是不是应该在数据预处理的时候,针对case3这种标签,如果他的前缀也在标签词典里,那么应该将case3的标签拓展为[0, 0, 1, 1, 0],即将B--B1也加入到ground truth label里面去。这样子的话,在局部和全局,都应该预测出来B--B1标签,模型才会知道B--B1--B11是属于B--B1的。
有人关注这个吗?探讨一下

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions