Personalisation
Abstract
Personalisation aims to provide a better user experience by proposing content by interest instead of by feature. The goal is to make users feel the app is "shaped for them".
To do so, we will rely on a ML-powered recommendation engine. The goal of this document is to describe the technical stack behind this goal, from content classification to provide a list of recommended topics to the end user.
This technical concept mainly covers how to reach an up and running proof of concept. This document might be updated afterwards with more general information regarding how to integrate personalisation in a feature.
The scope of the proof of concept includes :
- Classifying content on Motivation and Gesundheitkurse features
- Collecting reliable data to fuel the recommendation engine
- Building a first version of the recommendation engine
- Setting up an onboarding questionnaire to personalize the user experience with a first set of data
Detailled description
- Content tagging / classification
- Event logging
- Recommendation service and engine
- Habbits questionnaire
- Consent management
- Data flow
Useful links
Final presentation from Module 6 - PDF
Technical overview
Lexicography and concepts
Event
An event is a set of data reflecting user's interest for a specific occasion. That could be when they read content, click on a card. It usually emits one or several keywords, carrying the topic of interests displayed at this specific moment.
Content
Content is a atomic, autonomous information that is displayed to the end user. Content contains the valuable information given to the user through Navida. For instance, a health goal, a magazin article, or a doctor profile page are 3 contents. Content can be sourced from the CMS or from third parties.
Keywords (or Personalisation Hints)
Personalisation Hints are a set of words, describing the topics covered by a content. Not all words can be used as keyword, and only a controlled set is used. Each content can have multiple keywords assigned. There is no restriction on how many keywords describe a content.
Keywords can either be set manually on content controlled by AOK (in the CMS), or set automatically on content coming from third parties. On the latest case, automatic association should rely on a human-defined set of rules.
Example : if the word "yoga" exists in keywords defined on Queo content, then assign "personalisation" keywork "sport".
Recommendation
A recommendation is a set of keyword generated by a ML engine (named Recommendation Engine), for a specific user. This set is generated based on previous events encountered by the user and other users that have similar interests.
DTO
Data Transfer Object. Data exposed by the APIs, mostly in JSON format.