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

Cold item recommendations #199

Open
james-jory opened this issue Jan 21, 2021 · 2 comments
Open

Cold item recommendations #199

james-jory opened this issue Jan 21, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@james-jory
Copy link
Contributor

The current user-personalization implementation in the project (i.e. "Inspired by your shopping trends" on the homepage) does not demonstrate the cold item (exploration) capabilities of the aws-user-personalization recipe. One way to add this to the project would be to tag a small number of products across various categories as "cold" in the products.yaml file and then carry this tag/field through to the products service so that the historical interactions generator can skip generating interactions for these products, the Personalize schema (CREATION_TIMESTAMP in the items dataset) and campaign settings can be initialized accordingly, and the storefront can visually denote a product as being "cold" or "new".

@james-jory james-jory added the enhancement New feature or request label Jan 21, 2021
@patrick-239
Copy link
Contributor

patrick-239 commented Feb 2, 2021

There is another way: create a several new products as a separate set + script to inject them into running shop. It will looks like real life situation: new SKUs -> push into service -> recommend them.

@james-jory
Copy link
Contributor Author

james-jory commented Feb 6, 2021

There is another way: create a several new products as a separate set + script to inject them into running shop. It will looks like real life situation: new SKUs -> push into service -> recommend them.

That's similar to what I was thinking but my suggestion was to have the new products already in the catalog and dataset rather than having to inject them. This shortens the wait time for new item recommendations to appear, which is especially important in the demo scenario. Also, not all people delivering demos are capable of running a script of have the time with a customer to run a script and wait for results.

However, I do like the idea of making the addition of products more realistic, particularly for workshops. How about a combination of both approaches? Some "new" products already in the catalog and dataset (newer creation timestamp and no historical interactions) and some other products from products.yaml held out from the DDB data load at deployment time. These held out products could be added via a script or ideally an admin UI to demonstrate PutItems and item cold start end-to-end. Another benefit to using held out products for this is that we already have product images in place.

For the PutItems part, it would be great to implement that through #9. The products service already supports adding/updating products so the API is in place. Using DDB streams to keep the Personalize items dataset in sync would be a nice best practice to wrap this enhancement within.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants