데이터베이스 집계는 어떻게 monoid를 형성합니까?


11

cs.stackexchange 나는에 대해 질문 algebird 가 추상 대수학 패키지를 필요한 이유에 대한 추측, GitHub의에 스칼라 라이브러리.

github 페이지에는 몇 가지 단서가 있습니다.

Bloom 필터, HyperLogLog 및 CountMinSketch와 같은 흥미로운 근사 알고리즘을위한 Monoids 구현. 이를 통해 숫자처럼 복잡한 작업을 생각하고 hadoop 또는 온라인에 추가하여 강력한 통계 및 분석을 생성 할 수 있습니다.

그리고 GitHub 페이지의 다른 부분에서 :

원래 Scalding의 Matrix API의 일부로 개발되었습니다. 여기서 행렬에는 Monoids, Groups 또는 Rings의 요소 인 값이 있습니다. 결과적으로 코드가 Scalding 및 Twitter 내의 다른 프로젝트에서 더 광범위하게 적용되었다는 것이 분명했습니다.

트위터의 오스카 보이 킨 (Oskar Boykin)조차도

주요 대답은 세미 그룹 구조를 활용함으로써 기본 작업을 알지 않고도 올바르게 병렬화되는 시스템을 구축 할 수 있다는 것입니다 (사용자는 유망한 연관성을 나타냄).

Monoid를 사용하면 희소성을 활용할 수 있습니다 (일부 Monoid에서는 거의 모든 값이 0 인 많은 희소 행렬을 처리합니다).

반지를 사용하면 숫자 이외의 것 (때로는 우리가 한 것)에 대해 행렬 곱셈을 할 수 있습니다.

algebird 프로젝트 자체 (문제 내역뿐만 아니라)는 여기에서 무슨 일이 일어나고 있는지 명확하게 설명합니다. 우리는 대규모 데이터 세트 집계를위한 많은 알고리즘을 구축하고 있으며 운영 구조를 활용하여 시스템 측면에서 승리합니다. (일반적으로 1000 개의 노드에서 알고리즘을 생산하려고 할 때 어려움이 있습니다).

Semigroup / Monoid / Group / Ring에 대해 시스템 문제를 한 번 해결 한 다음 Memcache, Hadoop, Storm 등을 생각하지 않고도 알고리즘을 연결할 수 있습니다.

어떻게하다 Bloom filters/ hyperloglog/ countminsketch번호와 같은?

데이터베이스 집계가 단일 구조를 갖는 것은 어떻습니까?
이 monoid는 어떻게 생겼습니까? 그들은 그룹 구조를 가지고 있습니까?

문헌 참조가 도움이 될 것입니다.


또한 누군가 "단일체에서 거의 모든 값이 0 인 희소 행렬"연결을 스케치 할 수 있습니까?
vzn

@vzn. 0은 신원입니다. 따라서 일부 요소 와 0이 함께 나타날 때마다 계산해야하는 수고를 수 있습니다 ( ). 행렬이 희소 한 경우 많은 계산을 "건너 뛰기"때문에 속도를 높일 수 있습니다. 이자형이자형0=이자형
Nicholas Mancuso

@nicholas 다른 말로 monoids로 표현 될 수있는 희소 행렬? 위키로부터 (이는 ... 모든 행렬 아님) DEF 모노 이드 명백하게 monoids 형태로, "모든 세트 . 주어진 링 위에 매트릭스를 동작과 매트릭스 부가 또는 매트릭스 곱셈" ×
vzn

@vzn, 행렬 안에 요소가 없습니다.
Nicholas Mancuso

답변:


14

데이터베이스 집계가 단일 구조를 갖는 이유를 묻습니다.

.

.(.).=.(.)

숫자 0 또는 1, 빈 문자열, 항등 행렬, 균일 분포 또는 공집합인지 여부에 관계없이 거의 항상 일종의 동일성이 있습니다. 실제로 데이터는 일반적으로 단일체를 형성합니다 .

데이터를 단일체 (monoid)를 형성하는 것으로 생각하는 것에 대한 실질적인 요점은 공통 대수 언어를 사용하여 다른 종류의 데이터에 대한 연산을 논의 할 수있는 방법을 제공한다는 것입니다. 그런 다음 적절한 집계 연산을 인수로 전달하여 모든 모노 이드를 처리 할 수있는 일반 코드 라이브러리로 변환합니다.

많은 종류의 데이터에는 역수가 없기 때문에 그룹 구조가 너무 많이 기대됩니다. 그룹 구조가있는 경우 데이터를 조작하는 몇 가지 추가 방법이 가능하지만 곱셈이있는 행렬이나 더하기가있는 양의 정수에 역수가 없으므로 그룹화되지 않은 데이터는 일반적입니다.

+..+.

구속 조건 만족 커뮤니티에서 한동안 반올림 한 데이터 집계 모델이 사용되었습니다. 제약 조건 만족 문제 인스턴스는 특정 사실 데이터베이스에 대한 연결 쿼리이므로 매우 일반적입니다. 데이터에 대한 대부분의 실제 쿼리는 연결입니다.

  • Stefano Bistarelli, Ugo Montanari 및 Francesca Rossi, 반 반지 기반 구속 조건 만족 및 최적화 , JACM 44 (2), 1997, 201–236. 도 : 10.1145 / 256303.256306

데이터 수집의 세미 링 모델에 대한 이론적 분석에 대한 현재의 분출은 2007 년, 출처 의 맥락에서 시작되었다 . Provenance는 데이터에 주석을 달기위한 멋진 용어입니다. 데이터베이스 튜플은 고유 한 튜플 식별자에 적용된 주석으로 볼 수 있으므로 데이터 집계는 주석의 조합으로 볼 수 있습니다. 따라서 입증은 데이터 집계 아이디어를 일반화 한 것이며 주석을 결합하는 올바른 이론적 모델은 반올림이라고 명시 적으로 주장했다. 출처 다항식의 가장 일반적인 반반지는 실제로 구성 요소에서 데이터 조각을 얻은 방법에 대한 전체 기록을 추적 할 수있게합니다. 예를 들어 p- 값임상 시험의 분석에서 각각의 개별 시험 결과로부터 어떻게 계산되었는지 추적 할 수 있습니다. 그들 중 일부가 잘못 (또는 가짜) 것으로 판명되면 나쁜 데이터없이 간단히 다시 계산할 수 있습니다.

  • Todd J. Green, Grigoris Karvounarakis 및 Val Tannen, Provenance semirings , PODS 2007, 31–40. 도 : 10.1145 / 1265530.1265535

세미 링을 사용하여 데이터를 집계하는 추가 작업이 많이있었습니다 . 이 논문을 인용하십시오 .

인용하는보다 실질적인 관점에서 예를 들어, 기본 반올림 식을 적절히 그룹화하여 계산을 효과적으로 병렬화 할 수있는 방법에 대한 GDL 프레임 워크를 참조하십시오.

  • Srinivas M. Aji와 Robert J. McEliece, 일반화 된 분배 법 , IEEE 정보 이론에 관한 거래 46 (2), 2000, 325-343. 도 : 10.1109 / 18.825794
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.