Chỉ mục (Indexing)

Một phần của tài liệu (LUẬN văn THẠC sĩ) sử dụng cơ sở dữ liệu đồ thị trong hệ gợi ý (Trang 38)

5. Nội dung nghiên cứu

1.2.5. Chỉ mục (Indexing)

Hình 1. 11. Tổn quan về CSDL đồ t ị

―Một chỉ mục – đƣợc nối từ các thuộc tính – đến các node hoặc các mối quan hệ‖

Mục đ ch của việc đánh chỉ mục (indexing) là tìm kiếm đƣợc nhanh chóng và ch nh xác trong cơ sở dữ liệu đồ thị.

Ta thấy, một cơ sở dữ liệu đồ thị sẽ quản lý các chỉ mục và đồ thị gồm các node và các cạnh. Đồ thị lƣu trữ thông tin của chúng thông qua các node và các mối quan hệ giữa các node. Các chỉ mục sẽ ánh xạ đến từng node, từng

Traversal

Indexes Graph Algorithm

Paths Relationships Node Properties Graph Database managers

managers navigates identifies

expresses map from map to map to organize have have R ec o rds da ta

mối quan hệ giữa các node, và đến các thuộc tính của các node và các mối quan hệ đó. Để thực hiện truy vấn trong 1 cơ sở dữ liệu đồ thị, ta thực hiện một phép duyệt đồ thị dựa trên một giải thuật để xác định đƣờng đi theo thứ tự của các node.

1.2.5.1. Tạo chỉ mục

- Tạo chỉ mục thuộc t nh đơn tr n các nút: Có thể tạo chỉ mục đƣợc đặt tên trên một thuộc tính cho tất cả các nút có nhãn cụ thể CREATE INDEX

index_name FOR (n:Label) ON (n.property). Lƣu ý rằng chỉ mục

không có sẵn ngay lập tức mà đƣợc tạo ở chế độ nền.

CREATE INDEX node_index_name FOR (n:Person) ON (n.surname)

Lƣu ý rằng tên chỉ mục cần phải là duy nhất.

- Tạo chỉ mục thuộc t nh đơn tr n các mối quan hệ: Có thể tạo chỉ mục đƣợc đặt tên trên một thuộc tính cho tất cả các mối quan hệ có kiểu quan hệ

cụ thể CREATE INDEX index_name FOR ()-[r:TYPE]-() ON

(r.property). Lƣu ý rằng chỉ mục không có sẵn ngay lập tức mà đƣợc tạo ở

chế độ nền.

CREATE INDEX rel_index_name FOR ()-[r:KNOWS]-() ON (r.since)

Lƣu ý rằng tên chỉ mục cần phải là duy nhất.

- Chỉ tạo một chỉ mục thuộc tính duy nhất nếu nó chƣa tồn tại:

CREATE INDEX node_index_name IF NOT EXISTS FOR (n:Person) ON (n.surname)

Lƣu ý rằng chỉ mục sẽ không đƣợc tạo nếu đã tồn tại một chỉ mục có cùng tên, cùng một lƣợc đồ hoặc cả hai.

- Tạo chỉ mục thuộc t nh đơn với indexProvider đƣợc chỉ định

(r.prop1) OPTIONS {indexProvider:'native-btree-1.0'}

- Tạo chỉ mục thuộc t nh đơn với indexConfig đƣợc chỉ định

CREATE BTREE INDEX index_with_config FOR (n:Label) ON (n.prop2) OPTIONS {indexConfig: {`spatial.cartesian.min`: [-100.0, -100.0], `spatial.cartesian.max`: [100.0,100.0]}}

- Tạo chỉ mục tổng hợp cho các nút: Một chỉ mục đƣợc đặt tên trên nhiều thuộc tính cho tất cả các nút có một nhãn cụ thể - tức là một chỉ mục tổng hợp - có thể đƣợc tạo bằng CREATE INDEX index_name FOR

(n:Label) ON (n.prop1, …, n.propN). Chỉ các nút đƣợc gắn nhãn với

nhãn đƣợc chỉ định và chứa tất cả các thuộc t nh trong định nghĩa chỉ mục sẽ đƣợc thêm vào chỉ mục. Lƣu ý rằng chỉ mục tổng hợp không có sẵn ngay lập tức mà đƣợc tạo ở chế độ nền. Câu lệnh sau sẽ tạo một chỉ mục tổng hợp đƣợc đặt tên trên tất cả các nút đƣợc gắn nhãn Person và có cả thuộc tính age và

