지표가없는 작업의 이점

마지막 업데이트: 2022년 4월 24일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
  • 2019.09.01 – 2019.10.26 기간동안 로깅된 로그 데이터로, 총 804,558개의 row와 5개의 column으로 이루어져 있습니다.
  • 접속 이력이 있는 유니크 유저 수는 80,890명 입니다.
  • Community/Daily/Special로 나누어진 총 3가지 게임 미션이 제공됩니다

Semi-supervised learning 방법론 소개

안녕하세요. 이스트소프트 A.I. PLUS Lab입니다. 이번 포스팅에서는 머신러닝의 학습 방법 중 하나인 준지도학습(semi-supervised learning, SSL)에 대해 다루어보려고 합니다.지표가없는 작업의 이점

SSL 자체가 워낙 거대한 주제이기 때문에 이번 포스트에서 전체적인 내용을 모두 다루기보다, 일부 방법론과 각 방법론에서 읽어 볼만한 주요 논문들을 소개하려고 합니다. 전체적인 흐름은 레퍼런스 [2]의 내용에 기반하고 있기 때문에 SSL 연구를 위해 자세한 기반 지식이 필요하신 분들은 아래 레퍼런스를 참고하시면 좋을 것 같습니다.

머신러닝 학습 방법의 구분: 지도학습, 비지도학습, 준지도학습

머신러닝의 학습 방법은 크게 지도학습(supervised learning, SL)비지도학습(unsupervised learning, UL)으로 나뉘는데요. 이 둘을 나누는 기준은 바로 학습 데이터의 라벨(label) 유무입니다.

먼저 지도학습은 정답이 되는 데이터(labeled data)를 학습시켜 새로운 입력(input) 데이터가 무엇인지 예측하는 것을 목표로 진행되는데요. 지도학습은 크게 분류(classification)과 회귀(regression)으로 나뉩니다. 이에 반해 비지도학습은 정답지 없이 주어진 입력 데이터 간의 숨어있는 구조를 찾아 비슷한 데이터끼리 묶는 것(clustering)을 목표로 합니다.

이 외에 지도학습과 비지도학습의 조합으로 이루어진 준지도학습이 있습니다. 준지도학습의 이름에는 절반을 뜻하는 ‘semi-’가 붙지만, 실제로 이 학습방식에는 위에서 언급한 레이블링된 데이터와 레이블링되지 않는 데이터가 모두 사용됩니다. 준지도학습에서는 한 쪽의 데이터에 있는 추가 정보를 활용해 다른 데이터 학습에서의 성능을 높이는 것을 목표로 하는데요. 분류 분야를 보면 기존 지도학습 데이터에 레이블링되지 않은 데이터 정보를 추가로 사용해 성능을 향상시키고, 클러스터링 분야에서는 새로운 데이터를 어느 클러스터에 넣을지 결정함에 있어 도움을 받을 수 있습니다.

그림 1은 이런 데이터 사용 측면에서 지도학습과 준지도학습, 비지도학습의 성격 차이를 보여줍니다. 보시면 준지도학습에서는 위에서 이야기한것처럼 두 종류의 데이터를 전부 사용하고 있습니다.

l 그림 1. 지도학습, 준지도학습, 비지도학습 [1] l

Semi-supervised learning의 필요성

왜 준지도학습이 필요하게 되었을까요? 준지도학습은 바로 정답 데이터를 수집하는 ‘데이터 레이블링’ 작업에 소요되는 많은 자원과 비용 때문에 등장하게 되었습니다.

지금까지 딥러닝은 많은 분류 문제에서 좋은 성능을 보여줬고, 이 문제를 해결하기 위해 데이터 레이블링 작업이 필수적으로 수반되어 왔습니다. 초기 딥러닝은 ‘손글씨 인식’, ‘사진의 물체 인식’ 등 비교적 단순한 문제를 다뤘기 때문에 전문가가 아닌 사람들도 쉽게 레이블링 작업을 수행할 수 있었고, 이에 대한 작업 결과도 명확해 큰 문제가 되지 않았습니다.

하지만, 최근 딥러닝이 다루는 문제가 복잡해지고 응용 분야가 다양해지면서 레이블링 작업 자체가 하나의 문제로 떠올랐는데요. 추상적인 문제를 해결하기 위해 그 판단 기준을 새롭게 세워야 하거나, 전문 지식을 필요로 하는 문제를 해결하기 위해 해당 분야의 전문가가 필요해지는 등 레이블링 작업에 드는 시간과 비용이 증가하게 된 것입니다.

예를 들어 ‘사진 속 인물의 감정’에 대한 레이블링은 ‘감정’이란 추상적인 부분을 다루기 때문에 ‘사진 속 대상이 무엇인지’에 대한 레이블링보다 그 결과 기준이 애매해지게 되는데요. 많은 사람들이 동의할 수 있는 작업 결과를 만들기 위해서는 그 기준이 새롭게 세워야겠죠? 또한, AI 스피커 또는 번역 플랫폼 개발 등 다양한 문제에 많이 활용되는 ‘말뭉치(corpus, 코퍼스)’를 만들기 위해서는 언어학 전문가들이 필요하게 되는데요. 이 외에도 수많은 견종, 식물 등을 레이블링 하기 위해서는 다양한 전문 지식을 가진 사람들이 필요하게 됩니다.

이와 같은 이유로 단순히 작업하는 사람만을 늘려 레이블링 문제를 해결하기에는 무리가 있기 때문에 ‘준지도학습’이 등장하게 되었습니다. 특히 위에서 언급했던 응용 분야에서는 레이블이 없는 데이터는 비교적 구하기 쉬운 경우가 많기 때문에, 준지도학습은 레이블된 데이터가 적을 때 레이블이 없는 데이터를 사용해 분류기의 성능을 향상시키는 것을 목표로 많이 활용되고 있습니다.

Assumptions of SSL

SSL은 위에서 언급한 대로 기존 SL 모델의 성능을 올려줄 수 있지만, 항상 그런 것은 아닙니다. 레이블되지 않은 데이터가 의미 있게 사용되기 위해서는 데이터 분포에 대한 몇 가지 가정이 필요합니다. 또한 SSL을 위한 다양한 접근 방법들이 있는데, 이런 방법들은 명시적/묵시적으로 이런 가정들에 기반한 접근을 하고 있습니다. 가정들의 정확한 분류는 논문에 따라 약간의 차이가 있긴 하지만 핵심적인 내용은 거의 비슷합니다.

그 첫 번째는 (semi-supervised) smoothness 가정입니다. Smoothness 가정은 확률 밀도가 높은 지역의 입력값 $ x_1, x_2 $가 가깝다면, 각각에 연관된 레이블 $ y_1, y_2 $도 그래야 한다는 것입니다. SSL에서는 이 가정을 레이블이 없는 데이터에도 적용하여 $ x_1 $이 레이블이 있는 데이터고 $ x_2, x_3$이 레이블이 없는 데이터일 때, $ x_1 $이 $ x_2 $와 가깝고, $ x_2 $ 와 $ x_3 $가 가깝다면 $ x_1 $이 $ x_3 $와 가깝지 않더라도 $ x_3 $의 레이블이 $ x_1 $과 같을 것이라고 기대할 수 있습니다.

두 번째는 low-density 가정입니다. low-density 가정은 모델의 결정 경계가 데이터의 확률 밀도가 높은 곳을 지나지 않는다는 가정입니다. low-density 가정은 smoothness 가정과 연관성이 있는데, low-density 가정에 따라 모델의 결정 경계를 두면 low-density 지역은 그 주변에 데이터들이 적기 때문에 smoothness 가정을 위반하지 않습니다. 반면에 high-density 지역에는 데이터들이 많이 모여 있을 것이고, 해당 지역에 결정 경계를 놓는다면 가까운 데이터는 같은 레이블을 가진다는 smoothness 가정을 위반하게 됩니다. 그림 2는 이러한 가정들을 통해 만들어지는 결정 경계를 보여주고 있습니다.

ㅣ그림 2. smoothness 가정과 low-density 가정에 따른 모델의 결정 경계 예시 ㅣ

