压缩表示的理解I

接上回书(http://blog.sina.com.cn/s/blog_593af2a70101endk.html)
压缩表示究竟有什么用呢?错综复杂的object背后本质的东西究竟是什么?剥去浮华,留下本质。最本质的区别才是真正的区别,因此压缩之后再计算距离,更具有解释性。
今天再举一个例子。假定有13个用户,最多能打4个标签,不同的标签有11个,用户1,打了标签1,2,3,4,余不举例见下图:

现在我们想知道哪些用户是一伙的,这个例子很简单,很容易看出,但机器怎么量化呢?那就用上回书说的Antoencoder,用2个神经元做压缩,进过计算得到如上图的压缩表示,比如用户1可以表示为<0.32,1.00>我们有了这个表示后,可以很容易计算用户间的关系(用欧氏距离),比如用户1可以看出和用户2和用户3的距离分别是0.15和0.18,比较近,而事实上从标签上也比较近似。
现在问题来了,如果想知道那些标签是一伙的,那就把上面的结构变一变
变成
标签1 1
4
11
标签2
...
标签3 ...
标签4
把用户看做是特征,做压缩表示,然后就知道标签之间的距离了。是不是很有意思呢,下回再说计算的优化考虑,怎么能快速计算。
前一篇:Autoencoders
后一篇:稀疏特征的AutoEncoder