country:

CREATE INDEX node_index_name FOR (n:Person) ON (n.age, n.country)

Lƣu ý rằng tên chỉ mục cần phải là duy nhất.

- Tạo chỉ mục tổng hợp cho các mối quan hệ: Một chỉ mục đƣợc đặt tên trên nhiều thuộc tính cho tất cả các mối quan hệ có kiểu quan hệ cụ thể - tức là một chỉ mục tổng hợp - có thể đƣợc tạo bằng CREATE INDEX

index_name FOR ()-[r:TYPE]-() ON (r.prop1, …, r.propN). Chỉ

những mối quan hệ đƣợc gắn nhãn với kiểu đƣợc chỉ định và chứa tất cả các thuộc t nh trong định nghĩa chỉ mục mới đƣợc thêm vào chỉ mục. Lƣu ý rằng chỉ mục tổng hợp không có sẵn ngay lập tức mà đƣợc tạo ở chế độ nền. Câu lệnh sau sẽ tạo một chỉ mục tổng hợp đƣợc đặt tên trên tất cả các mối quan hệ đƣợc gắn nhãn PURCHASED và có cả thuộc tính date và amount:

(r.date, r.amount)

Lƣu ý rằng tên chỉ mục cần phải là duy nhất.

- Tạo chỉ mục tổng hợp với indexProvider và indexConfig đƣợc chỉ định:

CREATE INDEX index_with_options FOR (n:Label) ON (n.prop1, n.prop2)

OPTIONS {indexProvider: 'lucene+native-3.0', indexConfig:

{`spatial.wgs-84.min`: [-100.0, -80.0], `spatial.wgs-84.max`:

[100.0, 80.0]}}

- Tạo chỉ mục tra cứu nhãn nút:

CREATE LOOKUP INDEX node_label_lookup_index FOR (n) ON EACH labels(n)

- Tạo chỉ mục tra cứu kiểu quan hệ:

CREATE LOOKUP INDEX rel_type_lookup_index FOR ()-[r]-() ON EACH type(r)

1.2.5.2. Danh sách chỉ mục

Danh sách chỉ mục có thể đƣợc thực hiện với SHOW INDEXES.

Danh sách chỉ mục cũng cho phép sử dụng mệnh đề WHERE và YIELD để lọc các hàng và cột đƣợc trả về.

Ví dụ1: Liệt kê tất cả các chỉ mục

SHOW INDEXES

Ví dụ 2: Liệt kê các chỉ mục có lọc

SHOW BTREE INDEXES WHERE uniqueness = 'NONUNIQUE'

1.2.5.3. Xóa chỉ mục

- Xóa một chỉ mục:

- Xóa một chỉ mục không tồn tại: Nếu không chắc liệu có tồn tại một chỉ mục hay không và ta muốn loại bỏ chỉ mục đó nếu có nhƣng không gặp lỗi, hãy sử dụng:

DROP INDEX missing_index_name IF EXISTS

- Xóa một chỉ mục thuộc t nh đơn lẻ:

DROP INDEX ON :Person(firstname)

- Xóa một chỉ mục tổng hợp:

DROP INDEX ON :Person(age, country)

1.3. Tổng quan về h thống gợi ý

1.3.1. Giới thiệu chung

Theo Charu C. Aggarwal [5], Tầm quan trọng, ảnh hƣởng và ứng dụng ngày càng tăng của Internet, IoT, AI, WWW… nhƣ là một phƣơng tiện phổ biến cho các giao dịch điện tử và kinh doanh đã tạo động lực cho sự phát triển của công nghệ hệ thống gợi ý. Một xúc tác quan trọng trong vấn đề này là sự dễ dàng cho phép ngƣời dùng cung cấp phản hồi về lƣợt thích hoặc không thích của họ. Ví dụ: hãy xem xét kịch bản của một nhà cung cấp nội dung nhƣ Netflix. Trong những trƣờng hợp nhƣ vậy, ngƣời dùng có thể dễ dàng cung cấp phản hồi chỉ với một cú nhấp chuột đơn giản. Một phƣơng pháp điển hình để cung cấp phản hồi là dƣới dạng xếp hạng, trong đó ngƣời dùng chọn các giá trị số từ một hệ thống đánh giá cụ thể (ví dụ: hệ thống xếp hạng năm sao) chỉ định lƣợt thích và không thích của họ đối với các mục khác nhau.

