Recommendation Engine (WIP)
Big and dangerous to Feature. Backend / recommendation engine to be done by Mark. UI can be divvied up.
Current Recommendation Systems in Production
(need more placements, other apps have this stuff everywhere)
- Search Results
- Discovery Feeds
- Suggested Channels
- Suggested Groups
- Suggested Hashtags
- Boosts (outlier)
- Potential
- Notifications
- Empty feeds
Hypotheses
- Increased core, casual users
- User will subscribe to more channels
- User will join more groups
- User will engage on content more often (Votes, Comments, Reminds)
Factors for Recommendation Logic (in no particular order)
Data (only with consent and controls to delete from being used)
- Personal connection (phone number only with consent) (email?) - mobile only
- Top feeds based on tags
- Location
- NSFW
- Friends of friends
- Birthday
- Channels/groups that are posting hashtags that you frequently vote on, post about, or have set as your preferred hashtags
- Channels or groups your subscriptions are subscribing to / joining
- Channels or groups the subscriptions of your subscriptions are subscribing to / joining
- Amount of engagement receive
Legitimacy of channels
- Recently active
- Banner setup
- Avatar setup
- Social links
- Onchain setup
- Strikes
- Messenger setup
Architecture
- Plugable algorithms that can be swapped in and out
- Unleash integration for easily turning these on / off
- A/B to metrics index for better results
- experimentId
- expirementVariant
- actionsSource
- Apply experiments to action stored. Unleash client configuration needs to be tracked so we can tell what experiments are running
- Investigate GEO with elasticsearch
Top Level Concerns
- Data collection without breach of privacy
- Activity stream/console with privacy controls
- Consent required for more sensitive information to be used (phone number, location, birthday)
- Transparency about why specific recommendations are served to you
- Self-curation and feed control without censorship
- Better controls to hide or see more of certain tags
- Scalable, non-stigmatized system for classifying content
- Politics tag?
- Need better classification/tagging on all content, channels and groups
Collaborative recommendations:
- https://en.wikipedia.org/wiki/Netflix_Prize
- https://en.wikipedia.org/wiki/Collaborative_filtering
- The high-level idea is: similar people like the same things… i.e. if I like the Movies X and Y, and another user like X, Y and Z…. then I may like Z.
Correlation with T3?
- Trusted channels based on community / decentralized consensus mechanism
- Trust that we are not recommending bad actors
- Building a web of a trust you enter where you get trusted recommendations
- Push -> https://gitlab.com/minds/engine/blob/master/Core/Notification/Extensions/Push.php
- Views -> https://gitlab.com/minds/front/blob/master/src/app/modules/notifications/notification.component.html#L19
Next Steps
- Design mobile consent and address sync
- Design suggestions for new users
- Design privacy console
- Mark/Brian to look at architecture and plan out
Milestones
Milestone | Link |
---|---|
TODO |
Merge Requests & Branches
TODO |
Mockups
TODO |
Developers
Developer | Focus |
---|---|
@edgebal | backend |
added scoped labels
changed the description
changed title from to
changed title from to
changed title from Discovery / Recommendations to Discovery / Recommendations
changed the description
changed title from Discovery / Recommendations to Discovery / Recommendations
changed start date to Nov 12, 2019
changed finish date to Dec 17, 2019
changed finish date to Jan 8, 2020
changed the description
added 1 deleted label
changed finish date to Jan 21, 2020
changed finish date to Jan 28, 2020
changed finish date to Jan 27, 2020
added scoped label and automatically removed label
removed label
added scoped label
mentioned in issue front#1359 (closed)
added issue front#2410
added issue engine#1287
changed title from to
added issue engine#1053 from epic &94
changed the description
changed title from Recommendation Engine to Recommendation Engine
In terms of search results, it's important that we make algorithms more bespoke for individual feeds.
As an example:
User search should match much more explicitly than a group search - a user searching groups may search
music
and doesn't want the group with 3 members namedmusic
.If someone searches, for example, FretzCapo, in groups and he has many big groups, his groups should probably appear at least somewhere, rather than just groups with his name.
added issue engine#1339
Please return the functionality to search within a group by adding search to the Discovery bar on Minds so that the functionality is also spread throughout channels, blogs and media.
Before the redesign for discovery we were able to perform a search within a group. For instance, in one of my music groups, I could perform a search for an artist like "Queen" and I'd get a list of all posts by them. There was a url that I could copy and save and use for my own purposes as well.
Please return this functionality and please also allow internal links so I can provide the links in posts.
Edited by Fretz Caporemoved the finish date
Please consider adding the option of a similar layout of tiled images, currently available only in discovery on the app, to the web browser as well. This would be a real upgrade to the cumbersome flat feed used for browsing images