Output from tf.tensordot(x,y,2)

I try to understand the collaborative filter recommender

One particular part is about tf.tensordot(x,y,2) in the following code:

    def call(self, inputs):
        user_vector = self.user_embedding(inputs[:, 0])
        user_bias = self.user_bias(inputs[:, 0])
        movie_vector = self.movie_embedding(inputs[:, 1])
        movie_bias = self.movie_bias(inputs[:, 1])
        dot_user_movie = tf.tensordot(user_vector, movie_vector, 2)
        # Add all the components (including bias)
        x = dot_user_movie + user_bias + movie_bias
        # The sigmoid activation forces the rating to between 0 and 1
        return tf.nn.sigmoid(x)

dot_user_movie.shape is () but x.shape is (None, 1). Why? I expect dot_user_movie.shape be (None, 1) as well.

What I really want to do is to remove bias terms. But it will give me some error if I do the following:

x = dot_user_movie
return tf.nn.sigmoid(x)