Contents

Collaborative filtering by auto Encoder

Collaborative filtering by auto Encoder

협업필터링을 딥러닝 방식의 하나인 오토 인코더로 구현하는데 알아두어야 할 배경지식에 대하여 정리

Machine learning

  • 기계가 명시적으로 코딩되지 않은 동작을 스스로 학습해 수행하게 하는 연구 분야. 인공지능(AI)의 한 분야로 간주된다. 기계 학습의 핵심은 표현(representation)과 일반화(generalization)에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다.

What’s the difference with ‘Deep learning’?

  • Machine learning은 어떤 문제와 답을 막 던져주면 기계가 계속 풀어내면서 추상적인 원리를 스스로 깨우치고 새로운 문제가 주어져도 스스로 답을 낼 수 있게 하는 것이다.

  • Deep learning은 Machine learning보다 조금 더 편리?한 방법이라고 할 수 있다. Machine learning의 경우 알고리즘에 입력 하기 전 필요한 특징을 사람이 직접 선정해야 한다. 예를 들어 사람의 나이를 추정한다고 하면, 얼굴의 주름 개수, 피부 색상의 균일도, 특정 주름의 짙은 정도, 머리카락의 색깔과 같이 나이를 추정하는 데에 유용한 ‘특징’을 사람이 알려주어야(선택) 특징을 기준으로 기계가 학습한다.

  • Deep learning의 경우에는 ‘특징’을 선정하는 부분까지 기계가 직접 선택해 학습한다. 머신러닝과 달리 사람 얼굴을 찍은 사진을 입력으로 넣어주면, 스스로 어떤 특징이 나이를 추정하는 데에 유용한지 분석한다. 그런 식으로 사람이 좀 더 손을 대 줘야 하던 부분들을 컴퓨터가 더 많이 처리해주는 편리함이 강점이다.

Collaborative Filtering

  • 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사를 자동적으로 예측하게 해주는 방법이다. 협력 필터링 접근법의 근본적인 가정은 사용자들의 과거의 경향이 미래에서도 그대로 유지 될 것이라는 전제에 있다. 예를 들어, 음악에 관한 협력 필터링 혹은 추천시스템(recommendation system)은 사용자들의 기호(좋음, 싫음)에 대한 부분적인 목록(partial list)을 이용하여 그 사용자의 음악에 대한 기호를 예측하게 된다. 이 시스템은 특정 사용자의 정보에만 국한 된 것이 아니라 많은 사용자들로부터 수집한 정보를 사용한다는 것이 특징이다. 이것이 단순히 투표를 한 수를 기반으로 각 아이템의 관심사에 대한 평균적인 평가로 처리하는 방법과 차별화 된 것이다. 즉 고객들의 선호도와 관심 표현을 바탕으로 선호도, 관심에서 비슷한 패턴을 가진 고객들을 식별해 내는 기법이다.

  • 협업 필터링의 종류에는 Memory-based, Model-based, Hybrid 가 있지만 이중에서 간단하게 구현할 수 있으며, 적당히 합당한 결과를 도출하는 Memory-based 협업 필터링을 사용한다.

Auto Encoder

  • 오토인코더(Autoencoder)는 아래의 그림과 같이 단순히 입력을 출력으로 복사하는 신경망. Auto Encoder의 신경망 구조는 input과 output이 동일하며 좌우를 대칭으로 구축된 구조이다. 어떻게 보면 간단한 신경망처럼 보이지만 네트워크(hidden layer)에 여러가지 방법으로 제약을 줌으로써 어려운 신경망으로 만들어 사용한다. 예를들어 아래 그림처럼 hidden layer(회색 동그라미)의 뉴런 수를 input layer(입력층)보다 작게해서 데이터를 압축(차원을 축소)한다거나, 입력 데이터에 노이즈(noise)를 추가한 후 원본 입력을 복원할 수 있도록 네트워크를 학습시키는 등 다양한 오토인코더가 있다. 이러한 제약들은 오토인코더가 단순히 입력을 바로 출력으로 복사하지 못하도록 방지하며, 데이터를 효율적으로 표현(representation)하는 방법을 학습하도록 컨트롤한다.