DOI QR코드

DOI QR Code

신경망 협업 필터링을 이용한 운동 추천시스템

Exercise Recommendation System Using Deep Neural Collaborative Filtering

  • 정우용 (광운대학교 전자융합공학과) ;
  • 경찬욱 (광운대학교 전자융합공학과) ;
  • 이승우 (광운대학교 전자융합공학과) ;
  • 김수현 (광운대학교 전자융합공학과) ;
  • 선영규 (광운대학교 전자융합공학과) ;
  • 김진영 (광운대학교 전자융합공학과)
  • 투고 : 2022.09.22
  • 심사 : 2022.12.09
  • 발행 : 2022.12.31

초록

최근, 소셜 네트워크 서비스에서 딥러닝을 활용한 추천시스템이 활발하게 연구되고 있다. 하지만 딥러닝을 이용한 추천시스템의 경우 콜드스타트 문제와 복잡한 연산으로 인해 늘어난 학습시간이 단점으로 존재한다. 본 논문에서는 사용자의 메타데이터를 활용하여 사용자 맞춤형 운동 루틴 추천 알고리즘을 제안한다. 본 논문에서 제안하는 알고리즘은 메타데이터(사용자의 키, 몸무게, 성, 등)를 입력받아 설계된 모델에 적용한다. 본 논문에서 제안한 운동 추천시스템 모델은 matrix factorization 알고리즘과 multi-layer perceptron을 활용한 neural collaborative filtering(NCF) 알고리즘을 기반으로 설계된다. 제안된 모델은 사용자 메타데이터와 운동 정보를 입력받아 학습을 진행한다. 학습이 완료된 모델은 특정 운동이 입력되면 사용자에게 추천도를 제공한다. 실험 결과에서 제안하는 운동 추천시스템 모델이 기존 NCF 모델보다 10% 추천 성능 향상과 50% 학습 시간 단축을 보였다.

Recently, a recommendation system using deep learning in social network services has been actively studied. However, in the case of a recommendation system using deep learning, the cold start problem and the increased learning time due to the complex computation exist as the disadvantage. In this paper, the user-tailored exercise routine recommendation algorithm is proposed using the user's metadata. Metadata (the user's height, weight, sex, etc.) set as the input of the model is applied to the designed model in the proposed algorithms. The exercise recommendation system model proposed in this paper is designed based on the neural collaborative filtering (NCF) algorithm using multi-layer perceptron and matrix factorization algorithm. The learning proceeds with proposed model by receiving user metadata and exercise information. The model where learning is completed provides recommendation score to the user when a specific exercise is set as the input of the model. As a result of the experiment, the proposed exercise recommendation system model showed 10% improvement in recommended performance and 50% reduction in learning time compared to the existing NCF model.

키워드

Ⅰ. 서론

최근, 52시간 근무제도 시행 등 퇴근 후 여가시간 보장이 확대되면서 밀레니얼세대를 중심으로 생활체육 참여율이 증가하고 있다. 연예인, 인플루언서들도 방송 혹은 소셜 네트워크 서비스(SNS)를 통해 운동하는 모습을 노출함으로써 운동 문화의 유행을 부추기고 있고 개인 트레이닝 수요 또한 증가하고 있다[1]. 그러나 개인 트레이너의 공급이 수요를 따라가지 못하게 되면서 실력과 자격 등 전문성을 갖추지 못한 개인 트레이너들이 증가하고 있다. 전문성이 부족한 트레이너 선택으로 인해 발생한 잘못된 운동과 자세는 이용자들의 운동 만족도를 낮추는 결과를 보인다[2]. 본 논문은 사회적인 수요가 증가하고 있는 개인 트레이닝 만족도를 충족시키기 위해 AI 기반 사용자 운동 추천시스템을 제안한다.

기존 추천시스템은 유사도 측정과 matrix factorization (MF)을 이용하여 콘텐츠 기반 필터링과 협업 필터링을 진행한다[3]. 콘텐츠 기반 필터링은 사용자가 사용한 아이템들을 분석하여 비슷한 내용의 아이템을 추천하는 방식이다. 협업 필터링은 나와 비슷한 아이템을 소비한 사용자의 기록을 활용하여 추천하는 방식이다. MF는 행렬 특이값 분해를 이용하여 기존 데이터셋에서 입력되지 않은 데이터를 추측하여 입력된 형태의 데이터셋을 복원한다. MF의 경우 빠른 연산 속도를 통해 사용자에게 아이템을 추천할 수 있다는 장점이 있지만, data sparsity 단점도 있다. data sparsity는 아이템이 많고 아이템에 대한 사용자들의 선호도 데이터가 적을 때 추천에 대한 성능이 제한되는 문제다[5].

