无标签分类列表数据转数值向量 适配autoencoder输入的方法咨询
针对诊断编码嵌入输入Autoencoder的实现方案
是否可以使用Word2Vec?
完全可以,且该方案非常适配你的需求场景:
- 你的单条观测对应一组诊断编码的结构,和自然语言中「文档-词语」的结构完全匹配,Word2Vec的无监督训练逻辑不需要额外标注数据,刚好匹配你无标签的前提。
- 你要求编码顺序不影响最终结果,有两种实现方式:训练时选择Word2Vec的CBOW模式弱化位置影响,或者训练得到单个编码的嵌入向量后,对单条观测所有编码的嵌入做平均/求和/最大池化,得到整条观测的固定长度向量,天然消除顺序差异。
具体落地步骤
- 首先丢弃之前做的填充操作,直接把4.2万条原始长度的编码列表作为训练语料输入Word2Vec,按需设置嵌入维度(比如64/128/256,匹配后续Autoencoder的输入设计),训练得到1.2万+编码对应的嵌入向量查找表。
- 对每条观测的编码列表,从查找表中取出所有对应编码的嵌入向量,做平均池化操作,得到单条观测固定维度的向量表示,该结果和编码的输入顺序完全无关。
- 把4.2万条固定维度的向量直接作为Autoencoder的输入即可,完全规避了1.2万维Onehot编码的高维稀疏问题。
可选替代方案
如果不想额外训练Word2Vec,也可以直接对1.2万编码做Multi-hot编码:单条观测包含什么编码,对应维度就置1,不需要考虑编码顺序和列表长度,得到的1.2万维稀疏向量可以直接输入Autoencoder,Autoencoder本身的瓶颈层会自动完成降维,4.2万条样本的运算量完全在可承受范围内。
内容的提问来源于stack exchange,提问作者Stu
相关产品推荐
相关产品推荐

