360 likes | 554 Views
웹 로그 파일에서 순회 패턴 탐사 알고리즘 2000. 2 성신여대 하미라 석사논문. 2000 년 7 월 14 일 DE Lab. 윤지영. 목 차. 순회 패턴 탐사 구현 알고리즘 웹 로그 파일에서 순회 패턴 탐사 성능 분석 결론 및 향후 과제. 순회 패턴 탐사. 순회 패턴 탐사 단계 최대 순방향 참조 단계 ( M aximal F orward R eferences) : 사용자 접근 패턴에서 역방향참조 일어날 때 까지의 순방향 참조 시퀀스
E N D
웹 로그 파일에서순회 패턴 탐사 알고리즘 2000. 2 성신여대 하미라 석사논문 2000년 7월 14일 DE Lab. 윤지영
목 차 • 순회 패턴 탐사 • 구현 알고리즘 • 웹 로그 파일에서 순회 패턴 탐사 • 성능 분석 • 결론 및 향후 과제
순회 패턴 탐사 • 순회 패턴 탐사 단계 • 최대 순방향 참조 단계(Maximal Forward References) : 사용자 접근 패턴에서 역방향참조 일어날 때 까지의 순방향 참조 시퀀스 2. 빈발 참조 시퀀스 단계(Large Reference Sequences) : 최대 순방향 참조 중에서 최소지지도를 만족하는 시퀀스 3. 최대 참조 시퀀스 단계(Maximal Reference Sequences) : 다른 빈발 참조 시퀀스 어느 하나에도 포함되지 않는 빈발 참조 시퀀스
그림 1 . 순회패턴의 예 - 한 사용자의 순회 경로 • {A, B, C, D, C, B, E, G, H, G, W, A, O, U, O, V} • - 생성된 최대 순방향 참조 • {ABCD, ABEGH, ABEGW, AOU, AOV}
최대 순방향 참조 • Log database :a pair of (Source, Destination) • 최대순방향 참조를 저장한 데이터베이스 : DF • MF(Maximal Forward ) 알고리즘- 로그 데이터베이스를 사용자 아이디로 정렬, 각 사용자에 대해 시간순으로 정렬된 순회경 로 {(s1,d1),(s2,d2),…,(sn,dn)}을 얻음- 정렬된 모든 로그 데이터에 대하여d1에서부 터 dj (역참조가 일어날 때가 j 번째 참조라면) 까지의 스트링을 DF에 기록한다
빈발 참조 시퀀스 • 1≤j ≤ k에 대해 si+j = rj 인 i가 존재한다면 시퀀스 s1,…,sn 은 연속된 부분시퀀스로서 r1,…,rk를 포함한다고 한다.예) BAHPM은AHP를 포함한다. • 빈발 k-참조시퀀스- 연속된 부분 시퀀스로서 r1,…,rk를 포함하 는 최대순방향참조들을 가진 사용자의 수가 최소지지도를 넘는다면, 이러한 k-참조시 퀀스 r1,…,rk를 빈발 k-참조시퀀스 라 한다.
구현 알고리즘 • FS (Full-Scan)알고리즘 • DHP 알고리즘 응용 • CHT_FS(Compound Hash Tree_FS)알고리즘 • FS에 복합 해쉬 트리 적용 • TPADE (Traversal Pattern Discovery using Equivalence Classes)알고리즘 • SPADE 알고리즘 응용
A B C A B D A B C B C D A B C D A B C D 그림2. 결합(연관 규칙) 그림 3. 결합(순회 패턴) FS(Full-Scan) 알고리즘 • DHP(Direct Hashing and Pruning) 응용 • 효과적인 빈발 항목 집합 생성 • 효과적인 트랜잭션 데이터베이스 전지(Pruning) • 결합(Join) 빈발k-1 후보k
FS(Full-Scan) 알고리즘 • Lk : 모든 빈발 k-참조 시퀀스들의 집합 • Ck : 모든 후보 k-참조 시퀀스들의 집합 • 1) DF를 스캔하여 L1 얻고 각 후보 2-참조 시퀀스 의 빈도수를 세기 위한 해쉬테이블(H2)을 만듬 • 2) DHP에서와 같이 k=2 일때 부터 시작하여 이전 단계에서 얻어진 해쉬테이블 카운트를 기반으 로 Ck생성, 빈발 k-참조 시퀀스들의 집합 찾음- Ck에서 k-항목집합들의 한 항목으로 사용되진 수를 구하여 최소지지도 이하로 사용된 항목은 Purning함으로써 트랜잭션 DB 의 크기 줄임- 후보 (k+1)-참조 시퀀스를 찾기 위한 해쉬테이 블 생성
CHT_FS 알고리즘 • 복합 해쉬 트리(Compound Hash Tree) • Cm,Cm+1,…,Cm+n을 동시에 생성한 후, 하나의 복합 해쉬트리를 생성, 한번의 DB 스캔으로 Lm,Lm+1, …,Lm+n을 찾음 • 일반적인 해쉬 트리 : • 검색되어야 할 레코드가 외부 노드에만 저장 • 복합 해쉬 트리 : • 검색되어야 할 레코드가 내부 노드에도 저장 • 장점 : • 반복적인 해쉬트리의 생성 및 데이터베이스 스캔, 후보 빈발 항목집합의 발생 수 계산을 줄임 • 트리 탐색 비용 감소 • 단점 : 후보항목집합 생성은 FS에 비해 비효과적
A B A B C B C B C C D D C D AB AC BC BD CD ABC BCD 일반 해쉬 트리 그림 4. C2 = {AB, AC, BC, BD, CD}, C3= {ABC, BCD}의 해쉬 트리
A C B B C C D D AB BC D C AC BD CD ABC BCD 복합 해쉬 트리 그림 5. C2={AB,AC,BC,BD,CD}, C3={ABC,BCD}의 복합 해쉬 트리
TPADE 알고리즘 • SPADE (Sequential Pattern Discovery using Equivalence classes) 알고리즘 응용 • 동치 클래스(Equivalence Classes)를 이용하여 원문제를 주 메모리상에서 독립적으로 수행가능한 부문제로 나눔 • 수직 식별자 리스트(Vertical id-list)데이터베이스 형식 • 간단한 id-list intersection으로 모든 빈발시퀀스 찾음 • 많아야 세 번의 데이터베이스 스캔 필요
빈발 참조 시퀀스를 찾는 과정 • 전처리 과정 • 빈발 1-참조 시퀀스(F1) 찾기 • 빈발 2-참조 시퀀스(F2) 찾기 • 빈발 k-참조 시퀀스(Fk) 찾기1) 빈발 (k-1)-참조 시퀀스를 이용한 동치 클래스 분해2) 각 동치 클래스에서 빈발 k-참조 시 퀀스 생성
전처리 과정 • 1단계에서 얻어진 MFR_DB 형식을 수평에서 수직으로 변환-> 지지도를 쉽게 구할 수 있도록 • 수평 DB : transaction 단위로 저장(UID, TID, # of ITEMS, ITEMS) • 수직 DB : item 단위로 DB에 저장( ITEM, # of LIST, (UID TID LOC)LISTS) CTL _ list
F1 과 F2 찾기 • 빈발 1-참조 시퀀스(F1)- 한번의 DB 스캔으로 주어진 수직 식별자 리스트 DB 로부터 모든 빈발-1 참조 시퀀스를 찾음 • 빈발 2-참조 시퀀스(F2)- 수직 식별자 리스트 DB형식을 다시 수평 형식으로 변환(on-the-fly방식)하여 기존의 방식으로 계산
빈발 k-참조 시퀀스(Fk) • 빈발 (k-1)-참조 시퀀스의 동치클래스 이용 • SPADE 알고리즘에서의 동치 클래스 [ε ∈ Fk-1] = { α ∈ Fk | Pk-1 (α)= ε } • [ε].l1 = (ε -> α) • [ε].l2 = (ε α) 그림 8. SPADE에서의 Equivalence Class의 예
TPADE 알고리즘에서의 동치 클래스 • [ε∈Fk-1] = {α∈Fk |Drop1(α)=ε ∨ Dropk(α)=ε } • [ε].l1 = { (α ε) } • [ε].l2 = { (ε α) } 그림 9. TPADE에서의 Equivalence Class의 예
빈발 k-참조 시퀀스 생성 • 생성된 동치클래스들은 메모리 상에서 각각 독립적으로 수행됨 • 각 동치클래스에서 빈발시퀀스 찾는 과정1) l1과 l2를 접합(Concatenation), 새로운 후보 참조 k-시퀀스의 Item list를 얻음2) 얻어진 후보 시퀀스의 지지도 계산하여 빈발 시퀀스 얻음
빈발 k-참조 시퀀스 생성예 • F2 의 CTL_list
EC별 접합결과 F4 의 CTL_list [A] [B] [C] [D] [F] [DA] [BF] [CB]
실험 환경 및 실험 데이터 • 실험 환경 • CPU : Pentium II 366MHz • 주 메모리 : 256MB • 운영 체제 : Windows NT workstation 4.0 • 구현 언어 : Visual C++ 6.0 • 실험 데이터 • 성신여자대학교 웹 로그 파일 적용 • 데이터 수집 기간: 1999.10 .26~ 1999. 11.28 (1,000,000개, 2,000,000개, 3,000,000개 트랜잭션)
웹 엑세스 로그 데이터 • 수집기간: 1999.10 .26~ 1999. 11.28 • 210.111.128.244 - - [26/Oct/1999:13:34:59 +0900] "GET/~plan/rule/r4_1.htm HTTP/1.1" 200 115920 • 210.111.128.244 - - [26/Oct/1999:13:35:00 +0900] "GET/~plan/img/first.gif HTTP/1.1" 200 427 • 210.125.93.41 - - [26/Oct/1999:13:35:01 +0900] "GET/Org HTTP/1.0" 302 - 그림 10. 성신여대의 웹 액세스 로그 데이터의 예
데이터의 전처리 (Cont’d) 그림 11. User IP의 매핑 테이블과 Item의 매핑 테이블
데이터의 전처리 그림 12. 전처리 후 웹 사용자 트랜잭션 데이터베이스의 부분
순회 패턴의 예 (최소지지도 : 0.25%)
성능 비교 그림 13. FS, CHT_FS, TPADE 의 최소 지지도별 탐사 시간 비교 (1,000,000번 액세스)
성능 비교 그림 14. FS, CHT_FS, TPADE 의 최소 지지도별 탐사 시간 비교 (2,000,000번 액세스)
TPADE의 성능이 좋은 이유 • ITEM_list 상에서 간단한 결합연산만을 사용 • 복잡한 해쉬트리 자료구조를 사용하지 않고 오직 두 리스트의 선형탐색만을 필요로 하므로, 사용자 부분 시퀀스를 생성, 탐색하는 오버헤드 없음. • TPADE는 패턴 길이에 관계없이 오직 세번의 DB 스캔만을 하므로 최소지지도가 낮을수록, 더욱더 많고 패턴 길이가 더욱더 길어진 빈발참조시퀀스들이 탐사됨.
FS와 CHT_FS의 결과 비교 3,000,000번 액세스, 최소 지지도 : 1%
FS와 CHT_FS의 탐사시간 비교 그림 15. FS와 CHT_FS의 최소 지지도별 탐사 시간 비교 (1,000,000번 액세스)
FS와 CHT_FS의 탐사시간 비교 그림 16. FS와 CHT_FS의 최소 지지도별 탐사 시간 비교 (2,000,000번 액세스)
결론 및 향후과제 • 웹 로그 파일에서 순회 패턴 탐사 • 구현 알고리즘 : FS, CHT_FS, TPADE • 이용 가치 : • 웹 페이지 디자인의 향상 • 상업적인 목적으로 이용 (예: 광고 배너의 위치 선정 등) • 각 순회 패턴 탐사 알고리즘 성능 비교 • 향후과제- 웹로그 파일의 세밀한 전처리- 효율적인 순회 패턴 탐사 알고리즘 연구- 실제 대용량 데이터에 적용- 사용자 인터페이스 개발