SimpleMatrix childrenVector = NeuralUtils.concatenateWithBias(leftVector, rightVector);
SimpleMatrix W_df = deltaFull.mult(childrenVector.transpose());
binaryTD.put(leftCategory, rightCategory, binaryTD.get(leftCategory, rightCategory).plus(W_df));
SimpleMatrix deltaDown;
if (model.op.useTensors) {
SimpleTensor Wt_df = getTensorGradient(deltaFull, leftVector, rightVector);
binaryTensorTD.put(leftCategory, rightCategory, binaryTensorTD.get(leftCategory, rightCategory).plus(Wt_df));
deltaDown = computeTensorDeltaDown(deltaFull, leftVector, rightVector, model.getBinaryTransform(leftCategory, rightCategory), model.getBinaryTensor(leftCategory, rightCategory));
} else {
deltaDown = model.getBinaryTransform(leftCategory, rightCategory).transpose().mult(deltaFull);
}