Because the Hessian matrix is real and symmetric, we can decompose it into a set of real eigenvalues and an orthogonal basis of eigenvectors. The second derivative in a specific direction represented by a unit vector d is given by $d^T Hd$. When d is an eigenvector of H , the second derivative in that direction is given by the corresponding eigenvalue. "
I didn't understand why "The second derivative in a specific direction represented by a unit vector d is given by $d^T Hd$".
I'll use the 2D case just to illustrate the concept. $d^T = \begin{pmatrix} d_1 & d_2 \\ \end{pmatrix}$ and $f_{ij}$ represents the double partial derivative wrt the variables $i$ and $j$.
$$ d^THd = \begin{pmatrix} d_1 & d_2 \\ \end{pmatrix} \begin{pmatrix} f_{xx} & f_{xy} \\ f_{yx} & f_{yy} \\ \end{pmatrix} \begin{pmatrix} d_1 \\ d_2\\ \end{pmatrix} $$
Observe that if $d^T = \begin{pmatrix} 1 & 0 \\ \end{pmatrix}$ one recovers $f_{xx}$ or $f_{yy}$ if $d^T = \begin{pmatrix} 0 & 1 \\ \end{pmatrix}$. If $d$ happens to be an eigenvector, its corresponding eigenvalue will be the derivative in that direction:
$$ d^THd = \begin{pmatrix} d_1 & d_2 \\ \end{pmatrix} \begin{pmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \\ \end{pmatrix} \begin{pmatrix} d_1 \\ d_2\\ \end{pmatrix} $$
Now remember that this is the diagonal representation of the matrix and the unit eigenvectors will be $d^T = \begin{pmatrix} 1 & 0 \\ \end{pmatrix}$ and $d^T = \begin{pmatrix} 0 & 1 \\ \end{pmatrix}$. In either case you get:
$$ d_i^THd_i = \lambda_i $$