Time-dependent density-functional theory (TDDFT) is a density-functional method for calculating excited states. TDDFT is formally exact, though in practice one has to approximate the unknown exchange-correlation functional, which contains all the unknown many-body effects. The adiabatic functionals are the most commonly used. Although they are very successful for spectroscopy, the adiabatic functionals are too inaccurate to be applied to photochemistry. In this thesis, we show that the main problem is due to the approximations in the correlation functional. The main result of the thesis is a correlation kernel for linear-response TDDFT, derived using many-body perturbation theory techniques, which generally includes double excitations, thus introducing the leading correlation effects in the excited states. The comparison of this kernel with the adiabatic functionals allowed us to identify which correlation effects are missing in these approximation. We tested the possibility of improving the description of correlation by adding the missing terms from many-body theory to the adiabatic functionals. This mixed kernel is more efficient than the full many-body kernel, and can potentially be applied to systems of medium to large size.