세 번째는 manifold 가정입니다. Manifold 가정은 앞의 가정들과 비슷한데, 고차원의 입력 데이터가 저차원 공간에서 특정한 구조[manifold]를 따라 놓여 있다는 것입니다. 이는 입력 데이터가 실제로는 여러 개의 저차원 manifold의 결합으로 이루어져 있다는 것과, 같은 manifold 상의 데이터는 같은 레이블을 가지고 있다는 것을 의미합니다. 또한 manifold 가정은 모델 설계 시에 유용할 수 있습니다. 기존 ML에서 잘 알려진 문제인 차원의 저주(curse of dimensionality)는 데이터가 고차원에 존재할 경우 문제가 될 수 있음을 말하는데, 데이터의 분포에 대해 manifold 가정을 할 경우 실제 관련이 있는 차원상에서 데이터를 다루어야 할 필요가 있으며, 이를 통해 고차원 공간상에서 일어날 수 있는 문제를 피할 수 있습니다.

ㅣ 그림 3. manifold 가정에 따른 모델의 결정 경계 예시 ㅣ

SSL에서 언급되는 다른 가정으로는 클러스터 가정이 있는데, 클러스터 가정은 데이터들이 같은 클러스터에 속하면 해당 데이터들은 같은 클래스에 속한다는 가정입니다. 클러스터 가정은 위 가정들의 일반화로 볼 지표가없는 작업의 이점 수 있는데, 이에 따르면 클러스터링을 할 때 유사도(similarity)를 기준으로 클러스터를 나누게 됩니다. 이때 입력 공간상에서 가까운 것들을 클러스터로 본다면 smoothness 가정이 되고, 확률 밀도가 높은 지역의 데이터 포인트를 클러스터로 본다면 low-density 가정이 되고, 저차원 manifold 상의 데이터 포인트들을 클러스터로 본다면 manifold 가정이 됩니다 [2].

Taxonomy of SSL

SSL은 분야가 큰 만큼 다양한 종류의 알고리즘이 제안되었습니다. 이러한 알고리즘들은 알고리즘을 기반에 둔 가정, 레이블되지 않은 데이터의 사용 방식, SL과의 연관 관계 등에서 차이를 가집니다. [2]에서는 SSL 방법론들을 inductive / transductive로 나누고, inductive method를 다시 wrapper method, unsupervised preprocessing, intrinsically semi-supervised의 세 종류로 나누었습니다. 그림 4는 [2]에서 나눈 SSL 방법론의 분류 체계를 보여주고 있는데요. 본 포스팅에서는 SSL의 분류 전체를 다루기에는 그 양이 많기 때문에 현재 딥러닝 쪽에서 많이 사용되는 SSL 접근법인 self-training, minimum-margin, perturbation-based에 대한 간략한 설명과 함께 읽어볼 만한 논문을 소개하려고 합니다.

ㅣ 그림 4. SSL의 분류 체계 [2] ㅣ

1. Wrapper methods: self training

먼저 wrapper method가장 기본적인 SSL 방법입니다. 해당 procedure는 크게 ‘pseudo-labeling’과 ‘학습’ 두 단계로 나뉩니다. 먼저, Pseudo-labeling 단계에서는 모델을 이용해 레이블되지 않은 데이터의 레이블을 예측해서 임시 레이블을 부여합니다. 그리고 학습 단계에서는 레이블된 데이터와 pseudo-label이 붙은 데이터를 합쳐서 일반적인 SL 방식으로 학습을 합니다. 이 방식의 장점은 거의 어떤 SL 모델에도 적용 가능하다는 점입니다. 참고로, [2]에서는 wrapper method를 (1)얼마나 많은 분류기들을 사용하는지, (2)다른 종류의 분류기가 사용되었는지, (3)single-view인지 multi-view인지에 따라 나누었습니다.

wrapper method 중 하나인 Self-training은 그 중에서도 가장 단순한 pseudo-labeling 방법인데요. 하나의 SL 분류기를 사용하여 레이블된 데이터와 이전 반복 단계에서 pseudo-label 된 데이터를 이용해서 계속해서 분류기를 학습합니다. 학습 초기에는 레이블된 데이터만 이용하여 학습하다가 점진적으로 레이블되지 않은 데이터들을 pseudo-labeling 하여 학습에 사용합니다.

2. Intrinsically semi-supervised: maximum-margin, pertubation-based

Intrinsically semi-supervised 방법은 직접적으로 레이블된 데이터와 레이블되지 않은 데이터를 사용하여 목적 함수를 구성하는 접근법입니다. Self-training 방법처럼 중간 단계를 거치거나 base learner를 필요로 하지 않으며, 이미 존재하는 지도학습 방법에 레이블되지 않은 샘플이 포함되도록 목표 함수를 확장합니다. 현재 딥러닝에서 자주 사용되는 방법이며, perturbation-based 방법이 특히 많이 사용되고 있습니다.

여기에는 maximum-margin 방법이 속하는데요. 이 방법 중 하나인 Density regularization결정 경계가 확률 밀도가 낮은 곳을 지나가게 하도록 만드는 방식입니다. 이를 위한 방법으로는 예측된 posterior class probability가 overlap 된 정도를 목적 함수에 넣는 방법이 있습니다. [5]에서는 이를 위해 entropy minimization 방법을 제안하였고, 여기서는 conditional entropy를 overlap을 측정하기 위한 지표로 사용하였습니다. 이 방법은 현재도 딥러닝에 포함되어[10] SSL의 성능을 높이는 데에 사용되고 있습니다.

이 밖에도 Perturbation-based 방법이 있는데요. 이 방법은 smoothness 가정에 기반하는데, smoothness 가정은 입력값에 perturbation이 있더라도 모델이 예측한 값이 안정적이어야 한다는 것을 포함합니다. 이는 입력값에 작은 노이즈를 더했을 때, 예측값이 원래 입력값과 비슷해야 한다는 것을 의미합니다. [4]에서는 이 방법을 consistency regularization이라고 부르고 있습니다. 이러한 명칭을 사용한 것은 perturbation-based 방식의 상당수가 원래 입력과 노이즈를 더했을 때의 결과물이 일관되게 예측하도록 하는 정규화 항(regularization term)을 사용하기 때문으로 보입니다. 따라서 여러 방법론들을 보면 어느 정도 비슷함을 느끼실 수 있을 것이라 생각됩니다.

pseudo-ensemble[6]은 모델에 perturbation을 도입한 방법입니다. 이 방법은 기존에 dropout이 여러 모델의 ensemble과 유사하다는 아이디어로부터 dropout을 통해 모델에 perturbation을 주고(child models), 이 모델들의 예측값과 모델 중간의 활성화 값(activations)을 이용하여 목적 함수를 구성합니다.

목적 함수의 좌측은 perturbation을 넣은 모델의 예측값을 이용한 loss입니다. 노이즈 $ \xi $를 추출하여 dropout을 적용한 모델의 output과 label 사이의 loss를 구합니다. 이는 다음과 지표가없는 작업의 이점 같이 표현됩니다.

우측은 perturbation을 넣은 모델의 활성화 값들이 원래 모델의 활성화 값과 같아지도록 하는 loss입니다. 좌측과 마찬가지로 노이즈를 추출하여 모델에 dropout을 적용하는데, 좌측과의 차이점은 정상적인 입력값의 activation과 dropout이 적용된 activation 값이 같아지도록 한다는 점입니다. 이는 다음과 같습니다.

Π-model[7] 역시 전형적인 perturbation 방식 중 하나입니다. Π-model은 하나의 입력값으로부터 data augmentation, network dropout을 이용하여 두 개의 출력값을 만들고, (1)두 값의 차이를 이용한 loss(mse)와 (2)하나의 출력값과 레이블을 이용한 loss(cross-entropy)를 이용하여 학습합니다. 모델의 전체적인 구조는 그림 5와 같습니다.

ㅣ 그림 5. Π-model의 구조 ㅣ

목적 함수는 다음과 같습니다.

좌측이 예측값을 이용한 loss이며, 우측이 consistency loss(mse)입니다. 좌측은 미니배치 안에서 레이블이 있는 데이터만을 대상으로 하여 계산되며($ i \in ( B \cap L ) $), 우측은 미니배치 전체를 대상으로 계산됩니다($ i \in B $). 위의 pseudo-ensemble 방식과 비교하였을 때 구성이 유사함을 알 수 있습니다.

