def METHOD_NAME(self, x_1, seq_len_1, x_2=None, seq_len_2=None):
    x_embed_1 = self.embedder(x_1)
    lstm_out_1, (hidden_1, _) = self.lstm(x_embed_1, sequence_length=seq_len_1)
    out_1 = paddle.concat((hidden_1[-2, :, :], hidden_1[-1, :, :]), axis=1)
    if x_2 is not None:
        x_embed_2 = self.embedder(x_2)
        lstm_out_2, (hidden_2, _) = self.lstm(x_embed_2, sequence_length=seq_len_2)
        out_2 = paddle.concat((hidden_2[-2, :, :], hidden_2[-1, :, :]), axis=1)
        out = paddle.concat(x=[out_1, out_2, out_1 + out_2, paddle.abs(out_1 - out_2)], axis=1)
        out = paddle.tanh(self.fc_1(out))
    else:
        out = paddle.tanh(self.fc(out_1))
    logits = self.output_layer(out)
    return logits