Các hình thức phản hồi khác không hoàn toàn rõ ràng nhƣng thậm chí còn dễ dàng hơn để thu thập hơn trong các mô hình trực tuyến hiện nay. Ví dụ: hành động đơn giản của ngƣời dùng mua hoặc duyệt một mặt hàng có thể đƣợc xem nhƣ một sự chứng thực cho mặt hàng đó. Các hình thức phản hồi nhƣ vậy thƣờng đƣợc sử dụng bởi các thƣơng gia trực tuyến nhƣ

Amazon.com và việc thu thập loại dữ liệu này là hoàn toàn dễ dàng về công việc cần thiết của khách hàng. Ý tƣởng cơ bản của các hệ thống gợi ý là sử dụng các nguồn dữ liệu khác nhau này để suy ra lợi ích của khách hàng. Thực thể mà các gợi ý đƣợc cung cấp đƣợc gọi là ngƣời dùng (users) và sản phẩm đƣợc đề xuất cũng đƣợc gọi là sản phẩm (items). Do đó, phân t ch gợi ý thƣờng dựa trên sự tƣơng tác trƣớc đó giữa ngƣời dùng và các sản phẩm, bởi vì lợi ch và ƣu ti n trong quá khứ thƣờng là các chỉ số tốt về sự lựa chọn trong tƣơng lai. Một ngoại lệ đáng chú ý là trƣờng hợp của các hệ thống gợi ý dựa trên kiến thức, trong đó các gợi ý đƣợc đề xuất tr n cơ sở các yêu cầu do ngƣời dùng chỉ định thay vì lịch sử trƣớc đây của ngƣời dùng.

Vậy, nguyên tắc cơ bản làm nền tảng cho hoạt động của các thuật toán gợi ý là gì? Nguyên tắc cơ bản của các gợi ý là sự phụ thuộc đáng kể tồn tại giữa hoạt động lấy Users và Items làm trung tâm. Ví dụ: ngƣời dùng quan tâm đến một bộ phim tài liệu lịch sử có nhiều khả năng quan tâm đến một bộ phim tài liệu lịch sử khác hoặc một chƣơng trình giáo dục, thay vì một bộ phim hành động. Trong nhiều trƣờng hợp, các danh mục Items khác nhau thể hiện mối tƣơng quan đáng kể với nhau, điều đó có thể đƣợc tận dụng để đƣa ra các gợi ý ch nh xác hơn. Ngoài ra, các phụ thuộc có thể có mặt ở độ chi tiết tốt hơn của các mặt hàng riêng lẻ chứ không phải là danh mục. Những phụ thuộc này có thể đƣợc học theo cách dựa trên dữ liệu từ ma trận xếp hạng và mô hình kết quả đƣợc sử dụng để đƣa ra dự đoán cho ngƣời dùng mục tiêu. Số lƣợng các mục đƣợc xếp hạng có sẵn cho ngƣời dùng càng lớn, càng dễ đƣa ra dự đoán mạnh mẽ về hành vi trong tƣơng lai của ngƣời dùng. Nhiều mô hình học tập khác nhau có thể đƣợc sử dụng để hoàn thành nhiệm vụ này. Ví dụ: hành vi mua hàng hoặc xếp hạng tập thể của nhiều ngƣời dùng khác nhau có thể đƣợc tận dụng để tạo nhóm ngƣời dùng tƣơng tự quan tâm đến các sản phẩm tƣơng tự. Lợi ch và hành động của các nhóm này có thể đƣợc tận dụng

để đƣa ra đề xuất cho từng thành viên của các nhóm này.

Mô tả nói trên dựa trên một nhóm các thuật toán đề xuất rất đơn giản, đƣợc gọi là mô hình láng giềng gần (neighborhood models). Tập hợp này thuộc về một lớp mô hình rộng hơn, đƣợc gọi là lọc cộng tác (collaborative filtering). Thuật ngữ "lọc cộng tác" đề cập đến việc sử dụng xếp hạng từ nhiều

