The document presents a prototype of a context and user aware smart notification system. The goal is to develop a system that can filter incoming notifications using machine learning based on notification information, environment status, user context, and user habits. The proposed architecture is modular and aware of these factors. Preliminary results show support vector machines and decision trees had the best performance at predicting the correct notification delivery method, with support vector machines being the most accurate but slowest. Future work includes collecting real notification data and evaluating additional machine learning algorithms.
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Context and User Aware Smart Notification System
1. A Context and User Aware
Smart Notification
System
Fulvio Corno
Luigi De Russis
Teodoro Montanaro*
http://jol.telecomitalia.com/j
olswarm/
http://elite.polito.it/
3. 3
Context
Context
Infographic from "The Connectivist": growing of IoT connected devices
(http://www.theconnectivist.com/2014/05/infographic-the-growth-of-the-internet-of-things/)
10. 10
Motivation
Motivation
IoT devices can generate, receive and show different kinds of notifications
Nowadays the same notification is replicated on all available devices
The number of notifications is growing
11. 11
Motivation
Motivation
IoT devices can generate, receive and show different kinds of notifications
Nowadays the same notification is replicated on all available devices
The number of notifications is growing
12. 12
Motivation
Motivation
IoT devices can generate, receive and show different kinds of notifications
Nowadays the same notification is replicated on all available devices
The number of notifications is growing
The benefit of displaying the same
notification on all available devices
could put user patience to a hard test
13. 13
Analyze how machine learning approach can improve
IoT notification user experience
Goal
Goal
14. 14
Analyze how machine learning approach can improve
IoT notification user experience
Goal
Goal
15. 15
Analyze how machine learning approach can improve
IoT notification user experience
Goal
Goal
Develop a system able to filter incoming notifications
depending on:
• Notification information
• Environment status
• User context
• User habits
16. 16
Analyze how machine learning approach can improve
IoT notification user experience
Goal
Goal
Develop a system able to filter incoming notifications
depending on:
• Notification information
• Environment status
• User context
• User habits
17. 17
Analyze how machine learning approach can improve
IoT notification user experience
Goal
Goal
Develop a system able to filter incoming notifications
depending on:
• Notification information
• Environment status
• User context
• User habits
Evaluate machine learning approach
24. 24
We propose:
Environment status
(e.g., weather information,
current date and time)
User context (e.g.,
location, status, current
activity),
A modular architecture
aware of
Architecture
Architecture
25. 25
We propose:
Environment status
(e.g., weather information,
current date and time)
User context (e.g.,
location, status, current
activity),
User habits
A modular architecture
aware of
Architecture
Architecture
42. 42Prototype
Prototype implementation
Aim: evaluate machine learning approach to decide
• who should receive an incoming notification;
• the best moment to show the notification;
• the best device(s)
• the best mode to notify the incoming notification
43. 43Prototype
Prototype implementation
Aim: evaluate machine learning approach to decide
• who should receive an incoming notification;
• the best moment to show the notification;
• the best device(s)
• the best mode to notify the incoming notification
44. 44Prototype
Prototype implementation
Preliminary version of
Aim: evaluate machine learning approach to decide
• who should receive an incoming notification;
• the best moment to show the notification;
• the best device(s)
• the best mode to notify the incoming notification
45. 45Prototype
Prototype implementation
Preliminary version of
Aim: evaluate machine learning approach to decide
• who should receive an incoming notification;
• the best moment to show the notification;
• the best device(s)
• the best mode to notify the incoming notification
51. 51
Prototype implementation
Prototype
94 people over 9 months
monitored through
smartphones in 2004:
• Sender
• Receiver
• Type of notification
• Timestamp of receipt
• User current location
Dataset
52. 52
Prototype implementation
Prototype
94 people over 9 months
monitored through
smartphones in 2004:
• Sender
• Receiver
• Type of notification
• Timestamp of receipt
• User current location
Dataset
Synthetic data:
• User current
activity
• Available devices
for the user
• Target device.
53. 53
Prototype implementation
Prototype
94 people over 9 months
monitored through
smartphones in 2004:
• Sender
• Receiver
• Type of notification
• Timestamp of receipt
• User current location
Dataset
Synthetic data:
• User current
activity
• Available devices
for the user
• Target device.
Real + synthetic dataset:
165,289 samples, almost one per
each hour of the day
(the missing samples are related
to hours in which users turned
off their smartphones)
54. 54
Prototype implementation
Prototype
94 people over 9 months
monitored through
smartphones in 2004:
• Sender
• Receiver
• Type of notification
• Timestamp of receipt
• User current location
Dataset
Synthetic data:
• User current
activity
• Available devices
for the user
• Target device.
Real + synthetic dataset:
165,289 samples, almost one per
each hour of the day
(the missing samples are related
to hours in which users turned
off their smartphones)
Information collected by Decision Maker in previous example
{
“notification“:{
“senderName“:“mySmartHome“,
“type“:“smart Home Notification“,
“receiptTimestamp“:“1447347600“
},
“userStatus“: {
“senderId“:“359“,
“currentActivity“:“STILL“,
“currentActivityConfidence“:“50%“,
“availableDevices”:[“deviceId”:”23”]
},
“deviceStatus“:{
“deviceId“:”23”,
“category“:”Smartphone”,
“currentStatus“:”On”,
“currentMode“:”Ring”,
“wifiStatus“:” Connected through MOBILE”,
“batteryLevel“:” 57%”,
“batteryStatus“:”BATTERY_STATUS_NOT_CHARGING”
}
}
59. 59
Prototype implementation
Prototype
Simplified version of the Decision
maker:
• only one device as receiver;
• only one available mode for each
device;
• no decision about the best time
to deliver the notification;
• not aware of environment
context
Machine learning algorithms
Dataset
Real + synthetic data (165,289
samples)
Training dataset: 80% of data
Tests dataset: 20% of data
62. 62
Prototype implementation
Prototype
Three machine learning
algorithms:
1. SupportVector Machine
2. Gaussian Naïve Bayes
3. Decision Trees.
Machine learning algorithms
Dataset
Real + synthetic data (165,289
samples)
Training dataset: 80% of data
Tests dataset: 20% of data
65. 65
Preliminary results
Preliminary results
CPU time (in seconds) for a training phase with
33058 samples
96,10%
83,40%
93,90%
0,00%
20,00%
40,00%
60,00%
80,00%
100,00%
Support
Vector
Machine
Gaussian
Naive Bayes
Decision Trees
5801,1
12,9 13,9
1
10
100
1000
10000
Support
Vector
Machine
Gaussian
Naive Bayes
Decision Trees
Percentage of corrected predictions obtained
with used algorithms
66. 66
Preliminary results
Preliminary results
Average CPU time (in milliseconds) for each
notification classification
SupportVector Machine 40,22 ms
Gaussian Naive Bayes 0,31 ms
Decision Trees 0,001 ms
96,10%
83,40%
93,90%
0,00%
20,00%
40,00%
60,00%
80,00%
100,00%
Support
Vector
Machine
Gaussian
Naive Bayes
Decision Trees
Percentage of corrected predictions obtained
with used algorithms
CPU time (in seconds) for a training phase with
33058 samples
5801,1
12,9 13,9
1
10
100
1000
10000
Support
Vector
Machine
Gaussian
Naive Bayes
Decision Trees
67. 67
Conclusion
Obtained results demonstrated that our system uses a promising technique to
manage the problem of overwhelming notifications.
Specifically, the machine learning approach was tested through 3 different
algorithms and SVM and DT seem to be the most promising one.
Conclusion
Future work:
Define a new dataset to include all the needed real information
Development of a system to collect real data and real notifications
Careful evaluation of the machine learning algorithms
Enhancement of prototype to include unconsidered blocks
68. 68
Thank you
Future work
Notification Collector (beta):
Android app to collect real data
https://goo.gl/pLMWSG
To contribute: download it!
Requirement: Android 5 (Lollipop)
We collect (anonymously):
• Incoming notification info (no
content)
• User current activity
• User current location
• Device status
• User feedback