관리 메뉴

DeseoDeSeo

Data Mining Methods for Recommender Systems 본문

카테고리 없음

Data Mining Methods for Recommender Systems

deseodeseo 2023. 10. 26. 14:42
dimensionality : 차원

 

데이터 마이닝

  : 데이터 전처리 ➜   데이터 분석  ➜  결과해석

 

○  데이터 전처리

     ✔  데이터 : 객체 및 해당 특성의 집합으로 정의

     ✔  특성 : 객체의 속성 또는 특징으로 정의

                    ( 레코드, 항목, 점, 샘플, 관측 또는 인스턴스 등) , ( 변수, 필드, 특성 또는 특징임)

      - Distance Measures, Sampling, dimensionality Reduction

 

RS(Recommender Systems)를 설계할 때, 중요한 3가지 문제

  1. 다양한 유사성 또는  거리측정 방법

  2. 주요한 특징들을 유지하면서 매우 큰 컬렉션의 항목 수 를 줄이는 방법으로서 샘플링

  3.  차원을 줄이기 위해서 가장 일반적인 기술 

 

 -  1. 유사성 측정 

    : 협력 필터링(CF,  collaborative filtering)추천시스템에서 가장 선호되는 접근 방법 ➜ KNN분류기

        적절한 유사성 또는 거리 측정을 정의하는 것에 많이 의존.

 

         ○ 유클리드 거리: 가장 간단하고 흔한 거리 측정의 예

              n : 차원(특성)의 수,    Xk , Yk : 데이터 객체 x와 y의 k번째 특성(구성요소)

          ○ 민코프스키 거리: 유클리드 거리의 일반화

              r: 거리의 차수

              마할라노비스 거리

                 : 항목을 n-차원 공간의 문서 벡터로 간주하고 그들의 유사성을 형성하는 각도의 코사인으로 계산

                σ: 데이터의 공분산 행렬

              

              ➤ 항목 간의 유사성를 객체 사이의 선형 관계를 측정하는 선형관계를 통해 얻을 수 있다.

                   ( 피어슨 상관관계가 가장 일반적으로 사용됨)

   

   RS는 일반적으로 코사인 유사성, 피어슨 상관관계 또는 가중 스키마를 통한 많은 변형 중 하나를 사용했다.

 

   이진 특성만 가지는 항목 : 여러 유사성 측정 방법이 제안됨.

-   2. 샘플링

     : 관련 데이터의 하위 집합을 선택하는 DM에서 주로 사용되는 주요 기술

         ( 데이터 전처리 및 최종 데이터 해석 단계 모두에서 사용)

 

       - 훈련 및 테스트 데이터 집합을 생성하기 위해 사용.

        핵심 문제 : 원래 데이터 집합의 속성과 대략 동일한 대표 부분집합을 찾는 것.

       테스트 집합을 선택하기 위해 무작위로 선택한 항목의 20%를 사용하고 나머지 80%를 training set에 남김.

        - 훈련 및 테스트 데이터 집합의 특정 부분에 지나치게 특화될 수 있다.

         교차검증 (Cross-validation): 서로 다른 교육/테스트 데이터 집합이 선택되어 training/test프로세스를 다시 시작하여

                                                        k번 반복,  그리고 k개의 학습된 모델의 평균 성능이 보고된다.

 

       ❑ 반복된 무작위 샘플링 : 표준 무작위 샘플링 프로세스가 k번 실행

       ❑ n-fold 교차 검증 : 데이터 집합은 n개의 폴드로 나뉨. n번 반복해서 각 n개의 하위 샘플이 한번씩 검증 데이터로 사용됨

       ❑ LOO(Leave-one-out) 방법: 데이터 집합의 항목 수로 n을 설정한 n-fold 교차 검증의 극단적인 경우

 

       ➜ RS에서 일반적인 접근 방식 : 사용자의 사용 가능한 피드백을 샘플링하여 훈련 및 테스트로 분리.

 