ngƣời dùng theo cách cộng tác để dự đoán xếp hạng bị thiếu. Trong thực tế, các hệ thống gợi ý có thể phức tạp và nhiều dữ liệu hơn, với nhiều loại dữ liệu phụ trợ. Ví dụ: trong các hệ thống gợi ý dựa trên nội dung (content-based recommender systems), nội dung đóng vai trò ch nh trong quá trình gợi ý, trong đó xếp hạng của ngƣời dùng và mô tả thuộc tính của các mục đƣợc tận dụng để đƣa ra dự đoán. Ý tƣởng cơ bản là sở thích của ngƣời dùng có thể đƣợc mô hình hóa dựa trên các thuộc tính (hoặc thuộc tính) của các mục mà họ đã xếp hạng hoặc truy cập trong quá khứ. Một framework khác là các hệ thống dựa trên tri thức (knowledge-based systems), trong đó ngƣời dùng tƣơng tác với sở thích của họ, và đặc điểm kỹ thuật của ngƣời dùng đƣợc kết hợp với miền kiến thức để cung cấp các khuyến nghị. Trong các mô hình nâng cao, dữ liệu theo ngữ cảnh, chẳng hạn nhƣ thông tin thời gian, kiến thức bên ngoài, thông tin vị trí, thông tin xã hội hoặc thông tin mạng, có thể đƣợc sử dụng.

Hệ thống gợi ý (Recommender Systems -RSs) là những công cụ hay kỹ thuật phần mềm cung cấp các gợi ý về các sản phẩm (items) cho ngƣời dùng (users). Các gợi ý này li n quan đến quá trình ra quyết định, nhƣ sản phẩm cần mua, loại âm nhạc cần nghe, hoặc tin tức cần đọc, bộ phim cần xem...

"Items" là một thuật ngữ chung đƣợc sử dụng để chỉ những gì mà hệ thống gợi ý cho ngƣời dùng. Một hệ thống gợi ý thƣờng tập trung vào một loại sản phẩm cụ thể (ví dụ, đĩa CD, tin tức, dịch vụ …) và do đó sự thiết kế, giao diện đồ họa (GUI) và kỹ thuật cốt lõi đƣợc sử dụng để tạo ra gợi ý có

thể tùy chỉnh để cung cấp các gợi ý hữu ích và cụ thể về một loại sản phẩm. Trong phạm vi luận văn này, thuât ngữ ―sản phẩm‖ sẽ đƣợc dùng thay thế cho từ ―item‖.

Vào giữa thập niên 1990, hệ thống gợi ý đƣợc xem nhƣ là một lĩnh vực nghiên cứu độc lập khi bắt đầu tập trung vào những vấn đề li n quan đến gợi ý mà phụ thuộc rõ ràng những cấu trúc trọng số. Trong hầu hết các trƣờng hợp, gợi ý đƣợc đƣa về việc đánh giá trọng số cho những sản phẩm mà ngƣời dùng chƣa chọn lựa (sử dụng)

Trong hình thức đơn giản nhất, các gợi ý mang tính cá nhân hóa cung cấp một danh sách các sản phẩm đã đƣợc xếp hạng. Để thực hiện việc xếp hạng này, hệ thống gợi ý cố gắng dự đoán các sản phẩm hoặc dịch vụ phù hợp nhất dựa trên sở thích của ngƣời dùng. Để hoàn thành một công việc nhƣ thế, hệ thống gợi ý thu thập sở thích của các ngƣời dùng, bằng cách dựa trên các xếp hạng của họ về các sản phẩm hoặc đƣợc suy diễn từ các hành động của ngƣời dùng. Ví dụ, một hệ thống gợi ý có thể xem xét việc một ngƣời dùng xem thông tin trên website của một trang sản phẩm nhƣ là một dấu hiệu ngầm định về sở thích của ngƣời đó đối với sản phẩm tr n trang đó.

1.3.2. Ứng dụng của hệ thống gợi ý

Phạm vi ứng dụng của hệ thống gợi ý lựa chọn là rất rộng. Trong thƣơng mại điện tử, hầu hết các hệ thống này là các hệ thống bán sách, giới thiệu phim, tin tức, đĩa CD ca nhạc, các trang Web...

 Phim: Firefly, MovieCritic, MovieLens, Mangarate, Morse  Âm nhạc: Firefly, CdNow

 Sách: Amazon, Barnes&Noble

 Web: Webwatcher, Webfilter, Webwasher, Select, Webdoggie, Gustos

 BIRD, ChaffAway

 Tin tức: Shift, Infoscan, NewsSieve, Borger, RAMA, GroupLens.

 Tài liệu: Fab

 Thƣơng mại điện tử: TripMatcher (du lịch), ShopMatcher, E- Markets

 Các ứng dụng khác…

