What is t-SNE and how is it used in data science for dimensionality reduction and visualization? How does t-SNE help represent high-dimensional data in lower dimensions? What are the key steps involved in the t-SNE algorithm? How does t-SNE differ from other dimensionality reduction techniques like PCA? What are the advantages and limitations of using t-SNE in real-world data analysis applications?