10up / classifai

Supercharge WordPress Content Workflows and Engagement with Artificial Intelligence.
https://classifaiplugin.com
GNU General Public License v2.0
581 stars 52 forks source link

[SPIKE] Personalization Research #392

Open jeffpaul opened 1 year ago

jeffpaul commented 1 year ago

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

faisal-alvi commented 1 year ago

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 commented 1 year ago

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 commented 10 months ago

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 commented 7 months ago

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:

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 commented 7 months ago

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:

Sidsector9 commented 7 months ago

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 commented 6 months ago

@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?

jeffpaul commented 4 months ago

@Sidsector9 there was a request outside of GitHub as to whether AzureML might be suitable replacement option here... can you check and see how that compares and add into your comparision gSheet?

Sidsector9 commented 4 months ago

@jeffpaul I discussed this internally with Darin and concluded that AzureML is not a 1:1 replacement for Personalizer. The Azure Personalizer service is like a pastry you can purchase from a store out of the box, and Azure ML is more of assembling the ingredients to prepare the pastry from scratch.