luozhouyang / machine-learning-notes

A repository to save my machine learning notes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

query mask 为什么要在这个地方做 query masking

HaishuoFang opened this issue · comments

    # Query Masking
    `query_masks = tf.sign(tf.abs(tf.reduce_sum(queries, axis=-1))) # (N, T_q)
    query_masks = tf.tile(query_masks, [num_heads, 1]) # (h*N, T_q)
    query_masks = tf.tile(tf.expand_dims(query_masks, -1), [1, 1, tf.shape(keys)[1]]) # (h*N, T_q, T_k)
    outputs *= query_masks # broadcasting. (N, T_q, C)`

你好,看了你的笔记受启发,但有个问题我想请教一下,你知道作者为啥要在 softmax 之后进行query mask吗?而不是在softmax之前 和 key masking 一起做完

你好,这个是我当时学习的时候做的笔记,当时也不是很懂。但是现在看起来好像有问题,这个人的代码好像疑惑点还挺多的。目前来看,大多数都是先做masking然后softmax。我另外有一篇Transformer的博客也是先做的masking,你可以查看一下Tansformer的PyTorch实现