Given a matrix $A$ I need to select a "representative" subset of its columns so that the each non-selected column is as close as possible to a selected one.
Formally:
Given $A \in \mathbb{R}^{d \times n}$ and $0<k<n$, find a subset of column indices $S=\{i_1,i_2,\ldots,i_k\}$, so that $$ \sum_{j \notin S}{\min_{r=1,\ldots,k}\angle(A_j, A_{i_r})} $$ is minimized.
If instead of taking the minimum angle between $A_{i_r}$ and a single column in $S$ we were looking at minimizing the projection of $A_{i_r}$ on $Span(S)$, it would have been a straightforward CSSP (Column Subset Selection Problem). As it is, it seems more of a coreset-like problem but I am failing to find a ready-made solution.
Even a decent approximation would be great.