Virtual adversarial training(VAT)[8]은 perturbation-based 방법 중에서도 어떻게 perturbation을 만드는지에 집중한 방법입니다. 해당 방법은 adversarial example로부터 아이디어를 얻었는데, 간단하게 말하자면 모델이 틀릴 만한 perturbation을 만들자는 것입니다. 기존 perturbation-based 방법들은 perturbation을 만들 때 random하게 만드는 경우가 많았는데 (random noise, model dropout, …) VAT에서는 먼저 noise를 샘플링한 후에, 해당 noise를 더한 값과 기존 값의 차이(KL-div)의 gradient를 이용하여 noise를 생성합니다.


학습은 정상적인 입력값에 대한 예측과 $ r_ $를 이용해 perturbation을 준 입력값 사이의 차이를 목표 함수로 사용하여 진행합니다. 이는 다음과 같습니다.

Mixup[9]은 비교적 최근에 나온 방법입니다. 기존 perturbation 방법들은 정상 입력과 perturbation을 넣은 입력값이 동일하도록 했는데, mixup의 아이디어는 perturbation이 결정 경계에서 멀어지는 정도에 비례하여 모델의 출력도 바뀌어야 한다는 것입니다. 이를 위해 mixup에서는 안정적인 모델이라면 특징 벡터의 선형 결합에 대한 예측값이 레이블의 선형 결합이 되어야 한다고 가정합니다. 이를 적용하기 위한 방법 자체는 간단한데, 학습할 때 레이블된 데이터를 둘 랜덤하게 뽑아서 둘을 섞어서 새로운 데이터를 만들고 이를 SL 방식으로 학습에 활용합니다. 학습을 위한 데이터는 데이터 포인트 $ ( x_i, y_i ) $와 $ ( x_j, y_j ) $가 있을 때,

와 같이 만들어집니다. 레이블이 없는 데이터에 대한 mixup은 모델을 이용하여 레이블을 예측한 후에 이를 이용하여 mixup을 진행합니다.

3. Paper 소개: Mixmatch

마지막으로 앞서 언급한 다양한 SSL 방법론을 적용한 논문을 소개하려고 합니다. Mixmatch[10]data augmentation + self-training + sharpening(= entropy minimization) + mixup으로 구성된 SSL 방법론입니다. 해당 방법론은 주어진 labeled data batch와 unlabeled data batch로부터 새로운 labeled data batch와 pseudo-labeled data batch를 만들어내며, 이 과정은 다음과 같은 단계로 진행됩니다.

Mixmatch 알고리즘은 우선 주어진 레이블 된 데이터로부터 data augmentation을 통해 새 데이터를 생성하고 (line 3), 그 후에 레이블이 없는 데이터에 대한 data augmentation을 진행하는데, 이때 label이 없는 데이터의 pseudo-label을 K개의 augment 된 데이터에 대한 예측의 평균값에 sharpening을 하여 사용합니다 (line 4-8). 그 후에는 augment 된 데이터들을 섞은 후 레이블 된 데이터들끼리 mixup (line 13), pseudo-label 된 데이터들끼리 mixup (line 14)을 하여 학습에 사용할 데이터를 생성합니다.

여기에서 만들어지는 새로운 데이터들은 실제 레이블과 pseudo-label을 가지고 있으며, 학습은 Intrinsically semi-supervised 방식에서 하는 것처럼 labeled data를 이용한 loss와 pseudo-labeled data를 이용한 consistency loss를 사용하게 됩니다.

loss를 보았을 때, 위에서 언급한 다른 방식들과의 유사성을 찾을 수 있습니다. Mixmatch의 적용 과정을 보았을 때, 기존 방법들과의 차이점은 pseudo-labeling을 하는 방법이 될 것 같습니다. Mixmatch에서는 pseudo-labeling 시에 지표가없는 작업의 이점 여러 데이터에 대한 예측을 한 후에 이를 평균하여 여러 augment 된 데이터들에 대한 예측값으로 사용하는데, 이러한 방법이 perturbation에 대해 안정적인 레이블을 제공할 수 있었지 않았나 생각됩니다.

l 그림 6. CIFAR-10에서 레이블 된 데이터 포인트 수에 따른 Test Error l

l 그림 7. SVHN에서 레이블 된 데이터 포인트 수에 따른 Test Error l

그림 6와 7을 보면 여러가지 SSL 방법들을 함께 쓴 만큼 다른 기법들에 비해 좋은 성능을 보여주고 있습니다.

l 표 1. Ablation study 결과. CIFAR-10에서 250 / 4000 레이블로 진행한 error rate l

또한, 해당 논문에서 흥미로운 내용이 ablation study인데, 표 1을 보면 mixmatch가 여러가지 SSL 기법들을 섞은 만큼, 각 기법들을 제외하면서 결과가 달라지는 것을 기록하였습니다. 이를 보면 mixup, sharpening, distribution averaging 순으로 효과가 좋을 것으로 예상할 수 있습니다. SSL을 적용하고자 하시는 분들은 참고하시면 도움이 되실 것이라 생각됩니다.

SSL 적용 시 주의점

지금까지 SSL의 장점과 방법론에 대해 이야기했지만, 사실 SSL이 SL 모델의 성능을 반드시 개선해주는 것은 아닙니다. 기존의 연구들로부터 데이터의 가정에 맞지 않은 모델을 사용할 경우, 레이블이 없는 데이터를 추가하여도 성능이 개선되지 않거나 오히려 성능이 떨어지는 경우도 존재합니다 [4]. 그림 8은 SSL의 전형적인 예시 데이터인 ‘two moons’ 데이터셋을 대상으로 앞에서 이야기한 SSL 방법들을 적용했을 때의 결정 경계를 그린 그림입니다. 데이터 분포를 지표가없는 작업의 이점 보면 모델의 결정 경계가 곡선으로 만들어져야 바람직한데, Pseudo-label 방법과 Entropy Minimization 방법은 레이블 되지 않은 데이터들을 가로지르는 형태로 결정 경계가 생기는 것을 알 수 있습니다. [4]에서는 Entropy Minimization 방법이 이상한 결정 경계를 만든 것에 대해, 정상적이지 않은 결정 경계 중에서도 confident한 경계가 있을 수 있으며, 뉴럴 네트워크가 output logit의 크기를 늘리는 방식으로 이런 경계에 쉽게 overfit 할 수 있기 때문에 그렇게 된 것 같다는 분석을 하였습니다. 이와 같이 잘 알려진 SSL 방법론들이더라도 항상 기본 모델의 성능을 향상시켜줄 수 있는 것은 아닙니다.

l 그림 8. ‘two moons’ 데이터셋에서 정상 동작하는 SSL 방법론들(Π-model, VAT)과 정상 동작하지 않는 SSL 방법론들(Entropy Minimization, Pseudo-Label) l

어떤 방법론들이 내 모델에 잘 어울리는지를 사전에 알기는 쉽지 않은데요. [2]에서는 어떤 경우에 모델의 성능 향상을 얻을 수 있는지에 대한 힌트로, 해결하고자 지표가없는 작업의 이점 지표가없는 작업의 이점 하는 문제의 도메인과 모델의 특성을 고려해 보는 것을 이야기하고 있습니다. 예를 들어 그래프 기반 방법은 각 데이터 포인트 사이의 유사도가 중요하지만, 이미지 같은 경우는 데이터 간의 유클리드 거리가 유사도의 좋은 지표가 되기 어렵습니다. 오히려 이미지에는 입력에 작은 perturbation이 포함되도 안정적인 예측을 하는 특성이 필요한데, 이는 smoothness 가정과 관계되어 있습니다. 또한, 각 지도학습 방법을 확장한 SSL은 기존 모델이 잘 동작하는 상황과 같은 가정을 하기 때문에, 기존 모델이 잘 동작했을 경우 해당 모델의 SSL 확장은 자연스러운 선택이 될 수 있습니다. 이와 같이 실제 SSL 방법론의 적용에는 모델, 데이터, 방법론들의 특징을 잘 고려하여 적절한 방법을 찾아야 좋은 효과를 얻을 수 있을 것입니다.

Conclusion

