Why do we need gradient in gradient descent? In gradient descent algorithm, the update rule of vector parameter is as follow:

From this formula, i think that the update rule only depends on the sign of
the gradient. So why don't we just use arbitrary vector instead of gradient vector in this formula.
 A: At a given point, gradient is the direction of steepest increase. So, the negative of it will be the steepest decrease direction and, by definition, gradient descent algorithm uses that direction to minimise the function.
If you use an arbitrary vector, you could end up choosing $-\nabla f$ as well, and increase the value of the function.
A: The goal of using a gradient descent approach is minimizing a certain function; that is, to reach the lowest possible point on the curve of that function.
So imagine you are at the top of a mountain (or at any point on the hill for that matter) and you want to reach the bottom of the mountain. At each step, you choose a direction in which to move in order to reach the bottom of the mountain. Now, the fastest (think, optimal) way of reaching the bottom, is to always follow the steepest way down. This way, you can roll fast and will (in general) always be sure of reaching the bottom. This is the idea behind following the opposite direction of the gradient at each point, since this will be the direction of the steepest descent.
Now, of course, if you are hiking in the mountain, you can choose instead to walk in an arbitrary direction at each step, and hope that someday you will reach the bottom of the mountain. It may or may not work, but it definitely is not the optimal way of reaching the bottom. That's why, we do not use an arbitrary vector to update our parameters.
