Artificial Intelligence Based User Recommendation System (인공지능 기반 사용자 추천 시스템)

‘Artificial Intelligence Based User Management System’에 대해 좀 더 이야기 하기전에 Artificial Intelligence(인공지능)가 무엇인가에 대해 생각해보고 다음 내용을 살펴보도록 하는것이 이해하기에 쉬울 것 같다. 위키피디아에는 한 문장으로 "Artificial intelligence (AI) is the intelligence exhibited by machines or software.(22 March 2016, at 06:01.)" 라고 정의되어 있다. 아주 간결하지만 일반적인 이해를 구하는 문장은 아닌 것 같다.

위의 정의에서 Artificial intelligence(인공지능)은 사람의 지능이 아닌 기계 또는 소프트웨어에 의해 생성되는 지능이라는 것이다. 소프트웨어는 홀로 존재할 수 없으니 반드시 어떤 물리적인 기계와 공존해야 할 것이다. 연산이 가능한 기계를 우리는 컴퓨터라 하며, 연산이 가능한 컴퓨터위에 탑재된 소프트웨어는 학습이 가능한 알고리즘으로 구성되어져야 한다. 그리고 알고리즘이 컴퓨터의 물리적인 연산력을 반복적으로 이용하면서 주어진 알고리즘에 의한 수 많은 반복학습을 통해 빠른 속도로 방대한 내용을 익히면서 인간이 할 수 있는 동작 또는 일을 할 수 있게 될 때 인공지능이라고 할 수 있을 것이다.

인공지능은 피드백을 통한 학습만을 하는 것이 아니라 "학습"과 "추론"을 바탕으로 한 결정을 내릴 수 있어야 한다. 기존의 Intelligence System이라 하면, IF-THEN 룰 기반으로 진화(Evolve) 하지는 않지만 사람이 생각할 수 없는 많은 경우의 수를 확률 기반으로 수집해 두기 때문에 사람이 하는 것보다는 훨씬 나은 능력을 발휘할 수 있다. IF에 설정된 기준에 맞으면 THEN이라고 주어진 부분에 맞는 행동을 하게 된다. 한 예로, 주식 거래에서 시스템 트레이딩을 생각해보면 쉽게 이해할 수 있을 것이다. 시스템 트레이딩에서는 사전에 임의의 기준을 정해두게 되고, 목표 주식들의 움직임이 일정 범위내 또는 일정 범위와 일치하면 THEN이라고 정해진 부분을 실행하여 원하는 주식 매매 활동을 자동으로 하게 된다. 이것은 일정한 발견된 룰을 바탕으로 전문가가 정해둔 기준으로 거래가 되는 것이므로 인공지능 스스로가 추론을 하여 가장 많은 이익을 낼 수 있는 주식을 사거나 팔거나 하는 것은 아니다. 앞서, 인공지능이 추론을 한다고 했는데, 추론은 무엇일까? 사람이 어떤 것을 추론한다고 하면, 아무것도 없는 것에서 추론을 하지는 않는다. 과거의 경험 그리고 본인의 경험하거나 학습한 범위내에서 생각을 정리해가며 그 다음 내가 할 행동에 대한 결과에 대해, 자신에게 유리하거나 가능한 좋은 결과를 낼 수 있는 것을 뽑는 과정을 가능성이라는 정성적인 개념을 바탕으로 될 수 있는한 논리적으로 생각을 할 때 우리는 추론이라는 말을 쓴다. 그럼 추론에서 무엇을 기준으로 어떤 것은 나쁘고 어떤 것은 좋다고 할 수 있을까? 사람은 "아마, 그럴거다"라고 할 것이다. 하지만, 인공지능은 정량적인 수로 생각해야 할 것이다. 그 수라는 개념은 확률이 될 것이다. 그리고 인공지능기반 시스템을 구축하는 것이 인간이 하는 정도의 수준이라면 그냥 사람이 작업하는 것이 나을 것이다. 그러나 우리는 그 이상의 수준을 기대하고 좀 더 나은 결과를 얻기 위해 인공지능 기반 시스템을 생각하게 되는 것이라 본다. 오른쪽 그림은 본 주제인 인공지능 기반 사용자 관리 시스템을 간단히 도식화 한 것이다. 너무 간단히 도식화 한것이 아닐까 생각하게 되지만, 그렇다해서 꼭 복잡하고 어려운 것을 기대할 필요는 없다. 본 주제에서는 개념을 익히기 위한 것이므로, 될 수 있는한 간단한 것을 예로 개념을 익히고, 자신의 상황에 맞제 적용하면 도움이 될 것이다.


