Làm thế nào để tập hợp cơ sở dữ liệu tạo thành một monoid?


11

Trên cs.stackexchange tôi đã hỏi về thư viện alalaird scala trên github, suy đoán tại sao họ có thể cần một gói đại số trừu tượng.

Trang github có một số manh mối:

Việc triển khai Monoids cho các thuật toán xấp xỉ thú vị, chẳng hạn như bộ lọc Bloom, HyperLogLog và CountMinSketch. Điều này cho phép bạn nghĩ về các hoạt động tinh vi như bạn có thể đánh số và thêm chúng vào hadoop hoặc trực tuyến để tạo ra số liệu thống kê và phân tích mạnh mẽ.

và trong một phần khác của trang GitHub:

Ban đầu nó được phát triển như một phần của API Ma trận của Scalding, trong đó Ma trận có các giá trị là các thành phần của Đơn sắc, Nhóm hoặc Nhẫn. Sau đó, rõ ràng là mã có ứng dụng rộng hơn trong phạm vi mở rộng và trên các dự án khác trong Twitter.

Ngay cả Oskar Boykin của Twitter cũng theo đuổi:

Câu trả lời chính là bằng cách khai thác cấu trúc bán nhóm, chúng ta có thể xây dựng các hệ thống song song chính xác mà không cần biết hoạt động cơ bản (người dùng đang hứa hẹn khả năng kết hợp).

Bằng cách sử dụng Monoids, chúng ta có thể tận dụng độ thưa thớt (chúng ta xử lý rất nhiều ma trận thưa thớt, trong đó hầu như tất cả các giá trị đều bằng 0 trong một số Monoid).

Bằng cách sử dụng Nhẫn, chúng ta có thể thực hiện phép nhân ma trận đối với những thứ khác ngoài số (mà đôi khi chúng ta đã thực hiện).

Bản thân dự án aloltird (cũng như lịch sử vấn đề) giải thích khá rõ ràng những gì đang diễn ra ở đây: chúng tôi đang xây dựng rất nhiều thuật toán để tổng hợp các tập dữ liệu lớn và tận dụng cấu trúc của các hoạt động giúp chúng tôi giành chiến thắng về phía hệ thống (thường là điểm đau khi cố gắng sản xuất thuật toán trên 1000 nút).

Giải quyết các vấn đề hệ thống một lần cho bất kỳ Semigroup / Monoid / Group / Ring, và sau đó bạn có thể cắm bất kỳ thuật toán nào mà không phải suy nghĩ về Memcache, Hadoop, Storm, v.v.

Làm thế nào là Bloom filters/ hyperloglog/ countminsketchthích số?

Làm thế nào mà tập hợp cơ sở dữ liệu có cấu trúc đơn hình?
Monoid này trông như thế nào? Họ có bao giờ có cấu trúc nhóm?

Tài liệu tham khảo văn học sẽ hữu ích.


ai đó cũng có thể phác thảo ra kết nối "ma trận thưa thớt trong đó hầu như tất cả các giá trị đều bằng 0"?
vzn

ee0=e

n×n

@vzn, không có các yếu tố bên trong ma trận.
Nicholas Mancuso

Câu trả lời:


14

Bạn hỏi tại sao tập hợp cơ sở dữ liệu có cấu trúc đơn hình.

ababa.b

.(a.b).c=a.(b.c)

Hầu như luôn luôn có một số loại danh tính, cho dù đó là số 0 hoặc 1, chuỗi rỗng, ma trận danh tính, phân phối đồng nhất hoặc tập hợp trống, phụ thuộc vào hoạt động. Vì vậy, trong thực tế dữ liệu thường tạo thành một monoid .

Điểm thực tế về suy nghĩ dữ liệu khi hình thành một monoid là nó cung cấp một cách để thảo luận về các hoạt động trên các loại dữ liệu khác nhau bằng cách sử dụng một ngôn ngữ đại số phổ biến. Điều này sau đó chuyển thành các thư viện mã chung có thể xử lý bất kỳ đơn sắc nào, bằng cách chuyển một hoạt động tổng hợp thích hợp làm đối số.

Lưu ý rằng nhiều loại dữ liệu không có nghịch đảo, do đó, một cấu trúc nhóm là quá nhiều để hy vọng. Nếu bạn có cấu trúc nhóm thì một số cách bổ sung để thao tác dữ liệu trở nên khả thi, nhưng vì không phải ma trận với phép nhân, cũng không phải số nguyên dương với phép cộng có nghịch đảo, dữ liệu không có cấu trúc nhóm là khá phổ biến.

+..+.

Một mô hình tổng hợp dữ liệu đã xuất hiện trong cộng đồng hài lòng ràng buộc trong một thời gian. Lưu ý rằng một trường hợp vấn đề thỏa mãn ràng buộc là một truy vấn kết hợp trên một cơ sở dữ liệu cụ thể của sự kiện, vì vậy điều này khá chung chung: hầu hết các truy vấn thực tế đối với dữ liệu là kết hợp.

  • Stefano Bistarelli, Ugo Montanari và Francesca Rossi, sự hài lòng và tối ưu hóa ràng buộc dựa trên Semires, JACM 44 (2), 1997, 201 Lỗi236. doi: 10.1145 / 256303.256306

Sự phát triển hiện tại của phân tích lý thuyết về mô hình tổng hợp dữ liệu đã được bắt đầu vào năm 2007, trong bối cảnh xuất xứ . Provenance là một thuật ngữ ưa thích để chú thích dữ liệu. Vì bất kỳ bộ dữ liệu nào cũng có thể được xem là chú thích được áp dụng cho một số định danh bộ dữ liệu duy nhất, nên việc tổng hợp dữ liệu có thể được xem như là sự kết hợp của các chú thích. Do đó, chứng minh là một khái quát của ý tưởng tổng hợp dữ liệu và rõ ràng người ta đã lập luận rằng mô hình lý thuyết đúng đắn của việc kết hợp các chú thích là một nửa. Các đa thức tổng quát nhất, của đa thức xuất xứ, thực sự cho phép người ta theo dõi toàn bộ lịch sử về cách một phần dữ liệu được lấy từ các bộ phận cấu thành. Ví dụ: giá trị ptrong phân tích một thử nghiệm lâm sàng có thể theo dõi cách tính toán từ từng kết quả thử nghiệm riêng lẻ. Nếu một số trong số chúng hóa ra là sai (hoặc giả) thì người ta có thể chỉ cần tính toán lại mà không có dữ liệu xấu.

  • Todd J. Green, Grigoris Karvounarakis và Val Tannen, semirings semvenings , PODS 2007, 31 Phản40 . doi: 10.1145 / 1265530.1265535

Đã có rất nhiều công việc tiếp theo sử dụng semirings để tổng hợp dữ liệu, xem các tài liệu trích dẫn này .

Từ quan điểm thực tế ngay lập tức mà bạn trích dẫn, hãy xem, ví dụ khung GDL để biết cách người ta có thể song song hóa một cách hiệu quả một tính toán bằng cách nhóm một cách phù hợp biểu thức semires bên dưới.

  • Srinivas M. Aji và Robert J. McEliece, Luật phân phối tổng quát , Giao dịch của IEEE về Lý thuyết thông tin 46 (2), 2000, 325 Phản ứng. doi: 10.1109 / 18.825794
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.