license:cc-by-nc-nd-4.0 IoT Smart Home Rule Recommendation Recommendation Systems region:us
---
license: cc-by-nc-nd-4.0
extra_gated_heading: >-
  Wyze Rule Recommendation Challenge Participation and Dataset Access Terms and
  Conditions
extra_gated_prompt: >-
  Please read the <a href="https://drive.google.com/uc?id=1eM3RQYeQUZeiIo8cqTgC3ixM17Vhd6QL" target="_blank">Wyze Rule Recommendation Challenge Participation and Dataset Access Terms and Conditions</a>
  carefully. In order to gain access to the data and take part in the Wyze Rule
  Recommendation challenge, you must first read and consent to these terms and
  conditions.
extra_gated_fields:
  Name: text
  Affiliation: text
  Email: text
  I have read and agree to the Wyze Rule Recommendation Challenge Participation and Dataset Access Terms and Conditions: checkbox
tags:
- IoT
- Smart Home
- Rule Recommendation
- Recommendation Systems
pretty_name: Wyze Rule Recommendation Dataset
---

# Wyze Rule Recommendation Dataset

<img src="https://drive.google.com/uc?id=1TrgrQk8mWcwseDhP5htvJya8bThGUw1Y" alt="WRR" width="100%"/>

<!---
## Dataset Description

- **Paper:TBA** 
- **Leaderboard:TBA** 
- **Point of Contact:** 
--->

## Dataset Summary
The Wyze Rule dataset is a new large-scale dataset designed specifically for smart home rule recommendation research. It contains over 1 million rules generated by 300,000 users from Wyze Labs, offering an extensive collection of real-world automation rules tailored to users' unique smart home setups.
The goal of the Wyze Rule dataset is to advance research and development of personalized rule recommendation systems for smart home automation. As smart devices proliferate in homes, automating their interactions becomes increasingly complex. Rules recommend how a user's devices could be connected to work together automatically, like a motion sensor triggering a camera to record. But with users having different devices, manually configuring these rules is difficult. This dataset enables creating intelligent algorithms that automatically recommend customized rules tailored to each user's specific smart home setup. By training machine learning models on the diverse real-world data of over 1 million rules from 300,000 Wyze users, researchers can build personalized recommendation systems. These would simplify and enhance automation for end users by suggesting rules that connect their devices in useful ways, while respecting their privacy. The Wyze Rule dataset provides the large-scale and varied data needed to make such personalized, private rule recommendation a reality.

The key features of this dataset are:
- Over 1 million automation rules governing how users' smart devices interact
- Rules are highly personalized based on each user's specific devices and needs
- 16 distinct device types like cameras, sensors, lights etc.
- There are 44 different trigger states and 46 different action by various devices.
- 1,641 unique trigger-action device and state (trigger_device + trigger_state + action + action_device) pairs capturing diverse automation logics
- Non-IID distribution among users makes it suitable for federated learning
- Allows development of personalized rule recommendation systems while preserving user privacy
- Enables benchmarking different algorithms on large-scale real-world data
Overall, the Wyze Rule dataset bridges the gap between rule recommendation research and practical applications, facilitating the creation of intelligent home automation systems. Its scale, diversity, and focus on individual users' needs make it a valuable resource for advancing personalized recommendation techniques.

## Dataset Structure
The Wyze Rule dataset contains two main CSV files - one for the rules and one for the devices owned by each user. 
Each rule has attributes like user ID, trigger device, trigger state, action device, and action. 
For example, a rule could be: user 123, contact sensor, "open", light bulb, "turn on". 
This captures the trigger condition and the action to take. The device file maps user IDs to the specific devices owned by each user. 
This is key because automating different device setups requires different valid rules. 
With 16 device types and 1641 trigger-action state and device pairs, the rules reflect a user's customized needs. 
Each user can have multiple instances of a device type, like several motion sensors. 
The non-IID distribution of rules among 300,000 users with varying device combinations makes this dataset uniquely suitable for developing personalized federated learning algorithms for rule recommendation. 
By separating rules into triggers and actions, the data structure provides flexibility lacking in user-item matrices that treat rules as single items. 
Overall, the real-world granularity enables personalized automation.

