협업 필터링의 데이터 결손을 해결하는 2가지 방법
협업 필터링은 아마존을 비롯해 많은 인터넷 사이트가 정확도 높은 추천 정보를 이끌어내서 판매 촉진에 활용하고 있습니다. 또한 의료 분야에서 환자의 건강 상태를 협업 필터링으로 분석해서 환자별로 질병의 잠재된 위험을 산출해 낼 수 있습니다. 협업 필터링은 수많은 사용자의 행동 이력을 바탕으로 다른 사용자의 기호를 예측하는 분석 수법입니다. 인터넷 쇼핑 사이트에서 볼 수 있는 고객에게 추천하는 상품을 이끌어낼 목적으로 활용될 때가 많습니다. 예를 들어 고객 4명의 기호 정보가 있습니다. 그 4명에게 상품을 5단계로 평가하도록 실시했습니다. 숫자가 높을수록 만족도가 높음을 의미했습니다. 어느 상품을 추천하는 쪽이 더 효과적일까 생각해보세요. 협업 필터링 중에서 가장 단순하고 알기 쉬운 것은 상관 분석을 응용한 수법입니다. 간단하면서 편리한 방법이라고 생각할 수 있습니다. 그러나 실제로 비즈니스에 활용할 때에는 더 많은 변수를 고려해야 합니다. 그중 하나가 데이터 결손 문제입니다. 모든 상품과 모든 사용자의 데이터를 얻는 것은 불가능합니다. 그러므로 적지 않은 데이터 결손 값이 발생하게 됩니다. 데이터 결손 값이란 어떤 항목에 데이터가 없을 경우 데이터가 없음을 나타내는 값입니다. 데이터의 양도 일정 수준 이상이 모이지 않으면 예측 정확도가 떨어질 수밖에 없습니다. 결손 수준은 어느 정도인지 얼마나 확보해야 하는지를 사전에 충분히 검토해야 합니다. 데이터의 양이 늘어나면 계산량도 증가하므로 그에 맞춘 시스템 환경도 필요합니다. 아파치 머하웃은 아파치 소프트웨어 재단의 프로젝트로 규모가 가변적인 머신 러닝 알고리즘을 만드는 것을 목표로 하고 있습니다. 분산 분석은 쿠폰 배포나 가격 인하 등 캠페인의 내용이나 실시 유무 등의 조건에 따라 효과를 측정합니다. 약의 투여나 다이어트 식품의 섭취에 따른 상호 작용의 검출 또는 효과 측정에 사용됩니다. 분산 분석은 복수의 그룹을 비교할 때 분산을 계산함으로써 그룹과 그룹 사이에 통계적인 차이가 있다고 할 수 있는지 없는지를 판정하는 기법입니다. 수능 시험의 점수가 지역에 따라 차이가 나는지 어떤지를 분석하고 싶을 때 분산 분석을 사용할 수 있습니다. 마케팅 분야에서는 캠페인의 효과를 측정할 때 자주 사용하게 됩니다. 다중 회귀 분석이나 로지스틱 회귀 분석 모델의 신뢰도를 측정할 때도 사용할 수 있습니다. 특별 활동과 시험의 관계를 예를 들어보겠습니다. 야구부, 축구부, 바둑부에 소속된 12명의 시험 결과가 있습니다. 바둑부의 네 명은 높은 점수를 받았고 야구부의 네 명과 축구부의 네 명은 비교적 낮은 점수를 받았다는 것을 알 수 있습니다. 이 결과로 어느 스포츠부에 있느냐에 따라 시험 결과가 다르다고 결론 내릴 수 있는지 분산 분석을 통해 검증해 보겠습니다. 분산 분석을 할 때 먼저 집단 내와 집단 간의 개념을 알아둬야 합니다. 집단 내는 같은 그룹 안이라는 의미입니다. 집단 간은 다른 그룹 간이라는 의미입니다. 분산 분석에서는 집단 내의 차이와 집단 간의 차이를 비교한 다음 그 비율을 기준으로 집단에 의미가 있는지를 판정할 수 있습니다. 그래서 분산된 그룹을 분석하는 것을 분산 분석이라고 부르는 것입니다. 집단 간과 집단 내의 들쭉함을 나타내는 평균 제곱함을 산출하고 제곱함의 비를 구매해 값을 계산할 수 있습니다. F 분포표를 이용해서 F값이 통계적으로 유의미할 만큼 큰지 판정할 수 있습니다. 엑셀의 fdist 함수를 사용해서 분산 분석을 할 수 있습니다. 이는 95퍼센트 신뢰 수준에서 유의미함을 말합니다. 집단 간과 집단 내의 들쭉함의 비를 산출해내고 그 결과를 F 분포와 비교해서 요인에 통계적으로 유의미하다고 생각할 차이가 있는지를 도출해 내는 것이 분산 분석의 개념입니다. 방금 예에서는 변수를 하나만 다뤘지만 실제로는 여러 변수의 효과를 측정해야 합니다. 그럴 경우에 상호 작용이나 F 분포를 이용한 유의성 검정 후의 다중 비교 같은 수법을 사용해야 더 정확한 값을 도출할 수 있습니다. 협업 필터링의 장점과 단점을 통해서 분산 분석의 중요한 포인트를 알아봤습니다. 어느 한 가지 기법만을 이용하면 데이터의 신뢰도에 많은 문제가 생길 수 있습니다. 상관 분석과 분산 분석을 적절히 사용하면서 데이터 결손 문제를 해결하면서 정확하게 추천 시스템을 개발할 수 있습니다. 현재 우리나라에도 많은 IT 스타트업이 추천 시스템을 제공하는 애플리케이션을 개발하고 있습니다. 그러나 정확한 통계 기법을 제대로 활용하는 경우는 많지 않습니다. 위에 언급한 상관 분석이나 분산 분석에 대한 이해도가 깊지 않고 통계 전문가가 협업 필터링에 깊게 관여하지 못해서 나온 결과일 수도 있습니다. 그렇기 때문에 많은 애플리케이션이 가시적인 성과를 보이지 못하는 것일 수 있습니다.