Recommendation systems provide users with information they may be interested in based on their preferences and interests. They help address the problem of information overload by retrieving desired information for the user based on their preferences or those of similar users. The two main types of recommendation systems are personalized and non-personalized systems. Common techniques used include collaborative filtering, which finds users with similar tastes, and content-based filtering, which recommends items similar to those a user has liked based on item attributes.