让我解释一下,假设我们正在构建一个神经网络来预测两个项目是否相似。这是一个分类任务,具有相似和不同项目示例的硬标签 (0, 1)。假设我们还可以访问每个项目的嵌入。
一种天真的方法可能是连接两个项目嵌入,添加一个或两个线性层,最后对输出概率执行一个 sigmoid(因为这是二进制分类)。
但是,这种方法意味着潜在地输入(x, y)模型可能会给出与输入模型不同的分数(y, x),因为 concat 不是对称的。
我们如何才能克服这一点?这种情况下的常见做法是什么?
到目前为止,我已经想过:
每当我输入时
(x, y),我也可以输入(y, x)并始终取两者的平均预测。但这感觉像是一种强制网络对称的骇人听闻的方式,尽管输入顺序不同,但它并不能让它学习相同的东西。用其他一些对称张量操作替换 concat。但是什么操作呢?添加?逐元素乘法?元素最大?什么是“默认”?