Realtime Data Mining: Self-Learning Techniques for Recommendation Engines