Thank you for your review and feedback. We respond to your questions and comments below.
We apologize for any unclear wording or details. Below, we address your questions directly. Additionally, we have revised the pseudocode and expanded the explanation of the algorithm in Section 3 (maximum coverage) in the revised version of the paper to provide greater clarity.
We also thank you for highlighting these works ([1], [2], and [3]). We note that the referenced studies pertain to the dynamic model, which differs from the streaming model. In the dynamic model, the primary focus is on time complexity, whereas in the streaming model, the emphasis is on achieving sublinear space (though our algorithms also attain sublinear update time). In the revised version of the paper, we have added a brief discussion in the introduction to clarify the distinctions between the dynamic and streaming models.
While we do not run our experiments on a turnstile stream, our primary goal for the proposed linear sketch was to show significant runtime improvements with small memory. We therefore demonstrated these improvements in our experiments all while keeping good comparative accuracy to previous work which used linear memory and time. Since our algorithm is a linear sketch, it will work on any ordering of the entries. In addition, it will accommodate any ordering of updates to the matrix it is applied to.
We now respond to your questions.
1) We do not require the model to be strict-turnstile. Updates take the form $(i, j, +1)$ or $(i, j, -1)$, meaning we either add $1$ or subtract $1$ from entry $(i,j)$ of the input matrix $A$. In addition, our algorithm can support entries of $A$ being both negative and positive. In maximum coverage, we take any non-zero value (including a negative value) at entry $(i,j)$ to mean that item $i$ is covered by subset $j$.
2) We apologize for the typo, and you are correct that we use $L_0$ sketches. To improve clarity, we have revised both the pseudocode and the proof in Section 4 in the revised version.
3) We apologize for any unclear wording. In the revised Section 3, we have improved clarity by reorganizing the explanation. We first describe our algorithm in a non-streaming and non-low space setting, where we assume direct access to the matrix $A$ in its final state (i.e., no further updates). Here, we prove the algorithm's correctness. We then proceed step by step to demonstrate how to implement this algorithm as a linear sketch that accommodates updates where we detail what is stored in each step.
In response to your question, for maximum coverage, we interpret the input matrix $A$ as consisting of nonzeros and 0’s. If entry $(i,j)$ is $0$ in $A$, that means that $j$ does not cover item $i$. If entry $(i,j)$ is $1$ in $A$, that means that $j$ does cover $i$. Note that you can indeed think of any nonzero as a 1 for this purpose. We include nonzeros to make our algorithm more general and also because it is useful for our targeted fingerprinting application.
The algorithm proceeds as follows. We first subsample rows of the input matrix $A$ to form a smaller submatrix $A’$. Importantly, we do not explicitly store these subsampled rows that form $A’$. Rather, we use a hash function to keep track of whether a row has been subsampled to form $A’$. This hash function uses only logarithmic bits of space. Then, whenever an update comes, the run that considers submatrix $A’$ only considers updates to $A’$ (rather than all updates).
Now, consider $A’$. Each row of $A’$ is hashed to a bucket. Again, these rows are not stored explicitly as doing so would require too much space. Instead, we keep a hash function to keep track of which bucket a row has been hashed to. Consider an individual bucket. Suppose that the rows hashed here are those corresponding to items 1, 4, and 5. Then, in this bucket, we will only consider updates to entries that are in the 1st, 4th, or 5th rows. Now, we think of vector $v$ in the following way. Concatenate rows 1,4, and 5 such that the first entries of $v$ are those of row $1$, the next entries are of row $4$, and the last entries are of row $5$. We again do not store $v$ explicitly but instead store $L_0$ samplers for $v$. Each $L_0$ sampler uniformly at random holds a nonzero entry of $v$. These samplers dynamically update to ensure uniformity as updates occur.
In Line 23, we examine all the nonzero entries stored in the $L_0$ samplers that we stored. To construct the final sketch, our goal is to retain ~$d/k$ nonzero entries per row within the subsampled universe $A’$. However, some rows may have started off with fewer nonzero entries (or had none at all). This if statement is accounting for this possibility.
4) This was answered in the response to question 3.
We continue our responses in the next official comment.