ShutApp - Mood prediction app using phone activity detection
1. Team Number 1 | ShutApp – A mood prediction app based on phone activity detection
Madhumita Mallick | Amrith Krishna | Samiksha Meena | A. N. Rajitha
ShutApp
For those who do not
know when to shut up
1 Collect user specific data
- App history, web history, call logs, emails
- Sensor data
- Phone keyboard usage patterns & speed
2 Real time mood prediction model, based on collected data.
Sentiment analysis on collected emails & text data to label
the training data
No explicit user feedback required
2. Team Number 1 | ShutApp – A mood prediction app based on phone activity detection
Madhumita Mallick | Amrith Krishna | Samiksha Meena | A. N. Rajitha
ShutApp
For those who do not
know when to shut up
1 Collect user specific data
- App history, web history, call logs, emails
- Sensor data
- Phone keyboard usage patterns & speed
2 Real time mood prediction model, based on collected data.
Sentiment analysis on collected emails & text data to label
the training data
No explicit user feedback required
3. Keystrokes (with
timestamp)
Periodical Web History,
Call Logs
APP Category
& time spent
Every App run,
Sensor information for
first 2 minutes
• keystrokes
• Typing speed and other characteristics
• Backspaces, contiguous backspaces
Unobtrusive Emotion
recognition, CCNC 2012
• Web History, call logs
• App history
• App & Web categories
MoodScope, MobiSys
2013
• Automated Labelling with sentiWordnet
• Sensor Information (But not related to moods)iSelf, INFOCOM 2015
Background & Progress
4. Implementation Details
Background Process
• Alarm Manager
Periodically runs after every k
hours
• Collect Webhistory, Call logs
IME - Keyboard
Collect keystrokes with timestamp.
Accessibility Manager
• Enable Accessibility service.
• Even trigger occurs, whenever there is
an app switch.
Collect Gmail
• Gmail API for read permissions.
• Periodically store in a server.
1
2
3
4
Completely unobtrusive after
the setup
One time setup for the user
5. • Change language and setting.
• Change accessibility setting.
• Sign in gmail account.
3 step process :
UI : Initial Setup
6. The regular page/(last page after initial setup) which
will be shown whenever user opens app,(here he can
disable the permissions which he granted)
Even though the device shuts down or restarts, the
services will come out again and run.
UI : Single Step Pause/Resume
7. For changing language and input settings,we used the input manager
class. A new prompt will open for changing the default keyboard.
Similarly for changing accessibility to a service, we used system
class, which will redirect the user to the accessibility page.
For giving gmail access, we used a webviewer which will open a site
hosted by us.
UI : Development
8. Once user opens the url
"www.cnergres.iitkgp.ac.in/~shutApp/quicker.html" user is requested for
gmail access.
Upon receiving access, a token is stored in the server,periodically a
python script checks for newly stored tokens and polls the gmail server
by gmail api for the mail-content.
Gmail api: user.get.message, user.list.message.
Gmail API
10. Ground Truth Collection
Collected gmail sent mails from the user for the tracking period
Sentiwordnet – A sentiment tagged Wordnet derivate.
1
2
3
P: 0.375 O: 0.5 N: 0.125
Every word is represented in 3 dimensions – Positive, Negative, Objective
Adds to 1
Document is represented as the tf-idf weighted sum of the sentiwordnet scores
Document is Positive if P > 0.5, Negative if N > 0.5, else it is tagged Objective
11. User Mood
Detection
1) Top 3 Websites
2) Top 3 Apps
3) App & Website
categories
4) Time spent (in 1,2,3)
5) Acc. Avg in Apps.
Phone Usage
Call Details
1. Top 5 callers
2. Time Spent
Keyboard Usage
1. Speed
2. Backspace
3. Contiguous
backspace
4. Max. session
5. length
Model
• SVM
• Naïve Bayes
1. From Gmail
sent mail
2. Labels –
P,N,O
Label
12. Naive Bayes
N P O TP
N 19 2 0 0.90
P 9 13 3 0.52
O 2 0 15 0.88
Acc 0.77
N P O TP
N 18 3 0 0.86
P 2 21 2 0.84
O 0 1 16 0.94
Acc 0.88
Naive Bayes : SFS (19)
N P O
N 20 1 0 0.95
P 2 22 1 0.88
O 1 0 16 0.94
Acc. 0.92
SVM
Classifier U1 Accuracy
63 Data Points
U2 Accuracy
29 Data Points
U3 Accuracy
25 Data Points
SVM – 4 fold 92.09 (68.27) 66.67 60
NB – 4 Fold 76.90 61.13 60
NB FS – 4 Fold 87.94 70 66
Classifier Accuracy
13. Data Point
percentage
Accuracy
U1
20 42
30 62.5
40 62
50 68.27
60 71.41
70 81.43
80 83.33
90 90.3
100 92.09
Training Accuracy Vs. Training Data Size
44
45
46
47
48
App1 time spent Contigous
backspace
Single Feature Acc. (%)
14. User Feature
Subset
U1 19
U2 5
U3 5
Feature U1 U2 U3
Backspace
Max Contigous Count
App1
App1 time spent
App3 Acc. Average
Feature Subset selection
• The objective is to reduce the dimensionality of feature space and
select a subset of best features.
• We search the feature space and take those features which
maximizes the accuracy.
• We use Linear Forward selection.
15. Conclusion
1 • Phone activity reflects user mood.
• Unobtrusive ground truth collection.
• Time spent in an app is a key feature.
2 • Designed Personalised models.
• Shown with sufficient data points, model.
can give high accuracy.
• Features were designed to capture mostl
Negative emotions (backspace etc.)
16. T
A
H N K O
Y
U
Surjya Ghosh
Rohit Verma
Special Thanks