지금까지 SSL의 기본적인 지식과 방법론들, 딥러닝에서의 활용 등에 대해 알아보았습니다. 현재 딥러닝을 적용하고자 하는 여러 회사들에서 가장 많은 비용을 지불하고 있는 분야가 바로 서비스에 맞는 데이터셋 확보 인 만큼, 데이터셋 확보에 상당한 비용이 소요되고 있는데요. 상대적으로 적은 비용과 노력으로 수집 가능한 unlabeled dataset을 활용하여 모델의 성능을 높일 수 있다는 점은 바로 SSL의 가장 큰 매력이라고 생각합니다.

또한, 최근 딥러닝 연구에서 학습 모델과 기법의 공개가 활발하게 이루어지고 있는 추세이기 때문에 그 외적인 부분에서 차이를 둔다면 큰 경쟁력이 될 것입니다. 사실상 적은 레이블 데이터를 가지고 모델을 훈련시킬 수 있다는 것은 많은 ML 연구자들이 꿈꾸는 것 중 하나라고 생각하는데요. 연구자 입장에서 본다면, SSL 연구가 오래된 만큼 그 안에서 사용된 기존 방법론들을 딥러닝에 새롭게 적용시켜보는 것도 좋은 연구 주제가 될 것 같습니다. 다만, 앞선 연구들에서 언급하였듯이 SSL이 무조건적인 성능의 향상을 보장하는 것은 아니며, 널리 사용하는 방법들도 이상 동작을 보일 수 있습니다. 본인의 모델에 잘 맞는 SSL 기법을 적용하기 위해 다양한 고민과 선택을 하는 과정 속에서 이 포스팅이 좋은 길잡이가 되기를 희망합니다.

빅데이터로 구성원 안전과 건강을 책임지다_SK하이닉스의 스마트한 안전·보건 관리 ‘JEM시스템’

기업경영에서 일과 구성원의 건강은 떼어놓을 수 없는 관계다. 특히 다양한 자재와 물질을 취급하는 반도체 회사에서는 구성원의 안전과 건강은 그 자체로 기업의 핵심 역량이자 자산이다. 이에 SK하이닉스는 모든 구성원이 행복하고 건강한 직장생활을 영위할 수 있도록 다양한 노력을 펼치고 있다. 대표적인 것이 바로 2016년 구축된 ‘JEM(Job Exposure Matrix) 시스템’.

JEM 시스템은 국내 반도체 업계에서 최초로 도입된 빅데이터(Big Data) 기반 작업환경 노출정보 관리 시스템이다. 사업장 내 다양한 안전·보건 분야 정보를 데이터베이스화해, 구성원의 일상적인 건강관리는 물론 직업병 예방까지 책임지고 있다. 뉴스룸은 JEM 시스템을 구축하고 운영∙관리하고 있는 SHE 안전보건팀 문형일 TL, 선행연구팀 이경호 TL을 만나 SK하이닉스가 JEM을 구축한 배경과 개발과정, 그리고 이를 통해 얻을 수 있는 기대효과에 대해 자세히 들어봤다.

안전·보건 ‘모범 기업’ SK하이닉스, 건강한 일터를 고민하다

SK하이닉스는 지난 2014년 외부전문가 7인과 노사 대표 4인으로 구성된 ‘산업보건 검증위원회(이하 검증위)’ 권고에 따라 작업환경 실태조사 및 산업보건 진단을 실시했다. 1년간 지속된 정밀 조사를 통해 전 사업장에서 사용되고 있는 화학물질의 노출량과 영향을 파악하고, 제3의 독립기구인 ‘산업보건 지원보상위원회’를 꾸려 직업병 의심사례가 있는 구성원 및 협력사 지원을 위한 체계적인 보상지원책을 마련했다.

1 단계 ‘ 검증 ’ 활동과 2 단계 ‘ 지원보상과 개선 ’ 활동이 수동적인 사후 대응이었다면 , 검증위는 여기서 더 나아가 ‘ 직업병 발생률 제로 (Zero)’ 를 위한 과제 추진을 제안했다 . 이처럼 ‘ 예방 ’ 에 초점을 맞춰 직업병 발생 가능성 자체를 낮추는 3 단계 활동을 위해 SK 하이닉스는 ‘ 산업보건 선진화 지속위원회 ’ 를 별도로 구성해 선제적인 보건 인프라 구축에 나서고 있다 .

3단계의 여러 과제 중 ‘노출정보 기반 안전·보건 통합관리 체계(이하 JEM 시스템)’은 지속적으로 추진 중인 프로젝트다. JEM 시스템은 캠퍼스, 건물, Fab 등 작업환경에서 발생하는 다양한 노출정보를 종합한 표(Job Exposure Matrix)로 구성원의 건강과 관련된 요인을 선제적으로 대응 및 관리하는 전산화 프로그램. 반도체 사업장 내에서 사용되는 화학물질의 현황 파악은 물론, 직무별 노출이력 관리를 통해 안전하고 쾌적한 근무 환경을 만드는 것이 목표다.

문형일 TL은 “전산화된 데이터 허브를 통해 누락되는 정보 없이 효율적이고 선제적으로 안전·보건 관리를 하는 것이 JEM 시스템의 핵심”이라고 설명했다.

JEM 시스템, 빅데이터로 작업환경 모니터링부터 직업병 예방까지 한 번에

기존의 안전·보건 관리 방식은 각 부서 담당자들이 엑셀(Excel) 파일에 개별 구성원의 정보를 수기(手記)로 입력해 효율적인 데이터 활용이 어려웠다. 부서마다 사용하는 용어와 기준이 다르고 휴먼에러로 오기입된 정보가 생겨도 바로 확인할 수 없었기 때문. 따라서 JEM 시스템 개발 시, 각종 용어와 기준을 표준화하는 작업부터 시작했다. 현업 담당자 인터뷰를 통해 혼용되는 단위공정 용어를 통일하고, 물리·화학적 인자에 노출될 수 있는 위험도를 고려하여 직무 유형을 18개 그룹으로 분류했다.

여기에 구성원의 소속 부서 및 직무 등의 인사정보와 단위공정별 출입 빈도를 세부지표로 추가해 일련의 정보들을 시스템상에서 한 번에 조회할 수 있도록 만들었다. 또한, 엄격하고 까다로운 관리가 필요한 화학물질 정보들을 체계적으로 관리할 수 있도록 ‘공정별 화학물질’ 페이지를 만들어 사용이력을 조회할 수 있도록 구성했다. 이를 통해 JEM 시스템에 접속하는 관리자들은 요약된 구성원 종합 직무노출 정보는 물론, 이천과 청주 사업장 내 각 생산라인과 단위공정별 화학물질 상세 리스트를 조회하고 업데이트할 수 있다. SK하이닉스만의 안전·보건 전용 빅데이터 클라우드가 만들어진 셈이다.

인포v2-01

현업에서 수집되는 JEM 데이터는 구성원의 동의를 거쳐 정기적으로 전산 시스템에 업데이트된다. 이처럼 시스템을 통해 정기적으로 변경·관리되는 안전·보건 데이터들은 사업장 내 작업환경 측정, 특수검진 대상자 선정, 화학물질 위험성 평가 등의 예방 활동을 위한 기초자료로 활용된다. 또한, 당사 구성원들의 노출관점 직무 유형, 근무이력, 공정별 화학물질 데이터 등을 토대로 구성원의 건강 상태를 체계적으로 관리할 수 있게 됐다.

무엇보다 JEM 시스템이 보유한 큰 장점은 데이터가 쌓일수록 구성원의 직업병 발생 확률을 낮출 수 있다는 데 있다. 직업병 의심사례가 발생하면 JEM 데이터로 기록된 근무 이력을 추적해 신속히 대응하는 것은 물론, 축적된 데이터 통계를 기반으로 작업환경도 미리 개선할 수 있다.

기업 안전·보건 관리의 ‘표준’ 만들었다는 자부심 느껴. 완전한 자동화 시스템이 목표

지금은 JEM 시스템이 안정화되었지만, 선례가 없는 대규모의 프로젝트인 만큼 처음에는 다양한 시행착오가 있었다. 이경호 TL은 시스템 구축 과정에서 ‘각종 용어와 규격에 대한 표준화 과정’을 난관으로 꼽았다. 그는 “동일한 단위공정에서도 부서 혹은 담당자마다 조금씩 다른 표현을 사용하고 있었기에 이를 하나로 통일하는 작업에 오랜 시간이 걸렸다”고 말했다.

