Why is vector times vector equal to a number? It just occurred to me that we have
$$
\text{number} \cdot \text{number} = \text{number} \\
\text{matrix} \cdot \text{matrix} = \text{matrix}
$$
but
$$
\text{vector} \cdot \text{vector} = \text{number}
$$
Why is that? Why is $\text{vector} \cdot \text{vector}$ not equal to another $\text{vector}$? Is that just a historical accident, that the sign "$\cdot$" is used that way for vectors, or is there a deeper reason for this difference in multiplication between numbers, matrices and vectors?
 A: When you say $\text{matrix} \cdot \text{matrix} = \text{matrix}$ you should say it all and write $$(n\times m)\text{matrix} \cdot (m\times k)\text{matrix} = (n\times k)\text{matrix}$$
Which, in the special case $n=k=1$, is one of the ways to encode the usual Euclidean inner product of $\Bbb R^n$ $$\langle v;w\rangle=v^T\cdot w$$
Now, this is not necessarily the only way to see it. In fact, inner products on vector space have a theory of their own as simmetric bilinear maps on a vector space (or hermitian sesquilinear maps on a $\Bbb C$-vector space). On the other hand, the product of matrices represents the way to calculate in coordinates the composition of linear maps. These two things inspect separated aspects of (structures on) vector spaces, so it is natural for them to behave differently, despite being both called "products": theoretically, they are "products" in different contexts.
A: A vector multiplied with a scalar returns a vector 
A cross product with two vectors returns a vector 
A dot product with two vectors returns a scalar
An outer product with two vectors returns a matrix (or tensor) 
I’m assuming you mean dot product. The dot product can be though of as “the amount” of  one vector in the direct of another vector. In that case it returns a scalar that can be thought of as the “amount” vector A points in the direction of vector B. (Assuming vector B is a unit vector). 
A: Three kinds of vector products, along with what they produce:


*

*Dot product: $vector \cdot vector = scalar$

*Cross product: $vector \times vector = vector$

*Outer product: $vector \otimes vector = matrix$


So, it only produces a number (scalar) if it's a dot product.
It boils down to definitions.
A: Note that the product vector by vector is a special case of the product matrix by vector indeed given a $m$ by $n$ matrix $A$ and a $n$ by $1$ vector $v$ the product is a $m$ by $1$ vector $w$ and thus the product of a $1$ by $n$ vector $u$ by a $n$ by $1$ vector $v$ is a $1$ by $1$ matrix that is a number. Such kind of product is also known as dot product
$$u\cdot v= u^Tv=\sum u_iv_i$$
As noticed, in three dimensions we can also define the cross product by vectors which returns another vector.
A: The intention to assign a number to two vectors is to measure the angle — which is a number — between them and moreover one vector’s component of the other.
A: As others have said, there are many possible notions of product. The ones you have listed are among the most widely-used, and there are good reasons for that, but that does not mean that each one is the only possible product for its input type, or that they must have all the same properties.
In some sense, the question you really want to be asking is what is special about these particular products, where they come from, how they relate to one other, and why they have the properties in common that they do. These are slightly vague questions, but that doesn't mean they don't have good answers. Those answers contain the understanding that you were looking for when you asked this question.
I originally wrote a much longer answer containing some of that information, but it is perhaps best broken down so that you can work through it at your own pace.
