DeseoDeSeo
Data Mining Methods for Recommender Systems 본문
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로 나눈다.
- 각 클러스터의 중심점은 해당 클러스터 내 모든 항목에서의 거리 합이 최소화되는 지점이다.