수백 개의 직무 유형을 물리·화학적 인자 노출 위험도에 따라 18개 그룹으로 분류하는 과정 또한 쉽지 않았다. 시스템 도입 후에는 예상치 못한 변수들로 차질이 생기기도 했다. 수용할 수 있는 데이터 양보다 더 많은 JEM 데이터로 인해 시스템에 과부하가 발생한 것. 인력과 시간이 부족하여 어려움을 겪었지만, IT 개발 부서와의 협업을 통해 무사히 해결할 수 있었다.

또한, 처음으로 도입된 시스템이다 보니 구성원들이 정확한 사용법을 숙지하기까지 시간이 걸렸다. 이를 단축하기 위해 설명회를 개최하고 문의사항들을 초석으로 매뉴얼을 제작하여 배포했다. 문형일 TL은 “시스템 개발단계부터 현장의 목소리를 최대한 담으려고 노력했으며, 사용자 관점에서 기능 보완과 개선을 위해 계속 노력하고 있다”고 밝혔다.

여러 우여곡절이 있었지만, 국내 기업 최초로 안전·보건 관리 체계의 표준을 만든 만큼, 나름의 보람과 자부심이 있다. 특히 이경호 TL은 우연히 참석한 외부 학회에서 SK하이닉스의 JEM 시스템이 기업의 선제적인 안전·보건 관리 우수사례로 뽑혀 학자들의 관심을 받는 모습을 보고 뿌듯함을 느꼈다고.

JEM 시스템을 찾고 활용하는 부서도 점차 늘고 있고, 구성원의 반응도 긍정적이다. 문형일 TL은 “시스템 운영이 안정화되고 고도화되며 데이터의 신뢰성 또한 높아진 것 같다”며 “적극적으로 시스템 개선을 위한 제안을 하고, 격려와 응원의 말을 건네는 구성원들을 만날 때 힘이 난다”고 말했다.

그가 최근 몰두하고 있는 분야는 사용자 경험(UX, User Experience) 개선. 시스템을 사용하는 구성원 관점에서 사용환경(UI, User Interface)을 개선해, 더 간편하게 데이터를 조회하거나 입력할 수 있도록 할 계획이다. 이와 함께 HR 시스템과 화학물질 관리 시스템 등 다양한 기존 관리 시스템과의 연계하여 JEM 데이터의 정합성을 높이는 작업도 진행 중이다. 궁극적인 목표는 실시간으로 JEM 정보를 업데이트할 수 있는 ‘자동화 시스템’으로 발전시키는 것. 이를 위해 연 2회로 정해져 있는 부서별 데이터 변경관리 주기도 점점 더 좁혀갈 예정이다.

07

마지막으로 두 사람은 구성원들에게 조금은 불편하더라도 건강하고 안전한 근무환경을 위해 JEM 시스템에 관심을 가져주기를 당부했다.

“지금의 시점에서만 생각한다면 JEM 시스템은 단순히 나의 위치를 기록하는 것이라고 생각할 수 있습니다. 하지만 그렇게 모인 기록들은 그 자체로 나만의 근무 이력서가 됩니다. 더 많은 JEM 데이터가 쌓인다면 이를 초석으로 더 좋은 근무 환경을 만들 수 있습니다. 아직 시스템을 활용하는 게 낯설고 귀찮을 수 있지만, 누구나 안전하고 건강하게 근무할 수 있는 회사를 만들기 위해 앞으로도 적극적인 협조와 관심 부탁드립니다.”

대부분의 나라들이 자국의 안전수준을 평가하기 위해서 매년 작업자의 사망사고 현황과 재해현황을 재해율이나 강도율, 도수율 등으로 지표값을 삼아 통계를 내고, 이를 개선하기 위해 문제를 분석하고 대안을 마련하고 있다. 기업 역시 안전조직이 구성이 되어 있다면 비슷한 척도를 가지고 안전수준을 평가하고 있다.

그렇다면 지금의 안전 지표만 있다면 그 기업의 안전수준을 제대로 평가할 수 있을까? 사고를 예방을 위한 안전 척도는 지금의 것만으로 충분할까?

EHS Today에 실린"주요 안전 지표는 무엇을 말하고 있습니까?" 라는 기사를 소개하며, 각 기업의 안전수준을 향상시키기 위해 자신들의 상황에 맞는 '안전 지표'는 무엇으로 삼을지 함께 생각해 보는 시간을 갖고자 한다.

기사에서는 미국 산업안전보건청(OSHA) 보고서가 기업이 총 기록 가능 사고율(TRIR), 손실 시간 사고율(LTIR) 및 근로자의 보상 비용과 같은 측정 기준을 추적하도록 요구하고 있지만, 이 지표들이 안전 프로그램의 효과를 묘사하는 반면, 사고 예방에 있어서는 그 효과가 절반에 불과하다고 언급하고 있다.

하지만 선도적인 안전 지표를 추적하는 것은 작업장의 안전 위험에 대한 전향적인 측정을 제공하는데, 이는 규제 준수에 필수적이지는 않지만 선도적인 안전 지표를 개발하는 것이 사고가 발생하기 전에 환경, 건강 및 안전(EHS) 리더가 개입하는 데 도움이 되는 모범 사례라고 설명하고 있다.

또한 기업들이 추적해야 할 주요 안전 지표는 무엇이며, 안전 위험에 대한 더 큰 통찰력을 얻기 위해 이를 어떻게 사용할 수 있는지를 묻고, 실제 사례, 통찰력 및 조직의 선도적 지표를 추적하는 방법을 포함한 선도적 안전 지표의 기본 사항에 대해 언급했다.

선행 안전 지표는 안전 사고에 앞서 사건 및 활동을 측정하는 반면, 지연 지표는 이미 발생한 결과를 설명한다. 선행 지표는 예측 가능하므로 문제에 대한 조기 경고를 제공하고 잠재적인 시정 조치를 식별하는 데 도움이 되며, 예로는 ▲완료된 훈련 시간 수, ▲식별된 위험 요소 수 및 ▲교정 조치를 완료하는 평균 시간이 있다고 설명했다.

선도적인 안전 지표 및 통찰력의 예

선행지표는 각 회사에 따라 다르며, 지연지표의 변화와 상관관계가 있는 행동과 사건을 기반으로 개발되어야 한다고 말했다.

특히 EHS 리더가 추적할 메트릭을 결정하기 시작할 때 살펴볼 수 있는 8가지 주요 장소로 ▲지연된 항목 수 및 완료 시간과 같은 시정 조치 메트릭, ▲정시 완료 또는 교육 시간 수와 같은 직원 교육 지표, ▲안전 회의와 같은 활동에 대한 근로자 참여, ▲기록된 안전하지 않은 관찰 수와 같은 행동 기반 안전 메트릭, ▲특정 기간 동안 확인된 새로운 위험의 수, ▲특정 기간 동안 추가된 새로운 통제의 수 또는 통제와 함께 확인된 위험의 백분율, ▲규정 변경 추적 및 컴플라이언스 캘린더 유지와 같은 컴플라이언스 활동, ▲안전 프로그램 및 기술에 대한 투자등을 언급했다.

이러한 영역의 메트릭이 지연되는 지표를 추적하면 여러 통찰력을 얻을 수 있는데, ▲밀린 시정조치가 많이 밀려 있을 때 안전 문제가 재발할 가능성이 높고, ▲교육 시간이 더 많은 직원일수록 사고 발생 횟수가 적고, ▲특정 작업 셀에서 확인된 안전하지 않은 관찰의 수가 증가하면 부상도 증가하고, ▲직원 부상이 급증하기 전에 미수에 가까운 사고가 급증하며, ▲추가된 새로운 컨트롤의 수는 적은 사고 및/또는 외부 감사 결과와 관련이 있다는 것 등을 알수 있다고 설명했다.

선행지표 추적이 안전관리에 중요한 이유

선도적인 안전 지표를 추적하는 것은 작업장 부상을 방지하기 위한 사전 예방 전략으로, 특히 선행 지표를 모니터링하면 ▲ 안전에 대한 리더십의 헌신 입증, ▲안전 프로그램 성능 향상, ▲효율성 및 생산성 향상, ▲작업장 사고 및 생산 비효율성과 관련된 비용 절감, ▲안전문화 육성 등과 같은 이점이 있다고 말했다.