### Data Fields
The main two files of this dataset, rules and devices, have the following fields:

1. Rule Dataset: This dataset contains data related to the rules that govern the behavior of Wyze smart home devices. Each row represents a single rule and contains various attributes describing the rule. The attributes of this file are as follows:
    + `user_id` (int): A unique integer identifier for the user associated with the rule. This identifier has been anonymized and does not contain any information related to the Wyze users.
    + `trigger_device` (str): The model of the device that triggers the rule when a specific condition is met. It may be a Wyze smart home device such as a sensor or a camera.
    + `trigger_device_id` (int): A unique integer identifier for the trigger device.
    + `trigger_state` (str): The state or condition that needs to be met on the trigger device for the rule to be activated. It may represent values such as "on," "off," "motion detected," or "sensor open."
    + `trigger_state_id` (int): A unique integer identifier for the trigger state.
    + `action` (str): The action to be executed on the action device when the rule is triggered. It may include values like "power on," "power off," "start recording," or "change brightness."
    + `action_id` (int): A unique integer identifier for the action.
    + `action_device` (str): The model of the device that performs an action when the rule is triggered. It is a Wyze smart home device such as a light or a camera.
    + `action_device_id` (int): A unique integer identifier for the action device.
    + `rule` (str): The combination of 4 ids as follows: `trigger_device_id`\_\_`trigger_state_id`\_\_`action_id`\_\_`action_device_id`
3. Device Dataset: This file contains data related to the devices owned by users. Each row represents a single device and contains information about the device model and its association with a specific user. There are a number of devices in this dataset that are not used in any rules by users, and hence, are not present in the rule dataset. The attributes of this dataset are as follows:
    + `user_id` (int): A unique integer identifier for the user associated with the device.
    + `device_id` (int): A unique integer identifier for the device.
    + `device_model` (str): The model or type of the device owned by the user. It represents various Wyze smart home devices such as a camera, a sensor, or a switch

There are a total of 16 different device types included in this dataset as follows:
1. `Camera`
2. `ClimateSensor`
3. `Cloud`
4. `ContactSensor`
5. `Irrigation`
6. `LeakSensor`
7. `Light`
8. `LightStrip`
9. `Lock`
10. `MeshLight`
11. `MotionSensor`
12. `OutdoorPlug`
13. `Plug`
14. `RobotVacuum`
15. `Switch`
16. `Thermostat`

### Data Splits
We have two public splits, which are `train` and `test`. The `train` split contains all the available rules set by the users in the dataset, as well as their device list. In the `test` dataset, for each user in this dataset, we have omitted one rule at random. The goal of building recommendation system is to recommend that omitted rule with high probability. The ground truth for this dataset will be released after the Wyze Rule Recommendation challenge has finished.



### Personal and Sensitive Information

Protecting user privacy was a top priority when creating the Wyze Rule dataset. 
Any personally identifiable information or sensitive data that could reveal users' identities has been meticulously obscured. 
The user IDs have been anonymized into random numeric values, removing any links to actual Wyze users. 
The rules simply capture abstract triggers and actions for automation using generic device types. 
By only retaining high-level functionality while erasing all personal attributes, the Wyze Rule dataset enables developing personalized recommendation algorithms without compromising user privacy. 
Researchers can leverage this rich real-world data to advance the field of automation systems significantly while ensuring ethical data practices. 
The dataset creators' commitment to protecting users' privacy will help propel innovation responsibly.

## Considerations for Using the Data
This data is mainly released for the [Wyze Rule Recommendation Challenge](https://huggingface.co/spaces/competitions/wyze-rule-recommendation).


### Licensing Information

This dataset is licensed by cc-by-nc-nd-4.0, which prohibits commercial use, distribution, modification, and reproduction of the data without permission from the copyright holder.

### Citation Information

TBA
