4
$\begingroup$

I have a similariy matrix that looks like this:

enter image description here

I have a bunch of user vectors with 1s and 0s, with a 1 indicating that someone has clicked on an email (as part of a campaign) and zero to indicate they haven't. Implicit ratings as I have come to understand them.

In terms of an approach, after researching different options, it would appear that the best algorithm to start with a is a matrix-factorisation approach. My question is: what is the best algorithm to start as a baseline model for this type of problem? Any advice on potential pitfalls. Any help would be appreciated. Thanks!

$\endgroup$
4
  • $\begingroup$ Do you have the contents of the mails? $\endgroup$ Commented Dec 14, 2020 at 14:18
  • $\begingroup$ I've got a headline and a short snippet of text. It would be more accurate to describe this as links clicked within an email. $\endgroup$
    – Sandy Lee
    Commented Dec 14, 2020 at 14:21
  • $\begingroup$ If you have the content of each email, you can have self attention approahces that have better performance. $\endgroup$ Commented Dec 14, 2020 at 17:06
  • $\begingroup$ Have you got an example? $\endgroup$
    – Sandy Lee
    Commented Dec 15, 2020 at 14:19

2 Answers 2

0
$\begingroup$

If you are after a baseline model, which I also strongly recommend, matrix-factorization (MF) approach (aka collaborative models) you mentioned is the most basic one and super fast and easy to implement. Then you can explore others like content-based models or hybrid recommenders, or even the recent ones based on the self-attention mechanism that Media mentioned. Doing this would give you something to compare with during A/B tests, if there is nothing is in place already. Just note that with the traditional MF may run into memory/performance issues if your matrix get very big (well, if your resources are limited!), and for that Deep Matrix Factorization are a better equivalent choice.

I have summarized almost a year ago about these three starting recommendation engines, see this answer. I have code snippers/notebooks gathered from references there for practical implementation of these few baseline that might be able to share if needed.

$\endgroup$
1
  • $\begingroup$ Thank you, that is really helpful $\endgroup$
    – Sandy Lee
    Commented Jan 5, 2021 at 16:54
0
$\begingroup$

There are different approaches for your case, but I believe you can employ approaches that are based on the self-attention mechanism. There numerous studies that show they perform better than the latent outcomes that can be achieved with SVD. For instance, you can see the paper of SAIN which its code is also open source. In the paper, you can see that they have shown their approach has better performance than SVD and usual self-attention mechanisim. By the way, it is based on self-attention.

If I want to summarize the method, it uses the contents of the products and the items and finds the interactions between the words, and it outputs the score that a user may assign to a product. It has good performance.

Due to the fact that you have the contents of mails, this approach may help you.

$\endgroup$
1
  • $\begingroup$ Thank you, that is really helpful $\endgroup$
    – Sandy Lee
    Commented Jan 5, 2021 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.