问题的本质在于维数诅咒curse of dimensionality,你需要的是一个对于高维向量的正确图景。你想象中的情况是左边2维或者3维的情况,这个时候猫猫狗狗的确是混在一起的,取平均后会有“四不像”的情况。但实际上,embedding都是几百维,是高维向量。每个样本猫或者狗都存在于一个个尖尖上,几个尖尖取平均后,只会依然离这几个尖尖最近,能够保证“四都像”。
因为在高维空间中的平均,会依然离原来的点特别近,离其他的点特别远?
我们假设这样一个情形,在空间中取4个点{A1..A4},取平均得A‘可以看作 User Embedding,再在空间中随机生成100个点{B1..B100}。我们计算A' 最近的点是在 {A1..A4} 中还是在 {B1..B100} 中。
在二维空间中特别明显,A‘ 大概率离B点集更近一些。我们跑个模拟,看看随着维度的变高,有什么变化。
可以看到,在低维度的时候,取平均会更像其他的 Item,但随着 Embedding 维度的增加,User Embedding 最近的点几乎全是A集中的点,依然在那几个 Item Embedding 的附近,而离其他的 Embedding 更远一些。
所以并不会是“四不像”,而是“四都像”。高维度和低维度上的直觉有时候很不同罢。