Finding filaments in high dimensional space
Following my comment, I now have time to post it as an answer.
If you expect that a large enough portion of the vectors belong to that line, you can use RANSAC.
RANSAC works by selecting a small and random subset of the data and fit it to the desired model (say a line). The fitting can be achieved in any way you like, e.g. least-squares. Then, the data is divided to inliers (the points in space that "agree" with the model) and outliers (those who don't "agree"). The process is repeated until you have enough inliers.
This would only work if the probability of selecting the points on the line is high enough.  

As far as multiple lines, I don't think RANSAC supports this inherently. You can do it iteratively by removing all inliers from the set once a line has been found.  

If you are working in MATLAB\Octave, my favourite RANSAC implementation can be downloaded from here.