현재 까지는 일부 제한된 분야에서 상용화 되어 사용되고 있지만 가까운 미래에 본격적인 연구를 통해 그 실효성을 증명할 것은 분명하다. 인공지능이 응용되어 시험적으로나마 역할을 기대할 수 있는 분야는 많겠지만, 범죄 방지 및 예측 또는 가장 가시적인 성과를 볼 수 있는 E-Commerce에서 개별 사용자에 행해지는 추천(recommendation) 또는 게임 관련 분야가 될 것이다. 사실, E-Commerce에서는 개인을 식별하기위한 방법을 찾는데에도 많은 기술적 노력을 기울여야 한다. 반면에, 요즘 새로운 페러다임으로 등장한 O2O 관련 서비스에서는 개인 단말에서 사용되는 것이기 때문에 개인을 식별하는 것이 그렇게 어렵지가 않다. 일반 피시 사용자들 처럼 여러명이 한 대의 스마트 폰을 공유할 일이 없을 것이고 일반 피시 사용자들이 프록시를 경유할 때의 식별 문제도 쉽게 해결된다. 그래서 사용자가 웹 사이트에 로그인하지 않더라도 개인 식별을 위한 방법은 E-Commerce 수월하면서도 보다 개인화 된 서비스를 제공하고 있다고 볼 수 있다. 현재 이루어지고 있는 추천은 여러가지 기술적인 방법을 통해 이루어 지고 있다. 이전에는 사용자들의 웹 사이트 세션정보, 클릭 정보, 구매 정보 및 웹 사이트 이동 경로를 바탕으로한 사용자들의 속성 벡터(Feature Vector)로 프로파일을 구성하여 추천이 이루어졌지만, 현재는 협업 필터링(Collaborative Filtering)으로 사용자들의 구매 이력 또는 상품에 대한 평가에 대한 정보만으로도 정도로도 정확도가 높은 추천이 이루어지고 있다. 추천 방법을 찾는데 있어 최상의 방법을 찾는 것보다는 추천의 결과가 기업의 매출로 연결되는 전환율이 높아진다면 그 추천방법은 현 시점에서는 최선의 방법이라고 할 수 있을 것이다. 그리고 현재 사용되는 추천방법들에 의해 제공되는 시스템과 이야기하고자 하는 인공지능 기반 사용자 관리 시스템을 구분하기 위해 기존의 방법을 Semi-Artificial Intelligence(반 인공지능)으로 하자.

Artificial Intelligence Based User Manaement System은 궁극적으로 사람의 간섭이 극도로 최소화된 시스템이며 스스로 학습을 통해 좀 더 나은 효과 또는 역할을 기대 할 수 있는 것으로 보면 될 것이다. 페이스북에서는 페이스북 그 자체를 마케팅 플랫폼으로 사용하고 있다. 페이스 북이라는 마케팅 플랫폼은 ECO-System의 가장 중요한 요소인 Demographic 정보가 가득하다. 그리고 페이스 북의 대표적인 마케팅 관측 지표인 Coversion Lift라는 정보로 마케팅의 효과에 대한 인과관계를 측정할 수 있게 해준다. 이 지표의 구성 요소를 보면 인공지능 추천 시스템에 사용될 수 있을 부분을 발견할 수 있을 것이다. 현재는 이 지표가 광고주의 의뢰에 의해, 페이스북 데이터 사이언티스트가 요구사항을 반영한 설계를 한 후, 마케팅 및 캠페인 기간이 끝난 후 또는 중간 경과를 페이스 북과 광고주가 효율성을 측정하고 있지만, 이것을 통계적 방법을 사용하여 설계하면 그럴싸한 인공지능 추천 시스템이 만들수 있는 바탕이 될 수 있을것으로 본다. 그럼, 왜 인공지능 추천 시스템을 개발하지 않을까?라고 질문하면 돌아오는 답은 아마 "어렵기 때문에", "그러한 것을 만들기 위해 자본이 너무 많이 투입된다", 또는 "만들었다고 하더라도 현재 추천 시스템보다 더 나은 결과를 기대할 수 있을 것인가?"라는 불확실성이 많이 존재하기 때문에 쉽게 접근할 수는 없는 것이다. 현재의 추천 시스템도 많은 역할을 수행해내고 있으면 충분히 훌륭하다고 해야 할 것이다. 기존의 추천 시스템을 제작한 회사나 엔지니어들이 인공지능 기반 추천 시스템에 대한 구현을 생각하지 않은 것은 아닐 것이며 비용적인 면에서 너무 실험적이었기 때문일 것이다. 다만, 실제로 구현하기 위한 기반 인프라 및 상황이 충분히 갖쳐져 있지 않았을 것이다. 또한, 예전에도 인공지능 기반 시스템이 각광을 받다가 별다른 성과없이 거의 사라지다시피 하여 투자대비 불확실성이 더 많았기 때문이라 할 수 있을 것이다. 그러나 초기 추천 시스템이 현재 당연히 필수품 처럼 사용되기 까지 많은 노력이 있었고 지금도 좀 더 나은 추천 시스템을 만들기 위해 노력하고 있다. 그러나 여러가지 변수가 존재하더라도 궁극적으로 인공지능 기반으로 사용자에 대한 추천이 이루어 지는게 더 나을 것이다 라는데에 별다른 이견은 없을 것이다. 다만, 아직은 좀 시험적이고 한 번 해볼만하다라고 할 정도 일 것이다. 현재는 지금까지 축척된 데이터를 분석할 수 있는 빅 데이터의 시대에 살고 있고, 이러한 빅 데이터에서 기업 또는 개인에게 유의미한 정보를 찾는데 뼈대가 되는 Information Technology와 Data Technology의 여건이 잘 마련되어 있다고해도 과언은 아닐 것이다. 실험적으로 나마 구현에 대한 고민을 해볼만 한 가치가 있을 것이다.