1.3.3. Bài toán gợi ý

Theo [5], trong hầu hết các trƣờng hợp, bài toán gợi ý đƣợc coi là bài toán ƣớc lƣợng đánh giá (rating) của các sản phẩm (phim, CD, sách, nhà hàng,…) chƣa đƣợc ngƣời dùng xem xét. Việc ƣớc lƣợng này thƣờng dựa trên các đánh giá đã có của ch nh ngƣời dùng đó hoặc những ngƣời dùng khác. Những sản phẩm có hạng cao nhất sẽ đƣợc dùng để gợi ý.

Một cách hình thức, bài toán gợi ý được mô tả như sau:

Gọi U là tập các ngƣời dùng (Users) của hệ thống.

Gọi I là toàn bộ không gian đối tƣợng sản phẩm (Items).

Hàm r(u,i) là đánh giá (rating) của ngƣời dùng u với sản phẩm i.

Trong hệ thống gợi ý, độ phù hợp của một sản phẩm thƣờng đƣợc cho bằng điểm, ví dụ ngƣời dùng A đánh giá bộ phim Star war 3 đƣợc điểm 7/10, hoặc đánh giá theo sao 3/5 sao. Tuy nhi n, nhìn chung độ phù hợp có thể là một hàm bất kì tùy thuộc vào ứng dụng cụ thể. Giá trị của r có thể đƣợc xác định bởi ngƣời dùng hoặc đƣợc tính toán bởi công thức nào đó. Mỗi ngƣời dùng trong không gian U đƣợc xác định bởi một hồ sơ (profile). Hồ sơ này có thể gồm rất nhiều loại thông tin: tuổi, giới tính, thu nhập, … hoặc có thể chỉ gồm một mã ngƣời dùng (user id) duy nhất. Tƣơng tự, mỗi sản phẩm trong không gian I cũng đƣợc xác định bởi một tập các đặc trƣng. V dụ, trong hệ thống gợi ý phim, đặc trƣng của mỗi bộ phim có thể là : tên phim, thể loại,

đạo diễn, năm sản xuất, diễn vi n ch nh … Vấn đề chính của hệ thống gợi ý là r không đƣợc xác định trên toàn không gian U × I mà chỉ trên một miền nhỏ của không gian đó. Điều này dẫn tới việc hàm r phải đƣợc ngoại suy trong không gian U I. Thông thƣờng, độ phù hợp đƣợc thể hiện bằng điểm và chỉ xác định trên tập các sản phẩm đã từng đƣợc ngƣời dùng đánh giá từ trƣớc. Ví dụ, bảng 1 mô tả đánh giá của một số ngƣời dùng với các phim mà họ đã xem (thang điểm từ 1-5, kí hiệu Ø nghĩa là bộ phim chƣa đƣợc ngƣời dùng đánh giá). Từ những thông tin đó, hệ thống gợi ý phải dự đoán điểm cho các bộ phim chƣa đƣợc ngƣời dùng đánh giá, từ đó đƣa ra những gợi ý phù hợp nhất.

Bản 1. 6. M n ọa đán á a n ƣờ dùn về 1 số ộ p đã xe

Harry Potter X-Men Iron Man Spider Man

User A 3 Ø 5 Ø

User B 2 1 Ø Ø

User C Ø 5 2 4

1.4. Một số p ƣơn p áp ợi ý

Có rất nhiều cách để dự đoán, ƣớc lƣợng hạng/điểm cho các sản phẩm nhƣ sử dụng học máy, lí thuyết xấp sỉ, các thuật toán dựa trên kinh nghiệm … Theo [5], các hệ thống tƣ vấn thƣờng đƣợc phân thành ba loại:

˗ Phƣơng pháp Gợi ý dựa trên nội dung (content-based): Ngƣời

Một phần của tài liệu (LUẬN văn THẠC sĩ) sử dụng cơ sở dữ liệu đồ thị trong hệ gợi ý (Trang 38)

Tải bản đầy đủ (PDF)

(78 trang)