이처럼 선행지표 추적이 안전관리에 중요한데 어떻게 시작하면 될까? 먼저 각 조직은 내부 EHS 데이터에서 자체 선행 지표를 개발해야 한다고 말한다. 선행 지표는 지연 메트릭과 상관되므로, 어떤 메트릭이 예측 능력을 가지는지 확인하기 위해 자신의 데이터를 분석하는 것이 중요하다.

OSHA는 최우선 위험 요소부터 시작하여 부상 기록 및 위험 평가를 검토할 것을 권장하는데, 메트릭은 SMART 원칙을 따라야 하며, 기업이 선행 지표를 개발할 수 있는 세 가지 방법을 소개하고 있다.

먼저 교육 출석률이나 근접 누락 데이터와 같은 주요 지표처럼 이미 수집한 데이터 사용하는 지표가없는 작업의 이점 것이 쉬운 접근법이라고 말한다. 또한 특정 위험을 제어하는 경우엔 일일 하우스키핑 점검이 미끄러짐, 트립 및 추락 사고의 감소와 관련이 있는지 여부를 측정하는 것도 또다른 방법이라고 말한다. 다음으로 EHS 프로그램의 요소 개선은 근로자 참여, 위험 식별 및 위험 방지와 같은 안전 프로그램의 요소를 강화하는데 도움이 된다고 설명했다.

기사에서 언급한 것처럼 각 기업이 사고예방을 위해 무엇을 안전 지표로 삼고 관리할 것인지는 각 기업의 상황에 비추어 관리한다는 것이 무엇보다 중요하다.

중대재해처벌법 시행 등으로 각 사업장의 안전보건 경영시스템 구축이 강조되고 있는 만큼, 형식에만 얽매인 안전 지표가 아니라 실제적으로 각 사업장의 안전사고를 예방하기 위한 자신의 사업장 안전 지표는 무엇으로 삼을 것인지 고민해 볼 때이다.

※ 본 기사는 EHS Today의 " What Are Your Leading Safety Indicators Telling You? " , May 5, 2022 기사를 참고하여 작성되었음.

ITIL®에서의 변경 관리에 대한 종합적인 안내서

이 안내서는 ITIL에서의 변경관리의 기본을 이해하는 데 도움을 주고 잘 정의된 변경 프로세스를 사용하여 효과적인 변경을 실행하는 데 필요한 도구를 제공합니다.

ITIL 변경 관리 소개

ITIL 변경 관리 소개

비즈니스의 지평과 고객의 기대사항은 끊임없이 변화하며, 디지털 변혁은 산업계 전체에서 기업의 성공에 대한 핵심 기여요인이 되어 왔습니다. 디지털 변혁은 이용 가능한 기술을 활용하여 비즈니스의 문제를 해결하고 기회를 포착하는 것입니다. 좀 더 자세히 살펴보면, 디지털 변혁은 기본적으로 더 나은 IT 관리로 문제가 있는 부분을 제거하고 IT 인프라가 비즈니스 문제에 직면할 수 있도록 준비시키는 것입니다. 그리고 여기에는 귀하의 조직에 도움을 주는 IT 변화를 실행하여 기존의 비즈니스 및 IT 프로세스에 신기술을 적용하는 것이 포함됩니다.

이러한 변화는 아주 간단하게는 더 나은 운영 효율성을 위해 협업 앱을 클라우드로 이동시키는 것 되거나, 또는 더 나은 소비자 경험을 위해 모바일 우선의 접근방식을 취하는 것이 될 수 있습니다. 표면적으로 보이는 단순성에도 불구하고, 이러한 변경은 그 자체의 물류적인 어려움을 수반합니다. 변경을 적합하게 실행하지 못하면 조직에서 한 걸음 앞으로 나아갔다가 두 걸음 뒷걸음질치는 결과를 초래할 수 있습니다.

2018년 12월에 있었던 유명 은행의 모바일 앱 업그레이드 실패 사례는 어떻게 하면 변경 실행을 할 수 없는가에 대한 아주 적절한 예입니다. 새롭고 개선된 모바일 앱을 도입하려는 이 은행의 계획은 멋진 아이디어였고 매우 필요한 것이었습니다. 그러나 새로운 앱이 실행되는 순간, 문제가 발생했습니다. 이 은행은 이전의 앱을 폐지한 후에 새로운 앱을 도입했습니다. 새로운 앱의 작동이 멈추자, 수 천명의 고객들은 앱을 통해 은행계좌에 액세스할 수 없게 되었습니다. 설상가상으로, 새로운 앱에 대한 수정을 위한 커뮤니케이션도 잘 이루어지지 않아, 고객들은 좌절하게 되었습니다. 이 모바일 앱은 4일 동안 다운되었고 마침내 해당 은행은 이전 앱을 다시 살리기로 결정했습니다.

이 은행은 제안된 변경의 다양한 단계에서 실패를 거듭했습니다. 배치할 준비가 되어 있지 않은 상태에서 새로운 앱을 릴리스했고, 최종 사용자에게 업데이트와 관련된 다운타임을 전달하지 못했을 뿐 아니라 투명하지도 못했고, 실패한 경우에 대체 계획을 제시하지 못했습니다. 당연하게도 이 방법은 원하는 변경 실행 방법이 아닙니다.

바로 여기서 변경관리가 필요하게 됩니다. 변경관리는 조직 내 다양한 변경을 관리하는 데 도움을 주고 조직의 나머지 부분에 영향을 주지 않고 변경을 효율적으로 실행하기 위한 프로세스를 제공합니다. 변경관리는 위의 은행이 직면한 것과 유사한 혼란의 기회를 줄여줍니다.

이 안내서에서는 변경관리의 정의, 이유 및 방법을 다룰 것입니다. 효과적인 변경으로 조직에서 업계의 추세를 따르는 방법을 배우게 됩니다.

변경관리란

변경관리란?

ITIL은 변경관리를 시작부터 종결까지 변경의 전체 수명 주기를 통틀어 위험을 최소화하겠다는 목적과 함께 변경을 추적하고 관리하는 프로세스로 설명합니다.

체계적인 변경관리 프로세스를 수립하면 조직에서 높은 성공률로 사건이 없는 변경을 실행하는 데 도움이 됩니다.

ITIL에 의하면, 변경은 "서비스에 직간접적인 효과를 줄 수 있는 어떠한 것의 추가, 수정 또는 제거” 입니다.

가장 간단하게 말해서, 조직의 운영에 영향을 줄 수 있는 조직의 IT 인프라에 대한 모든 변경은 IT 변경이라고 불립니다. 여기에는 프린터, 프로젝터, 서버 등의 교체가 포함됩니다.

사건, 문제와 변경은 어떤 차이가 있습니까?

사건 문제 변경
정의 ITIL에 의하면, 사건은 “계획되지 않은 서비스의 중단 또는 서비스 질의 감소”입니다. ITIL에 의하면, 문제는 “하나 이상의 사건에 지표가없는 작업의 이점 대한 원인 또는 잠재적인 원인"입니다. ITIL에 의하면, 변경은 "서비스에 직간접적인 효과를 줄 수 있는 어떠한 것의 추가, 수정 또는 제거” 입니다.
범위 가능한 신속하게 정상적인 서비스 운영을 복원 정상적인 서비스 운영에 대한 혼란의 근본 원인을 파악 근본 원인을 처리하는 변경을 실행하여 정상적인 서비스 운영에 대한 추가 혼란을 방지
속성 반응적 반응적 및 선제적 반응적 및 선제적
사례 사용자가 네트워크에 연결할 수 없습니다. 임시 해결책이 발급되어 해당 사건을 해결하고 사용자가 다시 네트워크를 이용할 수 있도록 합니다. 문제 티켓이 생성되어 근본 원인 분석(RCA)을 수행합니다. 네트워크 스위치가 고장나, 사건으로 이어집니다. 스위치를 교체해야 합니다. 변경 티켓이 생성되어 결함이 있는 스위치를 교체합니다.

왜 조직에 변경관리가 필요합니까

왜 조직에 변경관리가 필요합니까?

이제 변경관리가 무엇인지 알았으므로, 왜 조직에 변경관리가 필요한지, 변경관리의 목적부터 시작하여 알아보겠습니다.

