Upload
dyllis
View
81
Download
14
Embed Size (px)
DESCRIPTION
웹 로그 파일에서 순회 패턴 탐사 알고리즘 2000. 2 성신여대 하미라 석사논문. 2000 년 7 월 14 일 DE Lab. 윤지영. 목 차. 순회 패턴 탐사 구현 알고리즘 웹 로그 파일에서 순회 패턴 탐사 성능 분석 결론 및 향후 과제. 순회 패턴 탐사. 순회 패턴 탐사 단계 최대 순방향 참조 단계 ( M aximal F orward R eferences) : 사용자 접근 패턴에서 역방향참조 일어날 때 까지의 순방향 참조 시퀀스 - PowerPoint PPT Presentation
Citation preview
웹 로그 파일에서순회 패턴 탐사 알고리즘
2000. 2 성신여대 하미라 석사논문
2000 년 7 월 14 일DE Lab. 윤지영
2
목 차1. 순회 패턴 탐사 2. 구현 알고리즘3. 웹 로그 파일에서 순회 패턴 탐사4. 성능 분석5. 결론 및 향후 과제
3
순회 패턴 탐사순회 패턴 탐사 단계1. 최대 순방향 참조 단계 (Maximal Forward References) :
사용자 접근 패턴에서 역방향참조 일어날 때 까지의 순방향 참조 시퀀스
2. 빈발 참조 시퀀스 단계 (Large Reference Sequences) :
최대 순방향 참조 중에서 최소지지도를 만족하는 시퀀스
3. 최대 참조 시퀀스 단계 (Maximal Reference Sequences) :
다른 빈발 참조 시퀀스 어느 하나에도 포함되지 않는 빈발 참조 시퀀스
4
- 한 사용자의 순회 경로{A, B, C, D, C, B, E, G, H, G, W, A, O,
U, O, V}- 생성된 최대 순방향 참조
{ABCD, ABEGH, ABEGW, AOU, AOV}
그림 1 . 순회패턴의 예
5
최대 순방향 참조 Log database :
a pair of (Source, Destination) 최대순방향 참조를 저장한 데이터베이스 : DF
MF(Maximal Forward ) 알고리즘- 로그 데이터베이스를 사용자 아이디로 정렬 ,
각 사용자에 대해 시간순으로 정렬된 순회경 로 {(s1,d1),(s2,d2),…,(sn,dn)} 을 얻음- 정렬된 모든 로그 데이터에 대하여 d1 에서부
터 dj ( 역참조가 일어날 때가 j 번째 참조라면 ) 까지의 스트링을 DF 에 기록한다
6
빈발 참조 시퀀스 1≤j ≤ k 에 대해 si+j = rj 인 i 가 존재한다면
시퀀스 s1,…,sn 은 연속된 부분시퀀스로서 r1,…,r
k 를 포함한다고 한다 .예 ) BAHPM 은 AHP 를 포함한다 .
빈발 k- 참조시퀀스 - 연속된 부분 시퀀스로서 r1,…,rk 를 포함하 는 최대순방향참조들을 가진 사용자의 수가 최소지지도를 넘는다면 , 이러한 k- 참조시퀀스 r1,…,rk 를 빈발 k- 참조시퀀스 라 한다 .
7
구현 알고리즘 FS (Full-Scan) 알고리즘
– DHP 알고리즘 응용 CHT_FS(Compound Hash Tree_FS) 알고리즘
– FS 에 복합 해쉬 트리 적용 TPADE (Traversal Pattern Discovery using Equivale
nce Classes) 알고리즘– SPADE 알고리즘 응용
8
FS(Full-Scan) 알고리즘 DHP(Direct Hashing and Pruning) 응용
– 효과적인 빈발 항목 집합 생성– 효과적인 트랜잭션 데이터베이스 전지 (Pruning)
결합 (Join)
A B C D
A B C
A B D
그림 2. 결합 ( 연관 규칙 )
A B C
B C D
A B C D
그림 3. 결합 ( 순회 패턴 )
빈발 k-1
후보 k
9
FS(Full-Scan) 알고리즘 Lk : 모든 빈발 k-참조 시퀀스들의 집합
Ck : 모든 후보 k-참조 시퀀스들의 집합
1) DF를 스캔하여 L1 얻고 각 후보 2-참조 시퀀스의 빈도수를 세기 위한 해쉬테이블 (H2)을 만듬
2) DHP 에서와 같이 k=2 일때 부터 시작하여 이전 단계에서 얻어진 해쉬테이블 카운트를 기반으로 Ck 생성 , 빈발 k-참조 시퀀스들의 집합 찾음
- Ck 에서 k-항목집합들의 한 항목으로 사용되진 수를 구하여 최소지지도 이하로 사용된 항목은 Purning 함으로써 트랜잭션 DB 의 크기 줄임
- 후보 (k+1)-참조 시퀀스를 찾기 위한 해쉬테이 블 생성
10
CHT_FS 알고리즘 복합 해쉬 트리 (Compound Hash Tree)
– Cm,Cm+1,…,Cm+n 을 동시에 생성한 후 , 하나의 복합 해쉬트리를 생성 , 한번의 DB 스캔으로 Lm,Lm+1, …,Lm+n 을 찾음
– 일반적인 해쉬 트리 : • 검색되어야 할 레코드가 외부 노드에만 저장
– 복합 해쉬 트리 : • 검색되어야 할 레코드가 내부 노드에도 저장
– 장점 :• 반복적인 해쉬트리의 생성 및 데이터베이스 스
캔 , 후보 빈발 항목집합의 발생 수 계산을 줄임• 트리 탐색 비용 감소
– 단점 : 후보항목집합 생성은 FS 에 비해 비효과적
11
그림 4. C2 = {AB, AC, BC, BD, CD}, C3= {ABC, BCD} 의 해쉬 트리
AB
AC
BC
BD CD
CA B
C C D DB
ABC BCD
CB
BA
DC
일반 해쉬 트리
12
A
AB A
C
BC BD CD
CB
C C D DB
ABC BCD
C D
그림 5. C2={AB,AC,BC,BD,CD}, C3={ABC,BCD} 의 복합 해쉬 트리
복합 해쉬 트리
13
TPADE 알고리즘 SPADE (Sequential Pattern Discovery using Eq
uivalence classes) 알고리즘 응용 동치 클래스 (Equivalence Classes) 를
이용하여 원문제를 주 메모리상에서 독립적으로 수행가능한 부문제로 나눔
수직 식별자 리스트 (Vertical id-list) 데이터베이스 형식
간단한 id-list intersection 으로 모든 빈발시퀀스 찾음
많아야 세 번의 데이터베이스 스캔 필요
14
빈발 참조 시퀀스를 찾는 과정1. 전처리 과정2. 빈발 1- 참조 시퀀스 (F1) 찾기3. 빈발 2- 참조 시퀀스 (F2) 찾기4. 빈발 k- 참조 시퀀스 (Fk) 찾기
1) 빈발 (k-1)- 참조 시퀀스를 이용한 동치 클래스 분해
2) 각 동치 클래스에서 빈발 k- 참조 시 퀀스 생성
15
전처리 과정 1 단계에서 얻어진 MFR_DB 형식을
수평에서 수직으로 변환-> 지지도를 쉽게 구할 수 있도록
수평 DB : transaction 단위로 저장(UID, TID, # of ITEMS, ITEMS)
수직 DB : item 단위로 DB 에 저장( ITEM, # of LIST, (UID TID LOC)LISTS)
CTL _ list
16
UID TID # of items
ITEMS
1 1 3 C D A
1 2 5 A B C D F
1 3 5 A B F D C
1 4 3 A C B
2 5 5 A B F D C
2 6 3 C D A
3 7 4 A B C F
3 8 2 A B
4 9 3 C B A
그림 6. 수평 (Horizontal) DB 의 예
17
ITEM # of lists (UID TID LOC) listsA 9 (1 1 3) (1 2 1) (1 3 1) (1
4 1) (2 5 1) (2 6 3) (3 7 1) (3 8 1) (4 9 3)
B 7 (1 2 2) (1 3 2) (1 4 3) (2 5 2) (3 7 2) (3 8 2) (4 9 2)
C 8 (1 1 1) (1 2 3) (1 3 5) (1 4 2) (2 5 5) (2 6 1) (3 7 3) (4 9 1)
D 5 (1 1 2) (1 2 4) (1 3 4) (2 5 4) (2 6 2)
E 0
F 4 (1 2 5) (1 3 3 ) (2 5 3) (3 7 4)
그림 7. 수직 (Vertical) DB 의 예
18
F1 과 F2 찾기 빈발 1- 참조 시퀀스 (F1)
- 한번의 DB 스캔으로 주어진 수직 식별자 리스트 DB 로부터 모든 빈발 -1 참조 시퀀스를 찾음
빈발 2- 참조 시퀀스 (F2) - 수직 식별자 리스트 DB 형식을 다시 수평 형식으로 변환 (on-the-fly 방식 )하여 기존의 방식으로 계산
19
빈발 k- 참조 시퀀스 (Fk) 빈발 (k-1)- 참조 시퀀스의 동치클래스 이용 SPADE 알고리즘에서의 동치 클래스 [ε ∈ Fk-1] = { α ∈ Fk | Pk-1 (α)= ε }
그림 8. SPADE 에서의 Equivalence Class 의 예
[A]
l1 l2 AF
AB
[D]
l1 l2DF DB
[B]
l1 l2BA BF
[F]
l1 l2
FA FB
FD
[ε].l1 = (ε -> α)
[ε].l2 = (ε α)
20
TPADE 알고리즘에서의 동치 클래스
[A]
l1 l2DA AB
AC
[D]
l1 l2 DA
DC
[B]
l1 l2AB BC
CB BF
[F]
l1 l2BF FD
CF
그림 9. TPADE 에서의 Equivalence Class 의 예
[ε∈Fk-1] = {α∈Fk |Drop1(α)=ε ∨ Dropk(α)=ε }
[ε].l1 = { (α ε) }
[ε].l2 = { (ε α) }
21
빈발 k- 참조 시퀀스 생성 생성된 동치클래스들은 메모리 상에서
각각 독립적으로 수행됨 각 동치클래스에서 빈발시퀀스 찾는 과정
1) l1 과 l2 를 접합 (Concatenation), 새로운 후보 참조 k- 시퀀스의 Item list 를
얻음2) 얻어진 후보 시퀀스의 지지도 계산하여
빈발 시퀀스 얻음
22
빈발 k- 참조 시퀀스 생성예
ITEM SUP CTL _ listAB 5 (121)(131)(251)(371)
(381)
BC 2 (122)(372)
BF 2 (132)(252)
CB 2 (142)(491)
CD 3 (111)(123)(261)
DA 2 (112)(262)
DC 2 (134)(254)
FD 2 (133)(253)
F2 의 CTL_list
23
F3 의 CTL_list
EC ITEM SUP CTL _ listA DAB 0 NULL
B ABC 2 (121)(371)
ABF 2 (131)(251)
CBF 0 NULL
C BCD 1 (122)
DCB 0 NULL
DCDA 2 (111)(261)
FDA 0 NULL
FDC 2 (133)(253)
F BFD 2 (132)(252)
24
EC 별 접합결과 F4 의 CTL_list
[CD]l1 l2
BCD
CDA
[A] [B]
[BF]
[C]
[CB]
[DC]l1 l2
FDC
[FD]l1 l2
BFD
FDC
[BC]l1 l2 BC
D
[D]
[DA]
[F]
EC ITEM SUP CTL _ listFD BFDC 2 (132)(252)
CD BCDA 0 NULL
[AB]l1 l2 AB
C
ABF
25
실험 환경 및 실험 데이터 실험 환경
– 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개 트랜잭션 )
26
웹 엑세스 로그 데이터
• 수집기간 : 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. 성신여대의 웹 액세스 로그 데이터의 예
27
데이터의 전처리 (Cont’d)
Code User’s IP(Domain)
1 10-216.wm.lge.co.kr
2 128.100.46.27
3 128.175.83.61
4 128.200.51.63
5 128.226.107.35
6 128.226.107.35
7 128.226.107.35
Code Requested Item
1 / HTTP/1.0
2 / bbs/ HTTP/1.0
3 / bbs/images/condensed.gif HTTP/1.0
4 / bbs/images/home.jpg HTTP/1.0
5 / bbs/images/hot.gif HTTP/1.0
6 / bbs/images/newer.gif HTTP/1.0
7 /~object/images/condensed.gif HTTP/1.0
그림 11. User IP 의 매핑 테이블과 Item 의 매핑 테이블
28
데이터의 전처리
그림 12. 전처리 후 웹 사용자 트랜잭션 데이터베이스의 부분
UID 액세스한 항목 번호18 2 2685 25333 25350 25378
19 2 893 897 898 900 919 2077 2698 12679 21915 25393
20 2 893 900 919 2077 2084 2104 2685 2698 12937 14220 20661 20798 21939 21952 25333 25350 25352 25378 25393
21 2 152 900 939 2685 25333 25350 25352 25369 25378 25387
22 2 2685 25333 25350 25352 25378
29
순회 패턴의 예번호 후처리된 순회패턴 지지도
(%)
(1) <(/Apply/) (/Apply/images/eyes.gif) (/cgi-bin/bbs /Counter/Count.cgi?frgb=69;139;116&dd=D|ft=3|df=SWU_job.dat) (/images/apply.jpg)>
0.27
(2) <(/BBS/home.html)(/BBS/cgi-bin/bbs/A/listboard) (/BBS/cgi-bin/bbs/B/listnews) (/BBS/cgi-bin/bbs/B/suggesteditor)>
0.25
(3) <(/BBS/) (/BBS/menu.html) (/BBS/home.html) (/BBS/images/TBALL.GIF)>
0.40
(4) <(/BBS/home.html) (/BBS/images/TBALL.GIF) (cgi-bin/bbs/Counter/Count.cgi?ft=3&frgb=255; 215;0 &df=home.dat) (/images/bbs1.jpg)>
0.30
( 최소지지도 : 0.25%)
30
성능 비교
그림 13. FS, CHT_FS, TPADE 의 최소 지지도별 탐사 시간 비교 (1,000,000 번 액세스 )
1
10
100
1000
1.5 1.25 1 0.75 0.5 0.25 0.1
최소 지지도 (%)
탐사
시간
(se
c)
FS
CHT_FS
TPADE
31
성능 비교
그림 14. FS, CHT_FS, TPADE 의 최소 지지도별 탐사 시간 비교 (2,000,000 번 액세스 )
1
10
100
1000
10000
1.5 1.25 1 0.75 0.5 0.25 0.1
최소 지지도 (%)
탐사
시간
(se
c)
FS
CHT_FS
TPADE
32
TPADE 의 성능이 좋은 이유 ITEM_list 상에서 간단한 결합연산만을 사용 복잡한 해쉬트리 자료구조를 사용하지 않고 오직 두 리스트의 선형탐색만을 필요로 하므로 , 사용자 부분 시퀀스를 생성 , 탐색하는 오버헤드 없음 .
TPADE 는 패턴 길이에 관계없이 오직 세번의 DB 스캔만을 하므로 최소지지도가 낮을수록 , 더욱더 많고 패턴 길이가 더욱더 길어진 빈발참조시퀀스들이 탐사됨 .
33
FS 와 CHT_FS 의 결과 비교k 1 2 3 4 5 시간 ( 초 )
FS 알고리즘Ck
170 837 62 11441.40
Lk89 119 47 8 1
U_N 149780
102172
93479 18531 1
CHT_FS 알고리즘Ck
119 837 6434 51406 1191.35
Lk89 119 47 8 1
U_N 149780
102172
- - 78604
3,000,000 번 액세스 , 최소 지지도 : 1%
34
FS 와 CHT_FS 의 탐사시간 비교
0
100
200
300
400
500
600
1.5 1.25 1 0.75 0.5 0.25 0.1
최소 지지도 (%)
탐사
시간
(sec)
FS
CHT_FS
그림 15. FS 와 CHT_FS 의 최소 지지도별 탐사 시간 비교 (1,000,000 번 액세스 )
35
FS 와 CHT_FS 의 탐사시간 비교
그림 16. FS 와 CHT_FS 의 최소 지지도별 탐사 시간 비교 (2,000,000 번 액세스 )
0
200
400
600
800
1000
1200
1400
1600
1.5 1.25 1 0.75 0.5 0.25 0.1
최소 지지도 (%)
탐사
시간
(se
c)
FS
CHT_FS
36
결론 및 향후과제 웹 로그 파일에서 순회 패턴 탐사
– 구현 알고리즘 : FS, CHT_FS, TPADE– 이용 가치 :
• 웹 페이지 디자인의 향상• 상업적인 목적으로 이용
( 예 : 광고 배너의 위치 선정 등 ) 각 순회 패턴 탐사 알고리즘 성능 비교 향후과제
- 웹로그 파일의 세밀한 전처리- 효율적인 순회 패턴 탐사 알고리즘 연구- 실제 대용량 데이터에 적용- 사용자 인터페이스 개발