Recommender systems are software agents that analyze a user's preferences through transactions and provide personalized recommendations accordingly. There are several recommendation paradigms including non-personalized rules, personalized rules based on user data, and transaction-based collaborative filtering that learns from user interactions. Context-based recommender systems also consider additional information like time, location, or device to provide adaptive recommendations. Common techniques used in recommender systems include content-based filtering that recommends similar items, collaborative filtering that finds users with similar tastes, and demographic-based recommendations.