ITIL 변경 관리의 목적

조직에게 변경을 제어하고 관리할 수 있는 권한을 제공:

변경관리를 통해 변경 프로세스를 더 잘 제어할 수 있으며 최소한의 위험으로 변경을 실행할 수 있습니다. 표준 프로세스를 따름으로써, 변경관리는 계획, 위험 평가, 실행 추적과 같은 각 변경의 모든 측면이 효과적으로 관리될 수 있도록 해줍니다. 서비스 데스크 도구를 활용하여 처음부터 끝까지 변경을 추적하면 기적과도 같은 일이 일어나며 조직이 잘 계획되고 실행된 변경으로 IT 인프라를 더 잘 관리할 수 있게 됩니다.

조직이 변경을 더 잘 실행할 수 있게 지원:

전체 변경 프로세스를 추적함으로써, 조직은 변경관리로 모든 변경 요청을 완전히 파악할 수 있게 됩니다. 또한 다수의 무단 변경을 파악하여 제어하는 것이 더 손쉬워집니다. 사용자들에게 서비스 데스크 도구를 통해서만 변경 요청(RFC)을 제출하도록 허용함으로써, 조직은 시작단계에서 바로 해당 변경에 대해 필요한 모든 정보를 수집하고 그 변경을 실행해야 하는지 여부를 결정할 수 있습니다. 견고한 승인 메커니즘을 갖춤으로써 변경을 실행하기 전 필요한 모든 허가를 받을 수 있게 합니다.

지속적인 개선 실행:

변경관리가 만일의 경우를 대비하기 위한 것만은 아닙니다. 변경 관리는 조직이 지속적으로 자체 인프라와 프로세스를 개선할 뿐만 아니라, 현재의 서비스 운영에 영향을 주지 않고도 필요한 변경을 매끄럽게 개시할 수 있게 함으로써 업계의 추세를 따라갈 수 있게 도와주는 것이 목표입니다.

앱 사용자 활성유저/이탈유저 모니터링 대시보드

※ 이 글은 국내 최초 BI 커뮤니티 Vizable의 1기 멤버 양혜리 님이 콜라보레이터로서 게재해주신 글입니다. Vizable에 대한 자세한 이야기는 vizable.online에서 만나실 수 있습니다.

Active vs. Inactive Dashboard

안녕하세요! 비저블 1기 양혜리 입니다 : ) 오늘은 비저블 멤버로 활동하며 설계한 비즈니스 시나리오 대시보드를 소개해드리고자 합니다.

오늘 소개해드릴 ‘Active vs. Inactive Dashboard’는 게임 내 활성유저와 이탈유저를 분류하고 이들의 행동패턴을 비교분석하는 대시보드 입니다. Retention 개선을 위해 활성유저(Active) → 이탈유저(Inactive)로 가는 여정을 막고 이탈원인을 파악해 개선하는 목적을 가지고 있습니다.

이 대시보드의 가장 큰 장점은 바로 대시보드 사용자의 Self Service가 가능하다는 점인데요. 대시보드 사용자마다 적절한 이탈기준의 관점이 다를 수 있다는 점을 고려해 매개변수를 이용한 상단필터로 적절한 이탈 기준(연속 미접속 기간 n일)을 조정할 수 있습니다. 이를 통해 사용자가 직접 이탈기준을 지정하여 이탈유저를 분류하고, 이들의 게임 플레이 패턴을 비교해보며 인사이트를 얻으실 수 있습니다.

💡 Key question : 왜 이탈 유저 관리가 필요할까요?

신규 유저 Acquisition은 수많은 서비스에서 핵심 성과 지표로 모니터링 되고 있는 만큼, 서비스 성장성을 평가하기 위한 중요한 척도입니다. 그러나 단순히 신규 유입 유저수가 많다고 해서 해당 서비스의 성장성이 높다고 할 수 있을까요? 만약 신규 유입된 유저들 중 90% 상당이 첫 유입 후 재방문을 하지 않는다면 어떨까요?

이렇듯 단순 신규 유저 유치를 넘어, 지속적으로 방문하고 싶은 서비스의 가치를 만들어 내기 위해서는 Retention을 높이고 Drop-off를 최소화하는 것이 핵심입니다. 신규 고객 유치 전략과 함께 리텐션 마케팅 전략이 적절하게 병행될 때, 보다 지속적이고 안정적인 서비스의 원동력을 가질 수 있습니다. 이러한 이유로 실제 이탈 가능성이 높은 유저를 미리 분류하고 사전에 이탈을 막기 위한 Retention 전략을 수립한다면, 장기적 관점에서 서비스의 성장을 가속화하는데 도움을 줄 수 있을 것 입니다.

비즈니스 시나리오

Vizable game company는 하반기 핵심 목표 성과 지표로 Retention N% 증가를 설정하였습니다.

  • Retention 개선을 위해서는 활성 유저(Active) → 이탈유저(Inactive)로 가는 여정을 막고, 이탈 원인을 찾아내 개선하는 것이 필요해보입니다.
  • 그러나 현재 이탈 유저가 누군지, 몇 명인지 정의할 수 있는 지표가 없습니다. 따라서 이탈유저에 대해 객관적으로 진단할 수 없는 상황이며 어떠한 이유로 유저들이 이탈하는지 전혀 알지 못하는 상황입니다.

이러한 배경을 바탕으로 지표가없는 작업의 이점 사업부는 다음과 같은 분석을 요청했습니다.

” 활성유저와 이탈유저를 파악하고, 이탈의 원인이 어디서 비롯되는지 확인하고 싶어요.”

문제 정의

활성유저와 이탈유저의 구분을 위해서는 ‘이탈’의 기준을 설정해야합니다. 그렇다면 이탈을 정의하기 위한 적절한 기준은 무엇일까요?

단순히 코호트별 해당일자에 접속한 유저를 활성 유저, 미접속한 유저를 이탈 유저로 설정한다면 유저들의 분류도 매번 달라질 것입니다. 또한 장기적인 관점으로 보았을 때 이들의 행동을 모니터링 하기도 쉽지 않습니다. 이러한 한계를 보완하고자 이탈의 기준을 연속 미접속한 유저를기준으로 설정한다면, 실제 이탈 가능성이 높은 유저들을 효과적으로 분류할 수 있는데요. 마지막 접속이 한참 지난 유저는 재유입을 위한 캠페인 등 이벤트가 없는 한, 다시 돌아올 가능성이 매우 희박하기 때문입니다.

이러한 아이디어를 바탕으로 이탈 기준을 정의하기 위한 가설은 다음과 같습니다.

N일 연속으로 미접속한 유저는 이탈 유저일 것이다.”

위 가설에서 N값이 클수록 정확한 이탈의 정의가 가능해집니다. 그러나 활용 차원에서 볼 때, 너무 넓은 time frame을 적용할 경우 분석결과를 활용하기 어렵다는 단점이 있습니다. 즉, 이탈기준 N값이 무조건 크다고 좋은 것은 아닙니다.

예를 들어 한 달에 한 번 업데이트하는 게임의 경우, N값을 60일로 선정한다면 업데이트 주기가 약 30일임에도 불구하고 이탈 유저를 파악하기 위해서는 최소 60일을 기다려야합니다. 따라서 적절한 time frame을 설정하여, 최근 N일 내 연속 미접속한이력이 있는 유저의 비율을 확인하고 특정 N의 구간을 파악해 이를 적절한 이탈 기간으로 정의하고자 합니다.

💡 데이터 탐색에 앞서, 데이터 속 유저들이 모두 같은 일자(9/1)에 가입한 유저라는 가정을 세웠습니다.
데이터 속 유저는 2019.10.26에 가입한 유저일 수도, 2019.09.01 이전에 가입한 유저일 수도 있습니다. 이 경우, 2019.10.26에 가입해서 접속한 유저는 마지막 접속일로부터 0일이 지난 유저로 분류될 수 있으므로, 이러한 한계점을 보완하고자 데이터 속 모든 유저들이 같은 날짜에 가입했다는 가정을 설정했습니다.

  • 2019.09.01 – 2019.10.26 기간동안 로깅된 로그 데이터로, 총 804,558개의 row와 5개의 column으로 이루어져 있습니다.
  • 접속 이력이 있는 유니크 유저 수는 80,890명 입니다.
  • Community/Daily/Special로 나누어진 총 3가지 게임 미션이 제공됩니다

