November 2017 Summaries
4 posts from Stream
Filter
Month:
Year:
Post Summaries
Back to Blog
The blog post, divided into two parts, explores the development of personalized news feeds by initially examining a basic EdgeRank-inspired algorithm and then advancing to more sophisticated machine learning techniques. In the first part, the author discusses the theoretical underpinnings of their Instagram discovery engine, focusing on three components: affinity, weight, and time decay, which are combined to rank posts. Affinity is measured using the personal PageRank algorithm, weight is influenced by likes and comments, and time decay ensures newer content is prioritized. In the second part, the author highlights the limitations of simple algorithms for complex data and introduces boosted decision trees and neural networks as techniques to enhance feed ranking. These machine learning models can handle numerous parameters and optimize engagement by leveraging contextual and historical features, such as user interactions and content characteristics. The post emphasizes the potential of combining boosted decision trees with logistic regression and neural networks to improve efficiency and performance, while also considering transfer learning to mitigate training costs.
Nov 28, 2017
1,457 words in the original blog post.
Integrating with the Stream activity feed API can be an exhilarating experience, but understanding a few key practices can streamline the process. When adding an activity, it's essential to include both the foreign_id and time fields to ensure the uniqueness of records, similar to a multicolumn primary key. For efficient pagination, using id_lte is recommended over offset to improve performance. To protect user privacy, avoid sending personally identifiable information (PII) by using user IDs and performing array translations when retrieving feeds. While custom fields can be added to activity JSON packages, keeping the size under 1k is advised to maintain performance, and media should be referenced by location rather than included directly. The API's fan-out mechanism only updates feeds one level deep, so planning for these nuances early can prevent future complications and costs. Exploring Stream's documentation can provide additional valuable insights and tips.
Nov 17, 2017
456 words in the original blog post.
Using .IO domain names for production traffic can enhance scalability and is a topic explored in an article by Tommaso B., originally published in 2017 and updated in 2020. Although the article is currently being updated, it highlights the potential benefits of integrating real-time communication components to boost app engagement. Additionally, readers are encouraged to explore related resources and posts on topics such as API construction, WebRTC architectures, and optimizing app performance with technologies like MongoDB, Redis, and Node.js. The article suggests that employing these strategies can lead to improved scalability and performance in production environments.
Nov 09, 2017
145 words in the original blog post.
Instagram's "Explore" section uses a variety of factors to personalize content for its users, such as timing, engagement, previous interactions, and affinity. The detailed explanation of Instagram's algorithm considers these elements to curate content that aligns with users' preferences and social connections. The blog post provides a step-by-step guide on creating a similar discovery engine using Python, the unofficial Instagram API by Pasha Lev, and graph visualization tools like Graphistry. It involves analyzing social networks and calculating personalized pagerank scores to identify relevant images from users' immediate and extended networks. The article also explores interest-based analysis using hashtags, suggesting improvements like incorporating click data and image features through Convolutional Neural Nets to enhance the discovery engine's accuracy. While the post is outdated, it still offers insights into building personalized content feeds and suggests ways to integrate various data points for a more refined user experience.
Nov 01, 2017
2,033 words in the original blog post.