<commit_before>Master's project
================

> The following is a draft of what will be the final project description. It is not necessarily up to date.

## Personalizing user activation with machine learning and multivariate testing

Identifying the different ways in which users use a product can be useful on several levels. In this project we will look at how identifying user classes allows for simple personalization of the product, and to what extent simple personalized treatments can alter user behavior.

It is often the case that some identified user classes are more desirable than others. Either because its associated users generate more revenue, use the product more, invite their friends, or similar. This project describes a system capable of not only identifying user classes, but more importantly a framework for identifying the most effective ways of driving users toward more desirable user classes.

More specifically, given a set of identified user classes and a set of predefined treatments, we want to find out how each treatment affects each user class. Although the project implementation will specifically target the video conferencing service appear.in, a major research question will be to what extent the results generalize.
<commit_msg>Added research questions and list of treatments<commit_after>Master's project
================

> The following is a draft of what will be the final project description. It is not necessarily up to date.

Personalizing user activation with machine learning and multivariate testing
-----------------------------

Identifying the different ways in which users use a product can be useful on several levels. In this project we will look at how identifying user classes allows for simple personalization of the product, and to what extent simple personalized treatments can alter user behavior.

It is often the case that some identified user classes are more desirable than others. Either because its associated users generate more revenue, use the product more, invite their friends, or similar. This project describes a system capable of not only identifying user classes, but more importantly a framework for identifying the most effective ways of driving users toward more desirable user classes.

More specifically, given a set of identified user classes and a set of predefined treatments, we want to find out how each treatment affects each user class. Although the project implementation will specifically target the video conferencing service appear.in, a major research question will be to what extent the results generalize.

Possible treatments
-------------------

To be able to affect user behavior, actual differing treatments are required.

### High-level variations

- Varying availability of existing features.
- Toggling help texts for existing features.
- Hints on unused features.
- "Did you know?" on loading/alone.
- Simple poll question while loading/alone.

### Existing togglable features

- Text chat
- Claim room
- Follow room
- Customize room
- Kick

### Possibly togglable features in the pipes

- Localization
- Chat history

**A start could be to identify which ones are least used, and attempt to stimulate usage of those.**

Research questions
------------------

1. Are users of video conferencing services such as appear.in clearly dividable into separate groups based only on their behavior within the service? Do these patterns reflect those seen elsewhere (in other types of internet services or IRL)?
2. Is it feasable to personalize treatments to these user classes? Does it stimulate users into becoming more active users?
    1. Is this something these users want?
    2. Do the inferred preferences of the detected user classes significantly differ from each other?
3. How can a toolkit be devised to handle the following?
    1. User classification based on behavior.
    2. Product personalization based on a relevant user's class.
    3. Tracking of each treatment's effect on each user class.
    4. Prioritize using the most effective treaments without introducing statistical bias (see [multi-armed bandit](http://en.wikipedia.org/wiki/Multi-armed_bandit)).
    5. Allow product developers to easily access results to improve future feature prioritization.




{'fraction_non_alphanumeric': 0.053258584442887176, 'fraction_numerical': 0.00233590282644242, 'mean_word_length': 4.228327228327228, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7401173', 'n_tokens_mistral': 902, 'n_tokens_neox': 868, 'n_words': 611}