データベース集約はどのようにしてモノイドを形成しますか?


11

cs.stackexchange私はについて尋ねalgebird彼らは抽象代数パッケージを必要とするかもしれない理由を推測、githubの上でScalaのライブラリ。

githubページにはいくつかの手がかりがあります。

ブルームフィルター、HyperLogLog、CountMinSketchなどの興味深い近似アルゴリズム用のモノイドの実装。これらにより、これらの洗練された操作を数字のように考えることができ、強力な統計と分析を生成するためにそれらをhadoopまたはオンラインで合計できます。

GitHubページの別の部分で:

元々は、ScaldingのMatrix APIの一部として開発されたもので、マトリックスには、モノイド、グループ、またはリングの要素である値がありました。その後、Scalding内およびTwitter内の他のプロジェクトでコードがより広範なアプリケーションを持つことが明らかになりました。

TwitterのOskar Boykinでさえ、

主な答えは、セミグループ構造を活用することで、基になる操作を知らなくても正しく並列化するシステムを構築できることです(ユーザーは結合性を約束しています)。

モノイドを使用することで、スパース性を利用できます(モノイドではほとんどすべての値がゼロである多数のスパース行列を扱います)。

リングを使用することにより、数値以外の行列乗算を実行できます(場合によっては実行しました)。

algebirdプロジェクト自体(および問題の履歴)は、ここで何が行われているのかをかなり明確に説明しています。 (これは通常、数千のノードでアルゴリズムを生産しようとするときの問題点です)。

セミグループ/モノ/グループ/リングについてシステムの問題を一度解決すれば、Memcache、Hadoop、Stormなどを考えずにアルゴリズムをプラグインできます。

どのようにしているBloom filters/ hyperloglog/ countminsketch番号など?

データベース集約がモノイダル構造を持っているのはどうですか?
このモノイドはどのように見えますか?彼らはグループ構造を持っていますか?

文献の参照が役立ちます。


また、誰かが「モノイドでほとんどすべての値がゼロである疎行列」という接続をスケッチできますか?
vzn

ee0=e

n×n

@vzn、マトリックス内の要素なし。
ニコラスマンクー

回答:


14

データベース集約がモノイダル構造を持っている理由を尋ねます。

ababa.b

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

ほとんどの場合、操作に応じて、番号0または1、空の文字列、単位行列、一様分布、または空のセットのいずれかの種類があります。したがって、実際にはデータは通常モノイドを形成します。

モノイドを形成するものとしてデータを考えることに関する実際的なポイントは、一般的な代数言語を使用して、異なる種類のデータの操作を議論する方法を提供することです。これは、適切な集約操作を引数として渡すだけで、あらゆるモノイドを処理できる汎用コードライブラリに変換されます。

多くの種類のデータには逆関数がないため、グループ構造はあまりにも期待できないことに注意してください。グループ構造がある場合、データを操作するいくつかの追加の方法が可能になりますが、乗算を伴う行列も加算を伴う正の整数も逆行列を持たないため、非グループ構造化データは非常に一般的です。

+..+.

データ集約の半環モデルは、しばらくの間制約充足コミュニティにありました。制約充足問題インスタンスは、ファクトの特定のデータベースに対する連言クエリであるため、これは非常に一般的であることに注意してください。データに対する最も実用的なクエリは連言です。

  • ステファノ・ビスタレッリ、ウーゴ・モンタナリ、フランチェスカ・ロッシ、 セミリングベースの制約充足と最適化、JACM 44(2)、1997、201–236。土井:10.1145 / 256303.256306

データ集約のセミリングモデルの現在の理論的分析の急増は、出所のコンテキストで2007年に開始されました。出所は、データに注釈を付けるための凝った用語です。データベースのタプルは、一意のタプル識別子に適用される注釈と見なすことができるため、データの集約は注釈の単なる組み合わせと見なすことができます。したがって、出所はデータを集約するという考え方の一般化であり、アノテーションを結合する正しい理論モデルは半環であると明確に主張されています。起源多項式の最も一般的な半環により、実際には、構成要素からデータが取得された方法の全履歴を追跡することができます。例として、p値臨床試験の分析では、個々の試験結果のそれぞれからどのように計算されたかを追跡できます。それらの一部が間違っている(または偽)であることが判明した場合、不良データなしで単純に再計算できます。

  • トッド・J.グリーン、Grigoris Karvounarakis、およびヴァルTannen、産地semirings、PODS 2007、31-40。土井:10.1145 / 1265530.1265535

セミリングを使用してデータを集計するために、さらに多くの作業が行われています。これを引用し論文を参照してください。

あなたが引用するより実用的な観点から、例えば、基礎となる半環式を適切にグループ化することにより計算を効果的に並列化する方法についてはGDLフレームワークを参照してください。

  • Srinivas M. Aji and Robert J. McEliece、The Generalized Distributive Law、 IEEE Transactions on Information Theory 46(2)、2000、325–343。土井:10.1109 / 18.825794
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.