我最近了解了自动编码器,并计划构建一个作为隐式反馈推荐系统的一部分使用。
基于经典的自编码器的工作原理,它们似乎可以用于重建那些分量不一定是0或1的向量。然而,所有的介绍材料似乎都表明,自编码器操作二进制向量,x=[0,1]^d,如这里或本文第2.2节所示。
为了对非二进制向量使用自编码器,在我看来,唯一的区别是应该使用L2误差函数而不是适合二进制情况的交叉熵。
如果有人能给我澄清一下,我将不胜感激。你混淆了符号
x e [0, 1]^d
表示"x属于一个d维单位超立方体空间"。要说"x是长度为d的二进制向量"你可以写
x e {0, 1}^d
注意不同的括号。[0, 1]
是一个区间,而不是由2个元素组成的集合。
因此没有人声称自动编码器需要二进制输入,而它不需要,它是在整个R^d空间中定义的(然而,由于各种原因,它更容易使用来自某些有限子集的值,因此[0,1]超立方体,我们有很好的初始化启发式)。