-   3 . 차원 축소

      차원 축소 알고리즘 : 주성분 분석(PCA), 특이값 분해(SVD)

 

     (1) 주성분 분석(PCA)

          : 고차원 데이터 집합에서 패턴을 찾는 고전적인 통계적 방법

           ( 분산에 기여하지 않는 성분을 무시하여 데이터의 차원을 줄일 수 있다.)

            ➜ PCA를 사용하면 기존의 X의 정보 대부분을 포함하면서 차원을 줄일 수 있다.

            원래 데이터 집합이 정규 분포에서 추출되었다는 가정 有

 

       (2) 특이값 분해(Singular Value Decomposition, SVD : 차원 축소에 대한 강력한 기술)

             :분해의 핵심은 '개념'을 나타내는 낮은 차원의 특성 공간을 찾는 것.( 각 개념의 강도를 계산)

 

             - SVD는 고객과 제품 간의 잠재적 관계를 발견하는 데 사용 가능

                (사용자- 아이템 행렬의 0을 아이템 평균 평점으로 채우고 사용자 평균을 뺀 후, SVD를 사용하여 분해 가능)

                ( 또다른 방법, SVD로 생성된 낮은 차원공간을 사용하여 나중에 KNN접근 방식에서 이웃 형성을 개선)

         

               - SVD의 장점: 근사 분해를 계산하는 점진적 알고리즘이 있다. 

                 ( 이를 통해, 이전의 데이터로 구축된 모델을 다시 계산하지 않고도 새로운 사용자 또는 평점을 수용 가능)

 

  - SVD와 MF(Matrix Factorization)의 다양한 변형 : 비음수 행렬 분해( Non - negative Matirx Factorization, NNMF)

 ➜ SVD와 MR 모두 과적합에 취약, 계산 복잡성으로 인해 행렬이 업데이트 될 때마다 요인화를 다시 계산하는 것은 비 실용적임.

 

 

노이즈제거 ( 데이터 마이닝을 목적으로 수집한 데이터는 다양한 종류의 노이즈에 영향 받을 수 있다.)

  : 데이터에서 원치 않는 효과를 제거하면서 정보를 극대화하는 매우 중요한 전처리 단계.

   노이즈 : 데이터 수집 단계에서 도입된 데이터 분석 및 해석의 결과에 영향을 미칠 수 있는 모든 원치않는 artifact(인공물)

 

○ 자연적인 노이즈 : 사용자가 자신의 선호도에 대한 피드백을 제공할 때, 무의도로 도입되는 노이즈

○ 악의적인 노이즈 : 결과를 편향 시키기 위해 의도적으로 도입된 노이즈

                                 ( 악의적인 노이즈가 RS의 결과에 영향을 미칠 수 있다. )

분류( Classifier, 특징공간과 레이블 공간 간의 매핑 )

    특징 : 분류한 요소의 특성,  레이블: 클래스

    -  지도 분류 : 사전에 알려진 레이블이나 범주 세트가 있으면 훈련 세트를 구성하는 레이블이 포함되어있음.

    - 비지도 분류: 사전에 알려진 레이블이나 범주 無, 작업은 적절한 기준에 따라 요소를 조직화.

 

최근접 이웃

   인스턴스 기반 분류기 : 훈련 레코드를 저장하고 이를 사용하여 보이지 않은 경우의 클래스 레이블을 예측하는 방식으로                                            작동  ex) 로트 학습자 : 훈련 세트 전체를 기억하고 새로운 레코드의 속성이 훈련 예와 정확히                                                                                    일치하는 경우에만 분류한다.

  최근접 이웃 분류자(KNN): 분류할 포인트가 주어지면 훈련 레코드에서 가장 가까운 포인트(k 최근 이웃)를 찾습니다.

                                            그리고 가장 가까운 이웃의 클래스 레이블에 따라 클래스 레이블을 할당.

                                             (=명시적으로 모델 구축 x)

                                           ( 레코드가 특정 이웃 내에 속하면 해당 클래스에 속할 가능성이 높다.)

                                           - k값을 어떻게 선택해야하는가 ( 너무 작으면 분류자는 노이즈 포인트에 민감)

                                             ( k값이 너무 크면 이웃에 다른 클래스의 포인트가 多) 

                                              장점 : CF의 아이디어와 개념적으로 관련이 깊음.

                                                        (유사한 항목을 찾는것은 주어진 항목의 이웃을 찾는 것과 본질적으로 동등)

                                                       KNN분류자가 게으른 학습자임으로 특정 모델을 학습하고 유지할 필요X

                                                     

규칙기반 분류자

   - 속성 연결식으로 이루어진 표현

   - 정확도 : 규칙 조건과 결과 모두를 충족하는 레코드의 분수

   - 규칙 기반 분류자를 구축하기 위해 데이터에서 직접 규칙을 추출하는 방법 : Ripper, CN2

   - 장점: 데이터 속성을 변환하지 않고 데이터 속성과 함께 작동하기 때문에 굉장히 표현력이 뛰어나며 해석하기 쉽고 

              효율적으로 새로운 인스턴스를 분류 할 수 있다.

Bayesian 분류자 ( 모델 기반 RS에 특히 인기 有 )

  확률적 분류 문제를 해결하기 위한 확률적 프레임워크 ( 조건부 확률과 베이즈 정리의 정의를 기반 )

