MilliVolt / matcher

GNU General Public License v3.0
1 stars 0 forks source link

Triangular matrix for a2a matching #31

Closed vr2262 closed 8 years ago

vr2262 commented 8 years ago

At the moment, we match every video to every other video (full matrix minus the diagonal, n^2 - n).

As @myf pointed out, match(video_1, video_2) should be exactly the same as match(video_2, video_1) (symmetric matrix), so we should calculate a triangular matrix minus the diagonal ((n^2)/2 - n). This requires two changes:

  1. Change the unmatched query from from_id != to_id to from_id < to_id.
  2. Make the application aware that the matrix is symmetric. Options:
    1. Insert two rows when calculating each match: (1,2) and (2,1)
    2. Make the application aware that if (2, 1) is missing, it should look for (1, 2)
    3. Redesign so that there is no order between 1 and 2.
myf commented 8 years ago

+1

On Sep 29, 2016 11:59 AM, "Viktor Roytman" notifications@github.com wrote:

At the moment, we match every video to every other video (full matrix minus the diagonal, n^2 - n).

As @myf https://github.com/myf pointed out, match(video_1, video_2) should be exactly the same as match(video_2, video_1) (symmetric matrix), so we should calculate a triangular matrix minus the diagonal ((n^2)/2 - n). This requires two changes:

  1. Change the unmatched query from from_id != to_id to from_id < to_id.
  2. Make the application aware that the matrix is symmetric. Options:
    1. Insert two rows when calculating each match: (1,2) and (2,1)
    2. Make the application aware that if (2, 1) is missing, it should look for (1, 2)
    3. Redesign so that there is no order between 1 and 2.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MilliVolt/matcher/issues/31, or mute the thread https://github.com/notifications/unsubscribe-auth/AAqYaAKYVOlVJ6eWDZD3JvpB0u92fzLMks5qu-B0gaJpZM4KKK2H .

vr2262 commented 8 years ago

Actually this is all wrong (with the current implementation).

(1, 2) is different from (2, 1) if 1 and 2 have different durations.