본 문서에서는 2024년 PLOSONE 저널에 발표된 "Dependency-Aware Action Planning for Smart Home" 논문을 소개합니다. 논문에 대한 상세한 정보는 다음과 같습니다.
- Title: Dependency-Aware Action Planning for Smart Home
- Authors: Jongjin Kim, Jaeri Lee, Jeongin Yun, and U Kang
- Journal: PLOSONE (2024)
Action Planning Problem
IoT 생태계가 구축된 스마트 홈은 사용자가 빅스비, 시리와 같은 온라인 비서 기능을 통해 집 안의 다양한 가전제품을 제어할 수 있게 제공합니다. 이 과정에서 사용자가 원하는 가전제품의 상태를 쿼리로 입력하면 시스템은 가전제품을 해당 상태로 변경하기 위한 적절한 동작들을 찾는 것이 중요합니다. 그러나 오늘날 점점 스마트기기의 종류와 제조사, 스마트 홈 플랫폼 제공 업체들이 다양화되는 과정에서 제조사나 서비스 제공자가 개별 기기들에 일일이 제어 방법을 명시하는 것은 어려워지고 있습니다. 따라서 기기가 시스템에 연결되었을 때 기기의 로그만으로 자동으로 기기의 특성을 파악하고 입력받은 쿼리를 만족시키도록 기기를 제어하는 문제를 동작 계획 문제(Action Planning Problem)이라 하며 본 논문은 이 문제를 풀기 위한 솔루션을 제안합니다.
이 문제를 푸는 과정에서는 기기의 상태(State)와 동작(Action) 사이의 의존성(Dependency)를 고려하는 것이 중요합니다. 예를 들어 그림 1과 같이 TV의 채널을 변경하고 싶은 상황을 고려해 봅시다. 이 때 채널을 조정하는 동작은 스위치가 켜져 있을 때만 실행할 수 있습니다. 따라서 채널을 조정하기 위해서는 중간에 스위치를 켜고 다시 끄는 동작이 필요합니다. 이처럼 기기의 상태에 따라 동작의 실행 가능 여부가 결정되는 것을 의존 관계라 합니다. 본 논문이 제안한 SmartAid 알고리즘은 기기의 로그 데이터로부터 상태와 동작 사이 의존성을 파악하고 사용자 쿼리에 맞는 적절한 동작 계획을 찾아냅니다.
Problem Formulation
본 논문에서 다루는 동작 계획 문제를 구체적으로 정의하기 전에 먼저 스마트 홈 환경에서 사용되는 용어들에 대해 간략히 짚어보겠습니다.
- 기능 (Capability)
- 기능이란 기기가 가지고 있는 속성들을 의미합니다. 예를 들면 TV의 기능으로는 전원, 채널, 음량 등이 있습니다.
- 기능값 (Value of capability)
- 기능값이란 기기의 기능별로 정해진 기기의 현 상태를 나타내는 값들을 의미합니다. 예를 들어 TV의 전원이라는 기능의 기능값으로는 켜짐 혹은 꺼짐의 두 가지 값 중 하나를 가질 수 있습니다.
- 상태 (State)
- 상태란 기기의 현 상황을 정의하는 딕셔너리(dictionary)로 각 기능별로 현재 기기가 어떤 기능값을 가지고 있는지를 나타낸 것입니다.
- 명령 (Command)
- 명령이란 기기를 조작하기 위한 함수로 기기의 상태와 매개변수를 입력받으면 기기의 새로운 상태를 반환합니다. 예를 들어 "음량 올리기", "음량 x로 설정하기" 등이 있습니다.
- 동작 (Action)
- 동작이란 명령과 매개변수의 쌍으로 구성된 기기에 내릴 수 있는 기기 제어의 최소 단위입니다.
위와 같은 용어에 유념하며 스마트홈을 위한 동작 계획 (Action planning for Smart Home) 문제를 명확히 정의해보겠습니다.
- 기기의 기능, 가능한 기능값, 명령 목록
- 과거 기기가 수행했던 동작과 그 전 후 상태 변화로 구성된 로그 데이터
- 기기의 현재 상태
- 사용자가 원하는 기기의 상태
- 현 상태에서 사용자가 원하는 상태로 기기를 제어하기 위한 동작의 목록
Proposed Method
본 논문에서는 스마트 홈을 위한 동작 계획 문제를 풀기 위해 SmartAid (Smart Home Action Planning in Awareness of Dependency) 알고리즘을 제안합니다. SmartAid는 그림 2와 같이 기기의 로그 데이터로부터 기기의 상태 전이 정보를 그래프 형태로 추출하기 위한 그래프 구축 단계 (Graph construction phase), 그리고 유저의 쿼리에 맞는 동작 목록을 생성하기 위한 동작 계획 단계(Action planning phase)로 구성됩니다. 이 때 그래프 구축 단계는 기기당 1회만 필요하며 이후 동작 계획 단계는 유저의 쿼리가 입력될때마다 실행됩니다. 각 단계의 세부 구성은 다음과 같습니다.
그래프 구축 단계
그래프 구축 단계에서는 기기의 로그 데이터로부터 기기가 어떤 상태에서 어떤 동작을 취하면 어떤 상태로 변화하는지에 대한 상태 전이 정보를 추출합니다. 이 때 기기가 취할 수 있는 상태와 사용할 수 있는 동작의 가지수가 너무 많으므로 이를 효율적으로 처리해야 합니다. 이를 위해 SmartAid는 동작이 아닌 명령 단위로 로그 데이터를 분석하고 정보를 추출합니다. 이 때 추출하는 정보는 각 명령별을 수행할 수 있기 위한 상태의 조건과 명령을 수행했을 때 상태가 변하는 규칙입니다. 조건은 로그를 필터링하여 수집하며 상태 변화 규칙은 간단한 선형 회귀 및 로지스틱 회귀 모델을 통해 학습합니다. 자세한 내용은 논문을 참고해 주시기 바랍니다.
동작 계획 단계
동작 계획 단계에서는 사용자가 입력한 원하는 상태로 기기를 조작하기 위한 동작의 나열을 찾아냅니다. 이를 위해 SmartAid는 한 번에 한 가지 기능씩 맞추기 위한 동작을 찾아냅니다. 그 후 찾아낸 동작을 실행할 수 있기 위한 조건을 만족시키기 위한 동작을 찾아 앞에 삽입하는 작업을 반복합니다. 이렇게 한 번에 탐색하는 범위를 기능 하나로 줄임으로써 기기의 방대한 상태 공간을 전부 탐색하지 않고도 원하는 동작 계획을 찾아낼 수 있습니다. 자세한 내용은 마찬가지로 논문을 참고해 주시기 바랍니다.
Experiments
본 논문은 제안하는 방법의 효율성을 입증하기 위해 기존 그래프 탐색 알고리즘들과 실행 시간과 메모리 소비량 측면에서 비교 실험을 진행합니다. 표 1은 실험 결과를 요약합니다. 전구, TV, 로봇청소기, 공기청정기의 네 기기에 대해 실험이 진행되었으며 실행 시간은 탐색 과정에서 방문한 상태의 수 (Visited), 메모리 소비량은 탐색 과정에서 저장해야 하는 상태의 개수(Memory)를 통해 비교합니다. 실험 결과는 SmartAid는 다른 기법에 비해 시간적으로도, 메모리 측면에서도 가장 효율적인 기법임을 입증합니다.
표 1. SmartAid과 경쟁 방법들의 성능 비교.
Conclusion
본 문서에서는 2024년 PLOSONE 저널에서 발표된 "Dependency-Aware Action Planning for Smart Home" 논문을 소개하였습니다. 해당 논문은 효율적으로 스마트 홈의 기기를 제어할 수 있는 SmartAid (Smart Home Action Planning in Awareness of Dependency) 알고리즘을 제안하였습니다. SmartAid는 기존 탐색 기법에 비해 적은 시간과 메모리만으로 사용자가 원하는 상태로 기기를 조작하기 위한 동작 계획을 찾아내었습니다. 본 논문은 스마트 홈 플랫폼 업체가 다양한 스마트 기기를 서비스할 수 있게 하는 핵심 기술입니다. 스마트 기기 업체 혹은 플랫폼 제공자가 플랫폼의 API에 맞는 솔루션을 일일이 만들지 않고도 SmartAid를 적용하면 시중에 있는 임의의 스마트 기기를 신규 플랫폼에서도 서비스할 수 있으며 역으로 기존 플랫폼에 자유롭게 새로운 스마트 기기를 등록하는 것 또한 가능합니다. 이는 급속도로 확대되는 IoT 및 스마트 홈 시장에서 안정적인 서비스를 제공하기 위한 기반이 될 것입니다. 본 논문에 대한 자세한 내용은 다음 링크에서 확인하실 수 있습니다 (링크).