More Like This Recommendation System Service
Given a base application, this service returns a set of recommendations based on textual features and relevancy metrics.
The recommendation system pipeline is depicted in the following figure.
First, similar applications are retrieved by RoBERTapp, a fine-tuned RoBERTa model, based on textual fields.
Then, they are reranked based on relevancy metrics.
Endpoint
https://apprecommender.caixamagica.pt/api/recommend
Parameters
app_id
- The id of the base application for which the recommendations will be drawn.- The id should exist within the Aptoide Mobile Application Dataset
n
- Number of recommendations to return- Default value: 7
- Maximum value: 30
w_downloads
- Weight given to the downloads field within the relevancy reranker.- Default value: 0.6
w_avg_rating
- Weight given to the average rating field within the relevancy reranker.- Default value: 0.1
w_total_rating
- Weight given to the total rating field within the relevancy reranker.- Default value: 0.3
w_name
- Weight given to the name textual field within the retriever.- Default value: 0.5
w_description
- Weight given to the description textual field within the retriever.- Default value: 0.5
w_dev
- Weight given to the developer textual field within the retriever.- Default value: 0
Returns
JSON with the following fields:
-
status
- 'ok'
- 'nok'
-
data
- if status is 'ok', returns a list of ids of recommended applications.
- The Aptoide Mobile Application Dataset can be used to get more information for each id.
Example
import requests
facebook_id = 56965434
endpoint = "https://apprecommender.caixamagica.pt/api/recommend"
params = {'app_id': facebook_id , 'n': 3,
'w_downloads':0.8, 'w_avg_rating':0.1, 'w_total_rating':0.1,
'w_name':0.1, 'w_description': 0.5, 'w_dev': 0.4}
r = requests.get(endpoint, params = params)
print(r.json())
Output:
{'status': 'ok', 'data': [56966709, 56970650, 56970406]}
The Aptoide Mobile Application Dataset can be used to get information for the returned ids. For instance, using the API:
import requests
endpoint = "https://apprecommender.caixamagica.pt/api/appsdataset"
for app_id in [56966709, 56970650, 56970406]:
params = {'app_id': app_id}
r = requests.get(endpoint, params = params)
print(r.json()['data']['name'])
Output
WhatsApp Messenger
Messenger – Text and Video Chat for Free
Instagram