시트 구성

주어진 데이터 time frame이 약 2달로 한정적이라, 해당 기간을 모두 활용해 이탈 기준을 정의하겠습니다.

1. N일 동안 연속으로 미접속한 이력이 있는 비중 계산 (=누계)

[ N일별 연속 미접속 유저 비중 ] 을 행으로, 미접속 기간 [ da ys from last event ] 을 열로 두어 비중 누계차트를 만들겠습니다. 누계차트를 사용한 이유는 누적비율이 완만해지는 부분을 직관적으로 파악하여, 이탈 기준 N일을 손쉽게 선정할 수 있기 때문입니다.

유저별 마지막 접속 일자

마지막 접속일로부터 N일 (미접속 기간)

하지만 사람마다 ‘이탈 기준 N일을 언제로 하느냐’의 관점이 다를 수 있습니다. 따라서 대시보드 이용자가 직접 적절한 N일을 설정할 수 있도록, 미접속 기간 N일에 매개변수 [이탈기준 day ] 를 생성하였습니다.

매개변수를 바탕으로 분류된 Active/Inactive를 하이라이트를 위해 [ Active type ] 이라는 필드를 생성합니다. 이탈기준 N일보다 작으면 활성(active)유저, N일 이상이면 이탈(inactive)유저가 되도록 설정하였습니다.

2. 유형별(acitive/inactive) 유저 수/플레이 횟수

먼저 유형 별 active/inactive 유저 수를 집계하기 위한 필드를 생성하겠습니다.

전체 유저 중 active/inactive 유저를 비중을 파악하기 위한 필드도 생성합니다.

플레이 횟수 및 비중 필드를 계산 할 때는 COUNTD([User ID]) 대신 COUNT([Event Time])식을 넣고, 위와 동일한 방식으로 만들어주시면 됩니다.

유형별(acitive/inactive) 플레이 횟수 필드를 생성합니다.

전체 플레이 횟수 중 active/inactive 유저의 플레이 횟수 비중을 파악하기 위한 필드를 생성합니다.

여기까지 활성유저와 이탈유저의 분류를 위한 작업을 거쳤다면, 이제는 유저 유형별 게임 플레이 패턴에 차이가 있는지 비교하기 위해 다음과 같은 두 가지 분석 사항을 수행하겠습니다.

  • 유저들은 대체로 3가지 미션(Daily/Community/special) 중 몇 가지 미션을 수행할까?
  • 어떤 미션 조합을 많이 수행할까?

3. 플레이한 미션 개수별 active/inactive 유저 수

Active/Inactive 유저들은 대체로 3가지 게임 미션(daily, community, special) 중 몇 가지 게임을 플레이하는지 알아보기 위해, [ 플레이한 미션 개수 ] 라는 필드를 생성하여 유형별 유저수를 확인해보겠습니다.

Active

Inactive

4. 미션 수행 유형별 유저수 분포

다음으로는 미션 수행 유형별 유저 수를 살펴보겠습니다. 미션 수행 유형은 아래와 같이 7가지 항목으로 나눌 수 있습니다.

  • 1가지 게임만 플레이
    only daily mission
    only community mission
    only special mission
  • 2가지 게임만 플레이
    daily mission & community mission
    daily mission & special mission
    community mission & special mission
  • 3가지 게임 모두 플레이
    daily mission & community mission & special mission

아래 사진과 같이 유저별 플레이한 미션들이 다른 row로 분리되어 있어, multiple rows를 하나로 합친 후 미션 수행 유형을 매칭해야합니다.

1) 1가지 미션만 수행한 유저 (only daily, only community, only special) : 유저가 [ 플레이한 미션 개수 ] 필드 값이 1이며, [ selected Mission ] 이 각각 daily, community, special에 매칭할 경우

2) 2가지 미션만 수행한 유저 (daily&community, daily&special, community&special) : 유저가 [ 플레이한 미션 개수 ] 필드 값이 2이며, [ selected mission ] 의 최초 및 마지막 실행 미션이 유저의 해당 2가지 미션 값으로 매칭될 경우

+) 유저의 최초 및 마지막 실행 미션을 매칭할 필드를 먼저 만들어 준비해주세요!

유저별 최초 실행 미션

유저별 마지막 실행 미션

3) 3가지 미션 모두 수행한 유저 (All) : 유저의 [ 플레이한 미션 개수 ] 필드 값이 3이며, [ selected Mission ] 에 daily, community, special가 모두 포함될 경우

💡 Question

2가지 미션 수행유형을 구할 때, 3가지 미션 모두 수행한 유형에서 로직처럼 [field] in (‘mission1′,mission2’)를 사용하지 않고 min, max를 사용한 이유는?

다음과 같은 순서로 로직을 구성했다고 가정해봅시다. 사실 아래의 2461 유저 같은 경우, 두 row 모두 daily&community가 나와야하는게 정상이지만, 해당 계산된 필드의 식이 순차적으로 적용되게 되어 각각 community&special, daily&community로 레이블링 될 수 있으므로 해당 로직을 사용하지 않습니다.

최종 Field View

마지막으로 각 유저 별 미션 수행 유형이 알맞게 매칭되었는지 확인해보겠습니다.

Active

Inactive

만들어 둔 [ 미션 수행 유형 ] 필드를 바탕으로 각각 active/inactive 유저 수를 집계한 후, 퀵 테이블 계산을 통해 구성비율로 변경하였습니다.

상단필터를 통해 이탈기준(연속 미접속기간) N일을 조정할 수 있으며, 월별로 지표를 확인할 수 있습니다. 상단필터를 통해 이탈기준(연속 미접속 기간)을 11일로 선택한 상태입니다.

1) Active/Inactive 유저 수, 플레이 횟수 지표

활성/이탈 유저 수 :

  • 활성 유저 수(62,644명)는 이탈 유저 수(18,246명)에 비해 약 3.43배 높습니다. 또한 전체 유저 중 이탈 유저수의 비중(22.56%)에 비해, 이탈 유저의 플레이 수 비중은 7.69%로 매우 낮은 수준입니다.

인당 플레이 수 : Inactive user의 인당 플레이 횟수 역시 매우 낮은 상황입니다.

  • Active user → 742,695/62,644 = 11.86 (회)
  • Inactive user → 61,863/18,246 = 3.39 (회)

2) 플레이한 미션 개수별 유저 수 분포

  • 활성 유저는 3가지 미션을 모두 플레이하는 비중이 높은 반면, 이탈 유저는 1가지 미션만 플레이 하는 비중이 매우 높습니다.
    → 특정 1가지 미션을 플레이 하는 과정에서 이탈이 많아지는 것으로 예상됨

어떤 미션에서 이탈이 생기는지 확인하기 위해 [미션 플레이 유형 별 유저 수 분포]를 확인해보겠습니다.

3) 미션 플레이 유형별 유저 수 분포

  • 이탈 유저의 경우, 활성 지표가없는 작업의 이점 유저 플레이 유형에 비해 only daily mission(37.69%)이나 only community mission(9.70%)만 플레이 하는 비중이 매우 높습니다.
    → daily mission 또는 community mission만 플레이하는 과정에서 이탈이 높은 것을 보아, 두 mission 내에서 개선해야 할 포인트를 찾을 수 있습니다. (난이도가 문제일까? 아니면 리워드 지급이 더 필요한가? 등등)
  • 활성 유저의 경우 3가지 미션을 주로 수행하는 것으로 보아, 추후 1가지 미션만 플레이 하는 유저들은 이탈 확률이 높으므로 (=이탈 위험군) 다른 미션 플레이를 유도하는 넛지를 주는게 좋아보입니다.

이번 포스팅에서는 활성유저 vs 이탈유저 비교분석 대시보드를 함께 살펴 보았습니다. 물론 사용한 데이터의 정보가 구체적이지 않아 모든 유저가 9월 1일에 가입했다는 가정을 설정했는데요.

더 다양한 가입일의 유저 데이터, 더 넓은 time frame의 접속 세션이력을 통해 ‘연속 미접속일’을 판별한다면, 더 정확하고 세밀하게 이탈 위험 유저를 분류할 수 있을 것입니다.


0 개 댓글

답장을 남겨주세요