Open lijian10086 opened 5 years ago
vec1-vec2代表两个向量之间的差异性。vec1*vec2代表什么?
如果表示差异性的话vec1-vec2加个绝对值会不会好一点?
@lijian10086 拟合cosine
Hi @zhougr1993 ,请教两个问题:1. 论文中是out product,一般反映两个向量相似性用内积,外积是两个向量构成平面的法向量,这里用外积的意义是否是为了提取两个向量的关系?2. 代码里实际用元素积和向量差来处理的,并不是外积?
其实没有这么复杂的原因,因为在线的时候,一个user要对很多个广告ad或者宝贝item做预测。一个item就要做一次attention,计算压力很大。那么attention的计算逻辑无论是全连接也好,还是比较常见的全连接投影后做内积也好,都要做得尽可能的简单,所以网络层数和宽度都不能太多,那么attention网络的拟合能力或者说模型容量就一定有限。考虑到这个,attention的第一层引入向量减法和element wise乘法,可能可以降低attention网络的学习难度,等于手工先验设定了一个向量计算范式嘛。
上面就是整体的思考逻辑,不过要说是炼丹术,这也是炼丹术。
@zhougr1993 请问, “attention的第一层引入向量减法和element wise乘法,可能可以降低attention网络的学习难度”---能解释一下,为什么会降低学习难度吗?谢谢
想请问在论文里设计attention层的时候为什么使用outer product呢?
模型实现的时候elementwise product跟out product还是有区别的,我理解这并不是同样的概念?但为什么论文里们设计要用out product呢?
模型实现的时候elementwise product跟out product还是有区别的,我理解这并不是同样的概念?但为什么论文里们设计要用out product呢?
从数学定义看,确实你的理解是对的。但是作者把out product 就当成是element wise product了 (包括后面的can论文的知乎解读文章也是这样说的)。这个就不用纠结了吧。自己理解为是element wise product 或者hadmard product就行了。抓住论文的核心要点吧。
vec1-vec2代表两个向量之间的差异性。vec1*vec2代表什么?
其实我已开始也有你的疑惑,就是推荐论文到处都是vec1 * vec2 (element wise product),我一开始也不懂,这个到底有啥用呢?其实就是二阶特征交叉嘛,和内积相比,不需要把各个维度加起来,信息更多了罢了。乘法的特征交叉也好,加法也好,减法也好,都是二阶特征交叉的不同做法而已。
vec1-vec2代表两个向量之间的差异性。vec1*vec2代表什么?
其实我已开始也有你的疑惑,就是推荐论文到处都是vec1 * vec2 (element wise product),我一开始也不懂,这个到底有啥用呢?其实就是二阶特征交叉嘛,和内积相比,不需要把各个维度加起来,信息更多了罢了。乘法的特征交叉也好,加法也好,减法也好,都是二阶特征交叉的不同做法而已。
模型实现的时候elementwise product跟out product还是有区别的,我理解这并不是同样的概念?但为什么论文里们设计要用out product呢?
从数学定义看,确实你的理解是对的。但是作者把out product 就当成是element wise product了 (包括后面的can论文的知乎解读文章也是这样说的)。这个就不用纠结了吧。自己理解为是element wise product 或者hadmard product就行了。抓住论文的核心要点吧。
对,文章中的一些说法令新手确实很疑惑,外积跟哈达玛积作者应该做一下区分的,显然他没有
vec1-vec2代表两个向量之间的差异性。vec1*vec2代表什么?
其实我已开始也有你的疑惑,就是推荐论文到处都是vec1 * vec2 (element wise product),我一开始也不懂,这个到底有啥用呢?其实就是二阶特征交叉嘛,和内积相比,不需要把各个维度加起来,信息更多了罢了。乘法的特征交叉也好,加法也好,减法也好,都是二阶特征交叉的不同做法而已。
赞同这种理解方式
@zhougr1993 大佬, vec1-vec2的代表的是两个特征向量间各个维度的距离。那么vec1*vec2代表什么?背后逻辑是?