DeepCTR icon indicating copy to clipboard operation
DeepCTR copied to clipboard

run_multivalue_movielens.py 的genres变长类别为什么不直接用multi-hot ?

Open civilman628 opened this issue 5 years ago • 3 comments

run_multivalue_movielens.py 在处理 genres 用了 VarLenSparseFeat(). 这个做法比直接用genre 的multi-hot array 有什么优势么 ? 程序从数据集得到的单个样本变长标签的最大长度是5. 但是这个不是genre 的类别个数。实际genre的label个数是18. 难道用5维数组输入到模型学习的参数就会少很多么?在实际应用中很难预估最大长度,其上限就应该等于这个 feature 的 len(unique (feature)). 所以直接用multi hot 会对训练和准确度有影响 ?

civilman628 avatar Sep 23 '19 06:09 civilman628

我也有这个问题,为什么不用multi-hot array而用了VarLenSparseFeat()。而且我还在想combiner会不会损失信息

nickyang28 avatar Sep 27 '20 08:09 nickyang28

个人见解是:为了降维;通过嵌入技术,将类别特征降低映射到低维数值向量空间,节省时间、空间,加速计算。但不清楚内部封装的怎么做的,传统word2vector需要文本段,genre还好,但是其他类别特征都一个个单独的,不知道内部怎么转的。

shuDaoNan9 avatar Apr 01 '22 02:04 shuDaoNan9

个人观点:我觉得varlen类型的特征一开始不是为了给multihot用的,是为了给din处理序列信息的,只是它顺便还可以简单地代替multihot的功能

ChildishChange avatar Aug 02 '22 11:08 ChildishChange