최근 data sparsity와 같은 한계점을 개선하기 위해 추천시스템에 머신러닝 기술을 활용하는 연구가 활발히 진행되고 있다[6]. 본 논문에서 제안하는 추천시스템은 많은 사용자들의 키, 몸무게와 같은 메타데이터와 사용자가 수행한 운동 데이터를 분석한다. 사용자들의 메타데이터는 기존 neural collaborative filtering(NCF) 알고리즘에서 사용자 id의 임베딩을 대체하여 입력된다[7]. 이후 MF 알고리즘과 딥러닝 연산을 통해 사용자 메타데이터와 운동 id 임베딩 값을 분석하고 운동을 추천한다.

본 논문은 다음과 같이 구성되어있다. Ⅱ장에서는 NCF모델과 본 논문에서 제안하는 추천시스템 모델을 소개하고 Ⅲ장에서는 실험과 결과를 제시한다. 마지막으로 Ⅳ장에서 결론으로 마무리한다.

Ⅱ. 제안하는 모델

1. Neural Collaborative Filtering

NCF는 추천시스템에서 사용되어왔던 MF 모델의 단점을 보완하여 설계된 모델이다. MF 모델은 데이터의 양이 많아질 때 사용자와 아이템의 복잡한 관계를 선형연산만을 이용하여 표현하는데 한계가 있다.

NCF는 MF에 비선형 연산을 추가하여 사용자와 아이템 관계의 복잡성을 설명할 수 있도록 한다. 비선형 연산은 Multi Layer Perceptron(MLP)을 이용하여 적용한다. 그림 1에서 좌측 Layer는 MF, 우측 Layer는 MLP를 구현하여 출력한다. 각 Layer에서 출력된 변수들은 모두 NeuMF Layer에서 Dense Layer를 적용하여 예측값을 출력한다.

OTNBBE_2022_v22n6_173_f0001.png 이미지

그림 1. 신경망 협업 필터링 구조.

Fig. 1. Structure of Neural Collaborative Filtering.

Generalized MF(GMF) layer는 각 사용자와 아이템의 id를 임베딩하여 추출한 변수를 latent vector라 가정하고 각 요소들을 곱하여 합산한 값을 출력한다. 출력값이 1에 근접할수록 선택한 운동을 사용자가 한 것으로 판단한다. 반면에, 0에 근접할수록 선택한 운동을 사용자가 하지 않는 것을 의미한다. 연산은 (1)와 같이 진행한다. 각 pu와 qi는 사용자와 아이템의 id를 임베딩한 결과이다.

\(\begin{aligned}\hat{y}=f\left(u, i \mid p_{u}^{T}, q_{i}\right)=p_{u}^{T} q_{i}=\sum_{k=1}^{K} p_{u k}^{T} q_{i k}\\\end{aligned}\),       (1)

MLP Layer에서는 활성화 함수(activation function)으로 기울기 소실(vanishing gradient) 현상을 방지하기 위해 Rectified Linear Unit(ReLU) 함수를 사용한다. ReLU 함수 식은 (2)와 같다[8,9].