- Bayesian 통계학은 데이터에서 학습한 관계에 대한 불확실성을 표현하기 위해 확률을 사용한다.

- 속성 간의 종속성을 인코딩하는 비순환 그래프와 각 노드를 해당 직계 부모에 연결하는 확률 표를 사용.

    BNN : 그래프 모델을 사용하여 도메인 내 사전 지식을 포착하는 방법을 제공

    Naive Bayes(Ghani, Fano ) : 백화점의  맥락에서 관련없는 범주의 제품을 추천가능.

                                                    ( 좋아요, 싫어요 2가지 클래스, 각 사용자는 2개의 프로필을 유지하는 것을 제 )

                                                     확률을 추정할 때, 두 사용자가 공통으로 평가한 데이터만 사용.

 

인공신경망 ( ANN, Artificail Neural Networks )

      생물학적 뇌의 구조를 영감을 받은 상호 연결된 노드와 가중 연결로 구성된 어셈블리

     - ANN의 노드는 생물학적 뉴런과 유사성을 비유하여 뉴런이라고 불림.

     -  뉴런은 충분한 데이터로 훈련된 후 분류 문제를 학습할 수 있는 능력을 갖춘 네트워크로 조합됨.

     - 여러개의 레이어를 가질 수 있음. 

     - 레이어의 종류 

         - 입력 레이어의 단위 : 네트워크로 공급되는 데이터에 응답. 

         - 히든 레이어의 단위 : 입력 단위에서 가중치가 적용된 출력을 받음.

         - 출력 레이어의 단위 : 히든 단위에서 가중치가 적용된 출력에 응답하고 네트워크의 최종 출력을 생성.

    - 가장 일반적인 방법은 순방향 ANN을 사용하는 것. 신호는 엄격히 입력에서 출력으로만 전달됨.

    - 활성화 함수에 따라 비선형 분류 작업을 수행할 수 있으며, 병렬성을 활용하여 효율적이며 일부 네트워크의 실패를 이기도록 함.

   

   퍼셉트론 모델 : 간단하고 효율적인 학습 알고리즘을 갖춘 선형 분류자

서포트 벡터 머신 ( SVM)

    : 데이터를 최대화하는 방식, 선형 초평면 ( linear hyperplane  , 결정 경계, decision boundary)을 찾아 데이터를 분리하는 것.

   - 두 차원에서 여러가지 가능한 경계선이 두 클래스를 분리한다. 

 

분류기 앙상블

   : 훈련 데이터에서 분류기 집합을 구성하고 그들의 예측을 집계하여 클래스 레이블을 예측하는 것.

    - 분류기들이 독립적이라고 가정할 수 있는 경우에 작동함.

    - 앙상블을 생성하기 위해 가장 일반적인 두 가지 기술 : Bagging, Boosting

         - Bagging : 대체 샘플링을 수행하고 각 부트 스트랩 샘플에서 분류기를 구축한다.

        - Boosting : 이전에 오분류된 레코드에 더 많은 초점을 맞추도록 훈련 데이터 분포를 반복적으로 변경하는 절차를

                             사용.  ex) AdaBoost 알고리즘.

 

분류기  평가

   - 분류기 평가에 가장 널리 수용된 척도는 예측된 관심과 측정된 관심 간의 평균, 평균오차

    - ROC곡선(Receiver Operating Characteristic Curve)가 사용되기도 함.

    

클러스터 분석

  - cf분류기를 확장하는 데 가장 큰 문제는 거리를 계산하는 데 필요한 작업량이다.

   - 피처의 차원을 줄이더라도 여전히 거리를 계산해야하는 객체 多

       ➜ 클러스터링 알고리즘이 작용필요. 

   - 클러스터링(= 비지도학습) : 그룹에 항목을 할당하는 것. 동일 그룹의 항목이 다른 그룹의 항목보다 더 유사해야됨.

 

     클러스터링 알고리즘 

      - 파티션 클러스터링 알고리즘 : 데이터 항목을 정확히 하나의 클러스터에 속하도록 분할함.

      - 계층적 클러스터링 알고리즘 : 발견된 클러스터 내에서 순차적으로 항목을 클러스터링 하여 계층 구조 트리로

                                                          구성된 중첩된 클러스터 집합을 생성함. 

 

K-Means

 : K-means 클러스터링은 분할 방법이다.

   - N개의 항목 데이터 집합을 가능한 가까이 있는 것으로 정의된 거리 측정에 따라 Nj 항목을 포함하는 k개의 상이한

     하위 집합 Sj로 나눈다.

  - 각 클러스터의 중심점은 해당 클러스터 내 모든 항목에서의 거리 합이 최소화되는 지점이다.