추천 시스템에서 인공지능 기반 시스템이라는 것은 사용자에게 여러 형태의 추천을 제공한 후, 이를 바탕으로하여 결과(Feedback)을 통해 처음에는 단순한 모델에서 시작하여 점차 반복학습을 통해 초기에 설정된 모델과는 엄청난 차이를 보이는 지능화된 추천 시스템이 될 것이며, 좀 더 각 개인에 대한 보다 섬세한 추천이 이루어지는 것을 기대할 수 있을 것이다. 그렇다고 해서 전혀 사람의 간섭이 없을 수는 없다. 인공지능 기반 추천 시스템의 결과를 주기적으로 모니터링하면서 학습 결과를 확인 분석해야 할 것이다. 학습 결과를 확인 분석하기 위해서는 알고리즘 수정 또는 모델링을 달리한 후, 사용자들에게 추천을 제공한 결과를 재 측정해야 할 것이다. 그러니까, 어린 아이가 잘 크고 있는지 그리고 밥은 잘 먹는지 학교는 잘 가는지 하는 부모가 아이를 키우는 방식의 부분적인 간섭이 필요하다. 예로, 인공지능 기반 추천 시스템이 추천을 행한 후, 결과를 통해 시스템이 반복 학습하는 것을 모니터링하면서 사람이 동시에 결과에 대한 분석을 하면서 추천 결과가 낮다면, 그러한 결과가 발생한 이유를 찾아 때로는 알고리즘을 향상시켜줄 때도 필요하다는 것이다. 아마, 고도화 된 전문인력이 배치되어 모니터링 및 분석해야 할 것이다. 서두에 너무 많은 부분을 기술하게 되어 내용이 길어지는 것 같아, 그럼 이제 본 주제에 맞게 E-Commerce에서 제공하고 있는 추천을 예로 인공지능 기반 사용자 관리 시스템에 대한 설명과 구현에 대해 이야기 하도록 하자. 그럼, 먼저 현재 가장 많이 사용되는 협업 필터링(Collaborative Filtering) 비-인공지능 추천 방법(기존 방법)을 먼저 알아보도록 하자. 아래의 그림은 협업 필터링 추천 방법의 개념을 간단히 한 것이다.

협업 필터링 추천 방법은 개인에게 추천 한다기 보다는 비슷한 취향 또는 성향을 띄는 그룹에 대에 추천을 하는 것이다. 이 방법은 비슷한 성향을 보이는 사람들은 유사한 상품 또는 컨텐츠를 좋아할 것이다라는 가정을 기반으로 하여 상품을 추천할 때에는 비슷한 성향을 띄는 그룹의 사람이 좋아하는 상품을 동일 그룹의 다른 개인이 그 상품을 구매하지 않았다면 구매되지 않은 상품에 대한 매출을 촉진하기 위한 추천 방식이다. 물론 추천할 때는 사전에 구매된 물건은 배제된다. 그럼 아래와 같이 예제 데이터를 이용하여 하나씩 보도록 하자. 협업 필터링 방법에 대한 예제를 설명하기 전에 한가지 미리 이야기 하자면, 협업 필터링은 개인에게 추천의 대상이 개인이 아니라 비슷한 성향을 가진 그룹이 대상이 된다. 그룹에 존재하는 사람이 한 사람이라면 개인이 되겠지만, 이런일은 거의 없을 것이다. 그리고 성향이 비슷한 사람이 많아져 한 그룹이 너무 크지면 이 또한 추천의 의미가 없어 지게 될 것이다. 이러한 경우 또한 더물다는 가정에서 협업 필터링 추천 방법을 먼저 살펴보도록 하자. 아래의 예제에 사용될 협업 필터링 추천 방법중에서 User과 Item간의 상관관계를 기반으로 추천을 하는 User-Item 협업 필터링 방법을 예로 살펴보도록 하자.