\(\begin{aligned}h(x)=\left\{\begin{array}{ll}x & (x>0) \\ 0 & (x \leqq 0)\end{array}\right.\\\end{aligned}\)    .   (2)

2. Modified Neural Collaborative Filtering

기존 NCF 모델은 각 사용자와 아이템의 id를 랜덤으로 임베딩하여 사용자와 아이템을 구별한 뒤에 선형과 비선형 연산을 진행한다. 하지만 사용자의 신체정보로 이미 사용자의 id는 구별될 뿐만 아니라 키와 같은 선형적인 데이터를 랜덤으로 임베딩하여 연산을 진행할 경우 연산시간이 늘어나고 각 데이터들의 선형성이 사라진다. 따라서 본 논문에서는 그림 2와 같이 주어진 사용자의 데이터는 임베딩을 거치지 않은 채 전처리 과정을 거쳐 입력된다. 아이템 id만 임베딩을 거친 채 연산을 진행하여 사용자 데이터를 기존의 운동 데이터로 복원할 수 있는 아이템 id 임베딩값을 찾는다.

OTNBBE_2022_v22n6_173_f0002.png 이미지

그림 2. 제안한 모델의 구조.

Fig. 2. Structure of proposed modified NCF.

Ⅲ. 실험 및 결과

실험은 하나의 데이터셋을 이용하여 MF, NCF 알고 리즘과 본 논문에서 제안하는 수정된 NCF를 활용한다. 모델의 성능을 측정하기 위해 데이터셋을 모델 훈련용 데이터셋과 테스트용 데이터셋으로 구별하였다.

1. Dataset

활용하는 데이터셋은 신체정보 데이터셋과 운동 루틴 데이터셋이다. 신체정보 데이터셋은 나이, 성별, 키, 체지방률, 혈압과 같은 사용자의 신체정보와 악력, 제자리 뛰기, 앉았다 일어나기, 유연성과 같은 간단한 신체 능력을 측정하여 클래스를 분류한 데이터셋이다. 본 연구에서는 신체정보 데이터셋을 활용하여 운동 루틴 데이터셋을 제작한다.

운동 루틴 데이터셋은 (3)과 같이 0과 1로 나누어 운동 실행 여부를 입력한다. 운동의 종류는 총 15개를 입력한다.

\(\begin{aligned}y_{u i}=\left\{\begin{array}{ll}1, & \text { user worked out } \\ 0, & \text { others }\end{array}\right.\\\end{aligned}\).       (3)

데이터셋의 shape은 먼저 신체정보 데이터셋의 경우 (100000, 9)이고 운동 데이터셋은 (100000, 15)으로 구성된다.

2. Loss function

모델의 제일 마지막 Layer에서 활성화 함수를 sigmoid로 적용하여 예측값을 0과 1 사이의 값으로 제한한다. 모델학습의 Loss function은 binary crossentropy (4)를 사용한다.

\(\begin{aligned}\operatorname{Loss}(x)=-\frac{1}{N} \sum_{i=1}^{N} y_{i} \log \left(h\left(x_{i} ; \theta\right)\right)+\left(1-y_{i}\right) \log \left(1-h\left(x_{i} ; \theta\right)\right)\\\end{aligned}\).       (4)

3. 성능 지표

각 모델의 성능 지표 측정은 precision과 recall 값을 측정한다. 추천모델의 경우 각 추천 후보군에서 추천이 얼마나 잘 이루어지는가를 판단하기 때문에 성능 지표로 recall과 precision을 사용한다. (5), (6) 식에서 true positive(TP)는 positive 값을 positive라 예측한 것이고, false positive(FP)는 negative를 positive라 예측한 것이고, false negative(FN)는 positive 값을 negative라 예측한 것을 의미한다.

\(\begin{aligned}precision=\frac{T P}{T P+F P}\\\end{aligned}\),       (5)

\(\begin{aligned}reacll=\frac{T P}{T P+F N}\\\end{aligned}\).       (6)

4. 하이퍼파라미터

하이퍼파라미터는 표1과 같이 설정된다.

표 1. 실험 파라미터.

OTNBBE_2022_v22n6_173_t0001.png 이미지

Table 1. Simulation Parameters.

5. 각 모델에 대한 성능 결과

실험 결과 본 논문에서 제안하는 수정된 NCF 모델의 성능이 다른 모델에 비해 더 나은 성능을 보여준다. 그림 3은 각 세 개의 모델을 학습 진행에 따른 metrics를 그래프로 그린 것이다. 표 2를 보면 먼저 loss 값의 경우 0.1139로 비교모델 중 가장 작은 것을 알 수 있다. precision은 기존의 NCF 모델보다 조금 낮은 값을 보여주고 recall 값은 기존 모델들보다 0.9897로 12% 향상된 것을 알 수 있다. 또한 학습 시 한 epoch당 소요되는 시간을 측정하였는데 MF는 96초, NCF는 580초, 본 논문에서 제안하는 수정된 NCF는 25초로 측정되었다.

OTNBBE_2022_v22n6_173_f0003.png 이미지

그림 3. 모델 성능 그래프.

Fig. 3. Model performance graph.

표 2. 모델 성능 지표.

OTNBBE_2022_v22n6_173_t0002.png 이미지

Table 2. Model performance metrics.

각 모델의 성능 지표를 비교해볼 때 본 논문에서 제시하는 모델이 성능과 연산시간 모두 기존 모델들보다 좋은 수치를 보여준다. 그림 4은 각 모델별 confusion matrix를 나타낸다. 각 confusion matrix중 본 논문에서 제안하는 수정된 NCF matrix의 대각 성분 합이 가장 큰 것을 알 수 있다.

OTNBBE_2022_v22n6_173_f0004.png 이미지

그림 4. MF, NCF, Modified NCF 모델별 테스트 데이터셋의 혼동 행렬.

Fig. 4. Confusion matrix of each model about test dataset.

Ⅳ. 결론

본 논문에서는 사용자의 메타데이터를 이용하여 사용자에게 적합한 운동 루틴을 추천하기 위한 신경망 협업 필터링 모델을 제안한다. 사용자 id를 임베딩하여 연산하는 것이 아니라 사용자로부터 입력된 데이터 중 선형적인 정보를 가지고 있는 데이터를 임베딩 layer 대신 입력하여 사용자를 구별할 수 있는 정보로 활용한다. 이를 통해 임베딩 연산 시간을 절약할 뿐만 아니라 사용자의 임베딩 값이 의미를 지닌 값으로 활용할 수 있다. 또한 모델 성능 지표인 정확도(accuracy)와 재현율(recall) 값이 5% ~ 10% 향상되어 사용자에게 더욱 적절한 운동을 추천할 수 있다. 본 논문에서 제안하는 모델은 운동 추천할 수 있을 뿐만 아니라 사용자의 선형적인 메타데이터가 존재할 때 추천모델에 충분히 적용될 수 있다.

참고문헌

  1. KB management research institute. 2020. KB Self-Employment Analysis Report: Fitness Center Status and Market Condition Analysis. no.4
  2. D. Kim, M. Cho, Y. Park, Y. Yand, "Effect of an exercise program for posture correction on musculoskeletal pain," Journal of Physical Therapy Science, vol. 27, no. 6, pp. 1791-1794, Jun. 2015. DOI : https://doi.org/10.1589/jpts.27.1791
  3. S. Lee, "The effect of an integrated rating prediction method on performance improvement of collaborative filtering", The Journal of the Institute of Internet, Broadcasting and Communication, vol. 21, no. 5, pp.221-226, Oct. 2021. DOI : https://doi.org/10.7236/JIIBC.2021.21.5.221
  4. J. Kim,, R. Bell, C. Volinsky, "Matrix factorization techniques for recommender systems," IEEE, Computer Journal, vol. 42, pp. 30-37, Aug. 2009. DOI : https://doi.org/10.1109/MC.2009.263
  5. J. Kim, R. Monteiro, H.Park, "Group Sparsity in Nonnegative Matrix Factorization," Proceedings of the 2012 SIAM International Conference on Data Mining, pp. 851-862, Apr. 2012. DOI : https://doi.org/10.1137/1.9781611972825.73
  6. S. Zhang, L. Yao, A. Sun, Y. Tay, "Deep Learning based Recommender System: A Survey and New Perspectives," ACM Computing Surveys, vol. 52, no. 1, pp 1-38, Jan. 2020. DOI : https://doi.org/10.1145/3285029
  7. X. He, L. Liao, H. Zhang, L. Nie, X. Hu, T. S. Chua, "Neural Collaborative Filtering," WWW '17: Proceedings of the 26th International Conference on World Wide Web, pp. 173-182, Apr. 2017. DOI : https://doi.org/10.1145/3038912.3052569
  8. Agarap, A. F. "Deep learning using rectified linear units (relu)," arXiv preprint arXiv:1803.08375, 2018. DOI : https://doi.org/10.48550/arXiv.1803.08375
  9. S. Hochreiter, "The vanishing gradient problem during learning recurrent neural nets and problem solutions," International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, vol. 6, no. 2, pp107-116, Apr. 1998. DOI : https://doi.org/10.1142/S0218488598000094