Veritabanı toplama işlemleri nasıl bir monoid oluşturur?


11

Açık cs.stackexchange İstediğim algebird onlar soyut cebir paketi gerekebilir neden spekülasyon, github scala kütüphanesine.

Github sayfasının bazı ipuçları var:

Bloom filtresi, HyperLogLog ve CountMinSketch gibi ilginç yaklaşım algoritmaları için Monoid uygulamaları. Bunlar, sayıları yapabileceğiniz gibi bu karmaşık işlemleri düşünmenizi ve güçlü istatistikler ve analizler oluşturmak için bunları hadoop veya çevrimiçi olarak eklemenizi sağlar.

ve GitHub sayfasının başka bir bölümünde:

Başlangıçta Scalding'in Matrix API'sının bir parçası olarak geliştirildi, burada Matrisler Monoidler, Gruplar veya Halkaların öğeleri olan değerlere sahipti. Daha sonra, kodun Scalding içinde ve Twitter'daki diğer projelerde daha geniş bir uygulamaya sahip olduğu açıktı.

Twitter'dan Oskar Boykin bile şöyle konuştu:

Temel cevap, yarı grup yapısından yararlanarak, temeldeki işlemi bilmeden doğru bir şekilde paralelleşen sistemler oluşturabilmemizdir (kullanıcı ilişkilendirme vaat ediyor).

Monoidleri kullanarak, sparlılıktan yararlanabiliriz (bazı Monoidlerde neredeyse tüm değerlerin sıfır olduğu birçok seyrek matrisle ilgileniriz).

Halkaları kullanarak, sayılar dışındaki şeyler üzerinde matris çarpımı yapabiliriz (ki bu arada yaptık).

Cebir kuşağı projesinin kendisi (ve ayrıca sorun geçmişi) burada neler olup bittiğini oldukça açık bir şekilde açıklıyor: büyük veri kümelerinin toplanması için çok fazla algoritma oluşturuyoruz ve işlemlerin yapısından yararlanmak, sistem tarafında bize bir kazanç sağlıyor (1000 düğüm üzerinde algoritmalar üretmeye çalışırken genellikle ağrı noktasıdır).

Herhangi bir Semigroup / Monoid / Group / Ring için sistem sorunlarını bir kez çözün ve sonra Memcache, Hadoop, Storm vb.

Bloom filters/ hyperloglog/ countminsketchLike numaraları nasıl ?

Veritabanı toplamalarının monoidal bir yapısı nasıl olur?
Bu monoid neye benziyor? Hiç grup yapıları var mı?

Literatür referansları faydalı olacaktır.


Ayrıca birisi bağlantı "bir monoid neredeyse tüm değerlerin sıfır olduğu seyrek matrisler" taslak olabilir?
vzn

ee0=e

n×n

@vzn, matrisin içindeki elementler yok.
Nicholas Mancuso

Yanıtlar:


14

Veritabanı toplamalarının neden monoidal yapıya sahip olduğunu soruyorsunuz.

ababa.b

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

Neredeyse her zaman bir tür kimlik vardır, ister 0 veya 1 sayısı, ister boş dize, bir kimlik matrisi, birörnek dağılım veya işleme bağlı olan boş küme olsun. Aslında veriler genellikle bir monoid oluşturur .

Verilerin bir monoid oluşturmak gibi düşünülmesine ilişkin pratik nokta, ortak bir cebir dili kullanarak farklı veri türleri üzerindeki işlemleri tartışmanın bir yolunu sağlamasıdır. Bu daha sonra herhangi bir monoid ile başa çıkabilen genel kod kütüphanelerine, sadece uygun bir toplama işlemini argüman olarak ileterek dönüşür.

Birçok veri türünün tersi olmadığına dikkat edin, bu nedenle bir grup yapısı ümit etmek için çok fazladır. Grup yapınız varsa, verileri manipüle etmek için bazı ek yollar mümkün olur, ancak ne çarpma ile matrisler ne de toplama ile pozitif tamsayıların tersi olmadığından, grupla yapılandırılmamış veriler oldukça yaygındır.

+..+.

Kısıtlı bir veri toplama modeli kısıtlama memnuniyeti topluluğunda bir süredir kullanılmaktadır. Bir kısıtlama memnuniyeti sorunu örneğinin belirli bir olgu veritabanı üzerinden konjonktif bir sorgu olduğunu unutmayın, bu oldukça geneldir: veriler üzerinde en pratik sorgular konjonktiftir.

  • Stefano Bistarelli, Ugo Montanari ve Francesca Rossi, Semiring tabanlı kısıtlama memnuniyeti ve optimizasyonu , JACM 44 (2), 1997, 201-236. doi: 10.1145 / 256303.256306

Veri toplama modelinin dönemsel modelinin teorik analizine ilişkin akım, 2007 yılında provenans bağlamında başlatılmıştır . Provenance, verilere açıklama eklemek için kullanılan süslü bir terimdir. Herhangi bir veritabanı grubu, bazı benzersiz grup tanımlayıcılarına uygulanan detaylandırmalar olarak görülebildiğinden, verilerin toplanması sadece açıklamaların kombinasyonu olarak görülebilir. Dolayısıyla, kanıtlama, verileri birleştirme fikrinin genelleştirilmesidir ve ek açıklamaları birleştirmenin doğru teorik modelinin bir dönem olduğu açıkça belirtilmiştir. Provenans polinomlarının en genel vadesi, aslında bir parçanın kurucu parçalardan nasıl bir veri elde edildiğinin tüm geçmişini takip etmesine izin verir. Örnek olarak, bir p değeribir klinik araştırmanın analizinde, her bir bireysel çalışma sonucundan nasıl hesaplandığını takip edebilir. Bazıları yanlış (veya sahte) çıkıyorsa, o zaman sadece kötü veriler olmadan yeniden hesaplanabilir.

  • Todd J. Green, Grigoris Karvounarakis ve Val Tannen, Provenance semirings , PODS 2007, 31-40. doi: 10.1145 / 1265530.1265535

Verileri toplamak için semirings kullanarak daha fazla çalışma yapıldı, buna değinen makalelere bakın .

Alıntı yaptığınız daha pratik bir bakış açısından, örneğin, altta yatan terimli ifadeyi uygun şekilde gruplayarak bir hesaplamanın nasıl etkili bir şekilde paralelleştirilebileceğine ilişkin GDL çerçevesine bakın.

  • Srinivas M. Aji ve Robert J. McEliece, Genelleştirilmiş dağıtım hukuku , IEEE Bilgi Teorisi İşlemleri 46 (2), 2000, 325-343. doi: 10.1109 / 18.825794
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.