question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Non-symmetric DPP sampler

See original GitHub issue

I’m finding a sampling method that can simulate attractive behaviors of given points (finite) rather than repulsive behaviors as in symmetric DPP. I found some papers studying how to learn a non-symmetric kernel of DPP that can model both repulsive and attractive behaviors.

  • Gartrell, Mike, et al. “Learning nonsymmetric determinantal point processes.” arXiv preprint arXiv:1905.12962 (2019).
  • Brunel, Victor-Emmanuel. “Learning signed determinantal point processes through the principal minor assignment problem.” Proceedings of the 32nd International Conference on Neural Information Processing Systems. 2018.

It seems that L need not be symmetric, provided that it is a P0-matrix. Furthermore, if L is K_ij * K_ji < 0, then item i and item j attract each other ( P({i, j} \in Y) > P(i \in Y)P(j \in Y) ).

How can I implement DPP(L) with L is a skew-symmetric matrix? It seems that I cannot use eigendecomposition since the eigenvalues of a real skew-symmetric matrix are purely imaginary, Could I use the MCMC instead?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
guilgautiercommented, Nov 25, 2021

The class of DPPs is stable under some set operations and some conditioning, i.e., the resulting say conditioned process is still a DPP with a different kernel. See e.g.,

1reaction
guilgautiercommented, Nov 4, 2021

For now, DPPy indeed allows to define a FiniteDPP only with symmetric kernels, K or L.

However, core sampling methods can be called to sample from non-symmetric DPPs

To generate exact samples, you can exploit the relation K = L (L + I)^-1 = I − (L + I)^−1 and use dppy.exact_sampling.dpp_sampler_generic_kernel(K) https://github.com/guilgautier/DPPy/blob/cb4577f75ca998481ca6f248af10b19f986eca1c/dppy/exact_sampling.py#L322

To generate approximate samples (using an MCMC method) have a look at dppy.mcmc_sampling.dpp_sampler_mcmc(L) https://github.com/guilgautier/DPPy/blob/cb4577f75ca998481ca6f248af10b19f986eca1c/dppy/mcmc_sampling.py#L24

If you provide a more concrete example (even a toy example), I might be able to help you further.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Scalable Sampling for Nonsymmetric Determinantal Point ...
Abstract: A determinantal point process (DPP) on a collection of M items is a model, parameterized by a symmetric kernel matrix, ...
Read more >
SCALABLE SAMPLING FOR NONSYMMETRIC ...
A determinantal point process (DPP) on a collection of M items is a model, parameterized by a symmetric kernel matrix, that assigns a...
Read more >
insuhan/nonsymmetric-dpp-sampling - GitHub
Experiments for scalable sampling from NDPPs: · To run synthetic dataset, · This will run the Cholesky-based sampling and tree-based rejection sampling.
Read more >
Learning Nonsymmetric Determinantal Point ... - NIPS papers
DPP learning [10, 12, 14, 25, 26] and sampling [2, 22, 27] have been reasonably well studied. DPPs are conventionally parameterized by a...
Read more >
Scalable MCMC Sampling for Nonsymmetric Determinantal ...
While conventionally a. DPP is parameterized by a symmetric kernel ma- trix, removing this symmetry constraint, resulting in nonsymmetric DPPs (NDPPs), leads to ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found