Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SPIKE] Personalization Research #392

Open
1 task done
jeffpaul opened this issue Jan 16, 2023 · 7 comments
Open
1 task done

[SPIKE] Personalization Research #392

jeffpaul opened this issue Jan 16, 2023 · 7 comments
Labels
help wanted Extra attention is needed type:enhancement New feature or request.

Comments

@jeffpaul
Copy link
Member

Is your enhancement related to a problem? Please describe.

Alongside our Recommended Content feature using Azure Personalizer, we should do some market research to see how other products/projects handle user experience personalization, identify what might make for a good fit inside ClassifAI, and then identify what available AI APIs might support this (and where feasible have a free tier to allow folks to test/explore the functionality before committing to a paid service/tier).

Designs

n/a

Describe alternatives you've considered

Some existing products/services to review as existing in this space:

Code of Conduct

  • I agree to follow this project's Code of Conduct
@jeffpaul jeffpaul added the type:enhancement New feature or request. label Jan 16, 2023
@jeffpaul jeffpaul added this to the Future Release milestone Jan 16, 2023
@jeffpaul jeffpaul added the help wanted Extra attention is needed label Mar 20, 2023
@faisal-alvi
Copy link
Member

A few recommendations worth exploring:

  1. Amazon Personalize: Amazon Web Services (AWS) offers Amazon Personalize, which provides similar functionality for creating personalized recommendations.
  2. Google Cloud Recommendations AI: Google Cloud's Recommendations AI is designed to help you build personalized product recommendation systems.
  3. Algolia: Algolia offers a powerful search and discovery API that can be used for building personalized search and recommendation systems.
  4. Recombee: Recombee is a recommendation service with APIs for personalization, recommendation, and user behavior analysis.

@jeffpaul
Copy link
Member Author

Perfect timing on the additional options @faisal-alvi as Microsoft recently announced that Personalizer no longer accepts new customers and will be retired in October 2026. As @dkotter mentioned elsewhere, Azure Intelligent Recommendations may be a worthwhile option to consider as well.

@jeffpaul
Copy link
Member Author

jeffpaul commented Jan 4, 2024

I did some quick reading into Google Cloud Recommendation AI today and that seems like it could be a solid option. Some interesting bits in What is Discovery for Media? and Build a Recommendation System using Google Cloud Recommendation AI.

That second item has some rather relevant integrations it mentions, all of which would seem to be worthwhile within ClassifAI:

  1. Personalized Recommendations: Implement a “Just for you” or “Recommended for you” section on the homepage, providing tailored suggestions based on individual user preferences and behavior.
  2. Item Recommendations: Display an “Others you may like” section on the product detail page, recommending items that are highly likely to engage or be purchased by the user.
  3. Cart Recommendations: Utilize a “Frequently bought together” section to suggest additional products that are commonly purchased alongside the selected item, thereby enhancing the user’s shopping experience.
  4. Similar Item Recommendations: Present a “Similar items” section on the product page, showcasing items with similar attributes to the one being viewed, particularly useful when the viewed item is out of stock.
  5. Repeat Purchase Recommendations: Implement a “Buy it again” feature across different pages (e.g., homepage, product detail, the cart) to suggest items that users are likely to repurchase based on their previous interactions.
  6. Sales Recommendations: Utilize an “On sale” section to showcase discounted items, encouraging users to explore and make purchases.

@Sidsector9
Copy link
Member

Sidsector9 commented Apr 3, 2024

I investigated this today and here are my thoughts:

We are looking at 2 features here:

  1. Recommended Content
  2. Personalized Content (Recommended Content for a specific user)
Recommended Content Personalized Content
Objective The main goal is to engage users by showing them content that is likely to be of interest to many people, regardless of their specific preferences. The main goal is to increase user satisfaction and engagement by providing content that is specifically relevant to each user. This approach assumes that a more personalized experience is more likely to keep users interested and coming back.
Focus Typically selected based on the overall popularity or relevance of the content to a broad audience. It doesn't necessarily take into account the individual user's interests or behavior. Based on algorithms that analyze a user's past interactions, such as viewed, liked, or shared content, and sometimes demographic data. For example, a streaming service might suggest movies or shows based on what you've watched or added to your list.
Content Selection The selection is often based on trends, what's currently popular, or what's considered universally appealing within the context of the website. For example, a news website might recommend articles that are currently most read or shared. The selection is based on algorithms that analyze a user's past interactions, such as viewed, liked, or shared content, and sometimes demographic data. For example, a streaming service might suggest movies or shows based on what you've watched or added to your list.
GDPR compliance? No Yes
Needs WP database? No Maybe

After going through the related ClassifAI Github issues, it seems we're aiming for both types of personalisation.

For example, if we want to add Item or Cart Recommendation, then it may benefit more from Personalized Content for a specific user. But on the homepage, it would benefit more by Recommended Content to show the most popular posts on the site. Adding to that, a single service may not work best for every feature.

IMO, it would help if we could break this down on a feature level, for example:

  • Recommended Content (based on the current trend)
  • Item and Cart Recommendation (based on a user's or demograph's historical data)
  • 404 page Recommendation (based on a user's or demograph's historical behavourial data)
  • ...etc.

It would be easier to identify which AI services would be best to power these features.

@10up/open-source-practice what are your thoughts on the same?

@dkotter
Copy link
Collaborator

dkotter commented Apr 3, 2024

I agree with most of what's here though I think there's some additional information or distinction that can be made.

Personalized Content (Recommended Content for a specific user)

This is definitely an approach we can consider and there are services out there that provide this but the Azure Personalizer feature we have been using is less personalized content for a specific user and more personalized to a larger user group. For instance, showing personalized content based on location or time of day. I like this approach more as there's less concerns with GDPR, though also less quality results.

Recommended Content (based on the current trend)

This is also an approach we could consider but I think more applicable is the standard "recommended content" or "read more" section that you often see at the end / middle of an article. I don't think we'd power this by trends (like analytics) but based on what content is most similar to the content being read. Definitely not personalized to an individual user but would be personalized based on the piece of content you're reading.

Here's a handful of things I can think of beyond the ones you've mentioned or that have been mentioned earlier in this thread:

  • Recommended content block: would be placed on a single article page, showing one or more items that are closely related to the current item.
  • Popular / trending content block: could be placed anywhere on a site (home page, sidebar of all pages, etc) and would showcase the current trending content (could be based on pageviews or some other metric). This is one I'm not sure we need to pursue as it's not really powered by AI
  • "For you" content block: similar to the above but instead of basing on site trends, could be based on what actions an individual user has taken (finding similar articles to what they've read in the past for instance)
  • Dynamic 404 page: take the URL slug that generated the 404 and try and find one or more items that matches that slug the closest, with the goal to hopefully find the thing the user wanted and if not, at least find something close enough that keeps them on the site
  • Curating full sections on pages: as an example, if you wanted to auto-curate the top section of taxonomy pages.

@Sidsector9
Copy link
Member

Thanks for the inputs @dkotter. I researched into few services and I am maintaining the sheet for prospective AI services for Personalization block:

https://docs.google.com/spreadsheets/d/18T9N9a55ccOSQ_eAin7IsTLMxj9KJ-vFZ0MBVg43XEE/edit?usp=sharing

@jeffpaul
Copy link
Member Author

jeffpaul commented May 2, 2024

@Sidsector9 I wonder if there's a similar option to consider with Elasticsearch, possibly as a connection to ElasticPress/EP.io, that could offer some of the similar use cases noted in that sheet?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed type:enhancement New feature or request.
Projects
Status: To Do
Development

No branches or pull requests

4 participants