왼쪽의 표는 협업 필터링을 위한 단계적인 과정에 대한 요약 설명이다. 협업 필터링 뿐만 아니라 다른 경우도 왼쪽 표의 단계와 같이 모델링을 전개해 가면 복잡한 것을 쉽게 해결할 수 있을 것이다. 그리고 유사성(affinity)를 측정하기 위한 방법은 표에 소개된 방법외에도 다른 방법들이 많이 있으니 본 사이트의 Tutorial 페이지에서 Similarity Measurement 부분에서 상세 내용을 살펴보면 될 것이다. 먼저 표의 내용보다 우선하는 것은 가설을 설정하는 것이다. 가설을 설정할 때 고려해야 할 것은, 가설이 사용자들의 데이터를 분석함으로써 사용자 또는 고객에 대한 더 깊은 이해를 바탕으로 매출 증가로 연결될 수 있어야 할 것이다. 그럼, 어떤 E-Commerce 회사의 IT부서에서 온라인 사용자들의 행동을 이해하여 매출에 연결할 수 있는 방법을 찾기 위해 상품추천이라는 것을 생각해 보기로 했다고 하자. 상품추천을 하기위해 그냥 무작위로 하는 것도 하나의 방법이 될 수 있을 것이다. 그렇지만 상품추천의 효과에 기대 보다는 않하는 것 보다는 좋지 않겠냐는 식이 될 것이다. 그렇기 때문에 좀 더 세밀한 분석을 바탕으로 상품추천을 해야할 것은 당연할 것이다. 이회사의 IT부서의 누군가가 어느 날, 사용자 성향과 상품에 어떤 임의의 관계성이 있지 않을까 하고 고심중에, "비슷한 성향을 가진 사용자들은 상품 또는 아이템에 대해 비슷하게 평을 하지 않을까? 그리고 이러한 비슷한 사용자들이 속한 그룹의 상품을 추천하면 그렇지 않은 사용자들에게 추천하는것보다 상품 또는 아이템이 구매될 수 있는 확률이 높아질것이며 당연히 매출 증가로 연결될 수 있을 것이다" 라는 생각을 하게되었고, 모두가 이 가설이 설득력이 있다는 동의하에, 분석 목적의 가설을 "비슷한 성향을 가진 유저들은 상품 또는 아이템들에 대해 비슷하게 평을 할 것이다"으로 설정할 수 있을 것이다.


이러한 가설을 바탕으로 이것을 증명할 수 있는 분석을 실행할 것이며 왼쪽 표의 단계별로 진행할 것이다. 첫 번째 단계인 "Data Collection"에 대해 살펴보도록 하자. 예제에서 비슷한 사용자를 가려내기 위해 코사인을 이용한 유사성을 사용하고 있다. 이 방법은 코사인이라는 각의 크기가 작으면 비슷하다고 판단하는 방법으로 현재까지 많이 사용되어지고 있는 방법이다. 그러나 한 가지 고려해야 할 것은 이 방법에는 magnitude라는 것이 고려 되어 있지 않다. 예를 들어, 하늘의 별을 보고 있을 때 별 들의 각이 좁다고 해서 서로 가깝다고는 이야기 할 수 없기 때문이다. 왜냐하면, 각이 서로 같고 우리가 보는 위치에서 가까이 있는 별은 서로 가깝게 보이겠지만, 각은 같지만 더 멀리 있는 별들도 서로 가깝다고 봐야할 것인가라는 질문이 생기기 때문이다. 이때문에 코사인 법만을 사용하기 보다는 magnitude라는 같이 유사성 계산에 사용하면 좀 더 정확한 값을 얻을 수 있을 것이다. 이 예제에서는 간단히 하기 위해 magnitude는 고려하지 않을 것이다.계속...

컨설팅 서비스
통합된 관점의 데이터마이닝
전략을 제시해드립니다.
모델링 및 분석 서비스
최적화된 데이터 전략 모델을
제시해드립니다.
분석 플랫폼 개발 서비스
최적화된 모델의 현실화 및
가시화를 제공해드립니다.