- Newest
- Most votes
- Most comments
Hello,
I understand you are using AWS Personalize in your application, and have queries regarding the 500 items limit.
-
The limit is indeed a hard constraint for both the getRecommendations and getPersonalizedRanking API [1]. Currently, there is no official documentation as to why this is a hard limit, it likely exists due to performance considerations, including latency, scalability, and the memory footprint of handling larger datasets during real-time recommendation queries.
-
The batch workflow in AWS Personalize does not allow infinite item IDs. While batch inference can process a larger dataset than the 500-item limit for real time calls, it operates within AWS resource and quota constraints. It works by submitting a batch inference job with a dataset (items stores from Amazon s3), then the system returns recommendations or re-rankings for the entire dataset, which may exceed 500 items [2][3].
-
The best way to overcome the 500 item limit on the API, is by incorporating batch workflows [4]. This can give you the most optimized results, while being able to handle slightly above the 500 limit API. For real-time scenarios, combining OpenSearch with AWS Personalize can be a powerful solution. OpenSearch allows you to retrieve and rank larger datasets, with Personalize re-ranking subsets of results. You can control the weight given to Personalize’s rankings in OpenSearch’s results [5].
-
I also would recommend looking into optimized solutions with Personalize [6]. This could be beneficial for your use-case, as it will optimize ranking, and rank based on item importance/relevance.
If you have any difficulty or if you still run into issues, please reach out to AWS Support [7] (Personalize) along with your issue or use case in detail, and we would be happy to assist you further.
References:
[1] https://docs.aws.amazon.com/personalize/latest/dg/limits.html
[2] https://docs.aws.amazon.com/personalize/latest/dg/getting-batch-recommendations.html
[3] https://docs.aws.amazon.com/personalize/latest/dg/batch-data-upload.html
[4] https://docs.aws.amazon.com/personalize/latest/dg/creating-batch-inference-job.html
[5] https://docs.aws.amazon.com/personalize/latest/dg/personalize-opensearch.html
[6] https://docs.aws.amazon.com/personalize/latest/dg/optimizing-solution-for-objective.html
[7] Creating support cases and case management: https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-casehttps://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case
answered 2 years ago
The 500-item limit for recommendations in AWS Personalize is indeed a hard constraint that cannot be increased. This limitation applies to both the GetRecommendations API and the GetPersonalizedRanking API.
For your use case of needing more than 500 recommendations, there are a few approaches you can consider:
-
Batch Workflows: AWS Personalize supports batch workflows that can handle larger sets of recommendations. Batch inference jobs in Personalize can process much larger datasets, potentially allowing you to work with thousands of products. These jobs are designed for offline processing and can be useful for scenarios where real-time recommendations are not required.
-
Multiple API Calls: While not ideal, you could make multiple API calls with different parameters to get a broader set of recommendations. However, this approach may lead to redundant recommendations and doesn't guarantee coverage of all products.
-
Combining with Other Services: For large-scale personalization, you might consider combining Personalize with other AWS services. For example, you could use Personalize to generate a subset of recommendations, then use Amazon OpenSearch Service to expand and refine these results across your full product catalog.
-
Custom Post-Processing: After receiving the 500 recommendations from Personalize, you could implement custom logic to expand or refine these results based on your specific business rules or additional data sources.
For real-time updates and handling a large number of products, the batch inference jobs in Personalize can work with large datasets, but they are not designed for real-time processing. For more real-time scenarios with large product catalogs, you might need to implement a hybrid approach, combining Personalize recommendations with real-time filtering or ranking based on your latest data.
Regarding the OpenSearch Personalize plugin, the 500-item limit is also a constraint of the underlying Personalize service. To work around this when using OpenSearch, you might need to implement custom re-ranking logic within your application that considers all products, using the Personalize recommendations as a starting point.
While these approaches can help mitigate the 500-item limitation, they may require additional development effort and careful consideration of performance implications. It's also worth noting that as AWS services evolve, it's always a good idea to check for any updates or new features that might address these limitations in the future.
Sources
Frequently asked questions for Amazon Personalize - Amazon Personalize
Generate personalized and re-ranked recommendations using Amazon Personalize - AWS Prescriptive Guidance
How Amazon Personalize works - Amazon Personalize
answered 2 years ago
Relevant content
asked 2 years ago
asked 3 years ago
- AWS OFFICIALUpdated a year ago
