Vậy bài toán đặt ra phân tích từ những dữ liệu tương tác của người dùng, làm sao ta có thể nhóm được người dùng cũng như dữ liệu thành các nhóm sở thích và cùng với những luật đưa ra có
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐHQGHN
KHOA CÔNG NGHỆ THÔNG TIN
CÔNG TRÌNH DỰ THI GIẢI THƯỞNG “SINH VIÊN NGHIÊN CỨU KHOA HỌC”
NĂM 2014
Tên công trình: Phân tích hành vi sử dụng web của người dùng
Họ và tên sinh viên: Đỗ Thành Trung Nam, Nữ: Nam
Người hướng dẫn: ThS Vũ Quang Dũng
Trang 2Tóm tắt công trình
Internet ngày một phát triển, cùng với đó là lượng thông tin khổng lồ Khi người dùng sử dụng internet để truy cập vào các website, đặt biệt là các website tin tức, người dùng luôn muốn xem những vấn đề theo sở thích cá nhân của mình Vậy vấn đề đặt ra là làm sao dự đoán được và đưa ra được gợi ý cho người dùng những tin tức mà người dùng có thể quan tâm Công trình này thực hiện việc phân tích dữ liệu từ những thông tin bắt được về thao tác của người dùng đối với website để đưa ra những dữ liệu cần thiết cho việc phán đoán
Trang 3Mục lục
Tóm tắt công trình 2
Mục lục 3
1.Đặt vấn đề 4
2.Giải quyết bài toán 4
2.1.Mô hình tổng quát 4
2.2.Cơ sở lý thuyết 5
2.2.1.ABC model (Antecedent-Behavior-Consequence) 5
2.2.2.Phân lớp Bayes 5
2.3.Tiền xử lý dữ liệu 6
2.4.Phân tích dữ liệu 6
2.4.1.Nhóm chủ đề (category) theo thời gian 6
2.4.2.Nhóm dữ liệu theo người dùng 7
2.4.3.Xác định các tin nổi bật (được truy cập nhiều) 8
2.5.Làm mịn 9
2.5.1.Trích xuất từ khóa 9
2.5.2.Đánh trọng số 9
2.6.Kết quả, ý nghĩa 10
3.Kết luận 11
3.1.Hạn chế còn tồn tại 11
3.2.Hướng phát triển 11
Tài liệu tham khảo 12
Trang 41 Đặt vấn đề
Để có thể phán đoán và đưa ra gợi ý hợp lý cho tin tức mà người dùng có thể quan tâm, việc phân tích dữ liệu tương tác người dùng là vô cùng quan trọng Với dữ liệu thu thập được từ tương tác người dùng làm sao để có thể biết được người dùng nào thích đọc loại tin nào, vào khoảng thời gian nào hay xu hướng tin tức đọc nhiều của mọi người là gì
Vậy bài toán đặt ra phân tích từ những dữ liệu tương tác của người dùng, làm sao ta
có thể nhóm được người dùng cũng như dữ liệu thành các nhóm sở thích và cùng với những luật đưa ra có thể dự đoán một cách chính xác những vấn đề mà người dùng quan tâm
Báo cáo này gồm 3 phần chính:
Phần 1: Đặt vấn đề.
Phần 2: Giải quyết bài toán.
Phần 3: Kết luận.
2 Giải quyết bài toán
2.1 Mô hình tổng quát
Ta có mô hình tổng quát hệ thống phân tích dữ liệu người dùng như sau:
Hình 1: Mô hình tổng quát luồng hoạt động Trong đó, vai trò của từng phần là:
- Tiền xử lý: đưa ra các form theo ABC model để làm chuẩn cho việc phân tích.
- Phân tích dữ liệu: Từ thông tin thu được về thao tác người dùng, tiến hành phân
tích để đưa ra kết quả theo form đã đưa ra
- Đưa vào CSDL: Đưa kết quả đã phân tích được vào cơ sở dữ liệu.
- Làm mịn: Sử dụng phân lớp Bayes để xác định category chính xác hơn cho các
tin tức sau đó cập nhật lại cơ sở dữ liệu
Dữ liệu dùng để phân tích có thể lưu trong cơ sở dữ liệu dưới dạng như sau:
Trang 5Hình 2: Cấu trúc cơ sở dữ liệu dùng cho phân tích Trong đó:
- Bảng Users: lưu trữ dữ liệu của người dùng.
- Bảng Articles: lưu trữ dữ liệu của các tin bao gồm các trường chính: tiêu đề, chủ
đề, thời gian post và url của tin đó
- Bảng Requests: lưu trữ dữ liệu về các request của người dùng bao gồm các
trường chính: định danh người dùng, định danh thông tin và thời gian yêu cầu thông tin
2.2 Cơ sở lý thuyết
2.2.1 ABC model (Antecedent-Behavior-Consequence)
ABC model (tiền đề - hành vi - kết quả) Tiền đề là sự việc gì đó xảy ra trước khi có hành vi, hành vi lại đưa ra một kết quả nhất định Theo ABC model, ta có thể đưa ra
dự đoán kết quả từ một tiền đề nào đó đã xảy ra
2.2.2 Phân lớp Bayes
Phân lớp Bayes dựa vào khung xác suất để xây dựng bộ phân lớp
Xác xuất điều kiện:
Với 2 biến cố A và C:
Xác suất có điều kiện của C phụ thuộc A: P(C|A) =
Trong đó:
- P(A,C) là xác suất xuất hiện cả A và C
- P(A) là xác suất xuất hiện A
Định lý Bayes:
P(C|A) = Thuật toán phân lớp Bayes áp dụng trong hệ thống trong việc phân loại chủ đề (category) đối với các tin tức dạng văn bản Sử dụng xác suất có điều kiện giữa keyword và category, thuật toán cho phép xác định một cách tương đối category của tin tức đang xét
Trang 62.3 Tiền xử lý dữ liệu
Tại bước này, ta đưa ra các form theo ABC model để dựa vào đó làm mục tiêu và mẫu chuẩn cho việc thống kê và phân tích ở bước sau Cụ thể ta có một số form như sau
- Form hiển thị tần suất truy cập theo từng ngày trong tháng
Bảng 1: Bảng hiển thị tần suất xem tin của từng category theo các ngày trong tháng
- Form hiển thị tần suất truy cập theo khoảng thời gian trong ngày
Bảng 2: Bảng hiển thị tần suất xem tin theo từng khoảng thời gian trong ngày
Time
Category
0-2 2-4 4-6 6-8 8-12 12-14
14-16
16-18
18-20
20-22
22-24 Category1
Category2
Category3
Category4
Category5
- Form hiển thị tần suất truy cập của mỗi người dùng
Bảng 3: Bảng hiện thị tần suất xem tin của mỗi người dùng đối với các category
User1
User2
User3
User4
2.4 Phân tích dữ liệu
2.4.1 Nhóm chủ đề (category) theo thời gian
Ta chia một ngày ra làm 12 khoảng ứng với 24 tiếng Từ dữ liệu request của người dùng, ta biết được tin tức request và thời gian request Từ dữ liệu tin tức, ta biết được category của bài đó Tổng hợp lại ta có thể đưa ra số lần truy cập vào từng category trong từng khoảng thời gian và lưu vào cơ sở dữ liệu như hình 4 Với dữ liệu phân tích được, ta có thể xác định được khoảng thời gian nào, người dùng thích truy cập những loại tin nào để đưa ra dự đoán hợp lý Ta có sơ đồ luồng hoạt động như sau
Trang 7Hình 3: Luồng hoạt động của Nhóm chủ đề theo thời gian
Trong đó:
- Bước 1: Lấy thông tin request của người dùng từ cơ sở dữ liệu, bao gồm: định
danh người dùng, định danh tin tức và thời gian truy cập
- Bước 2: Xác định khoảng thời gian và category của request.
- Bước 3: Kiểm tra xem hang có cặp thời gian và category đó đã tồn tại trong bảng
CSDL hay chưa Nếu đã tồn tại thì tang số lần truy cập của hang đó lên 1 Ngược lại thì tạo một hang mới với thời gian và category đã lấy được cùng số lần truy cập gán là 1
Hình 4: Cấu trúc bảng dữ liệu lưu trữ tần suất truy cập từng category theo thời gian
Hình 4 biểu diễn cấu trúc bảng cơ sở dữ liệu dùng để lưu trữ số lần truy cập theo thời gian của từng category Trong đó:
- cbt_id: lưu trữ id của cặp duration – category.
- cbt_category: lưu trữ tên category của tin được request.
- cbt_duration: lưu trữ khoảng thời gian trong ngày.
- cbt_numberaccess: lưu trữ số lần của truy cập của category trong khoảng thời
gian ứng với 2 trường cbt_category và cbt_duration
2.4.2 Nhóm dữ liệu theo người dùng
Từ dữ liệu request của người dùng, ta có thể biết được người dùng nào request tin tức nào rồi từ đó đưa ra được loại tin nào được người dùng thường xuyên truy cập nhất Tương tự với nhóm chủ theo thời gian ta có sơ đồ luồng hoạt động như sau:
Trang 8Hình 5: Luồng hoạt động của Nhóm dữ liệu theo người dùng Trong đó:
- Bước 1: Lấy thông tin request của người dùng từ cơ sở dữ liệu, bao gồm: định
danh người dùng và định danh tin tức
- Bước 2: Xác định user và category của request.
- Bước 3: Kiểm tra xem hàng có cặp user và category đó đã tồn tại trong bảng
CSDL hay chưa Nếu đã tồn tại thì tăng số lần truy cập của hàng đó lên 1 Ngược lại thì tạo một hang mới với user và category đã lấy được cùng số lần truy cập gán là 1
Hình 6: Cấu trúc bảng dữ liệu tần suất truy cập từng category của mỗi người dùng Hình 6 biểu diễn cấu trúc bảng lưu trữ số lần truy cập của người dùng đối với mỗi category Trong đó:
- cbu_id: lưu trữ id của đối tượng.
- cbu_user: lưu trữ user id của người dùng gửi request.
- cbu_category: lưu trữ category được request.
- cbu_numberaccess: lưu trữ số lần truy cập vào category của user ứng với 2
trường cbu_user và cbu_category
2.4.3 Xác định các tin nổi bật (được truy cập nhiều)
Đối với mỗi category, lại tìm ra những tin tức nổi bật trong ngày tương ứng với những tin có số lượng truy cập nhiều hơn các tin khác Tìm ra những tin nổi bật đồng nghĩa với những tin đó đang nóng và nó thu hút sự chú ý của mọi người Trường article_numberaccess được thêm vào bảng Articles để lưu trữ số lần truy cập của thông tin đó
Trang 9Hình 7: Bảng lưu trữ dữ liệu về các tin tức.
2.5 Làm mịn
2.5.1 Trích xuất từ khóa
Đầu vào: tập dữ liệu Dtraingồm các tin tức dạng văn bảng đã được phân chia category sẵn
Đầu ra: danh sách các từ khóa cùng số lần xuất hiện trong mỗi category.
Từ nội dung của mỗi trang tin tức, ta tiến hành trích ra các từ khóa và đếm số lần xuất hiện của từ khóa đó Mô hình luồng hoạt động được thể hiện như hình 6
Hình 8: Mô hình luồng hoạt động trích xuất từ khóa Trong đó vai trò của các module là:
- Tách từ khóa: tự nội dung tin tức, tách ra các từ với độ dài khác nhau trong bài.
- Chuẩn hóa từ: chuẩn hóa từ, loại bỏ các dấu câu còn xót từ quá trình tách từ
khóa
- Đếm số lần xuất hiện: đếm số lần xuất hiện của từ khóa đó trong mỗi category.
- Lọc từ khóa: bỏ đi các từ khóa ít xuất hiện hoặc không quan trọng.
2.5.2 Đánh trọng số
Trang 10Hình 9: Bảng cơ sở dữ liệu keyword Trong đó:
- keyword_id: lưu trữ id của keyword.
- keyword_name: nội dung từ khóa.
- keyword_category: category có xuất hiện từ khóa.
- keyword_weight: trọng số của từ khóa đối với category được lưu trữ trong
trường keyword_category
2.6 Kết quả, ý nghĩa
Kết quả công trình đạt được đó là nền tảng cơ bản để có thể xác định sở thích truy cập tin tức của người dung, kết hợp với việc đặt ra các luật để từ đó xây dựng hệ thống
dự đoán, gợi ý các tin tức mà người dùng có thể quan tâm
Một số kết quả đã phân tích được trong thực nghiệm:
Hình 10: Form biểu diễn số lần truy cập category theo thời gian
Trang 11Hình 11: Form biểu diễn số lần truy cập từng category theo từng ngày
3 Kết luận
3.1 Hạn chế còn tồn tại
Bên cạnh các kết quả đạt được vẫn còn nhiều hạn chế còn tồn tại:
- Việc phân tích chưa xét đến liên kết giữa các tin tức để có thể đưa ra các tin liên quan
- Keyword chưa được lọc tối ưu, vẫn còn tồn tại các từ không hợp lệ, không có nghĩa
- Keyword chưa phân biệt được danh từ chung và danh từ riêng
3.2 Hướng phát triển
Dựa vào các kết quả đạt được, hướng phát triển sắp tới của công trình sẽ tập trung vào:
- Xác định liên kết (dấu trang) của tin tức
- Hoàn thiện việc trích xuất keyword
- Ghép bộ trích xuất keyword và bộ tiền xử lý để có thể đưa ra các keyword theo
sở thích người dùng
- Xây dựng hệ thống dự đoán sở thích người dùng
Trang 12Tài liệu tham khảo
[1] Gerald Stermsek, Mark Strembeck, Gustaf Neumann A User Profile Derivation
Approach based on Log-File Analysis
[2] Jin Young Kim , Kevyn Collins-Thompson, Paul N Bennett, Susan T Dumais Characterizing Web Content, User Interests, and Search Behavior by Reading Level and Topic