Under this setting, with E(s) being a binary vector, let g(q) be a continuous vector with arbitrary value range can be problematic.
when type vector is used as E(s), we add a sigmoid layer upon the final linear projection of g, squashing each element of g(q) to the range [0, 1].