Understanding Youtube recommender (candidate generation step)
$begingroup$
I'm trying to understand https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45530.pdf
Their candidate generation step outputs topn items
- via softmax (with negative sampling) at training time .
- via nearestneighbor at serving time.
I guess Vj represents, (from softmax layer to nearest neighbor index)
topn videos you get via softmax, and represent them in the original encoding (same encoding you used for the input (used for embedded video watches))
apparently, Vj are in the different encoding from the input encodings.
The softmax layer outputs a multinomial distribution over the same 1M
video classes with a dimension of 256 (which can be thought
of as a separate output video embedding)
I'm trying to understand what they mean by interpreting softmax output as a separate output video embedding. I thought softmax layer that outputs 1M classes has dimension of 1M, where does 256 came from? (It's the same question as How to create a multi-dimensional softmax output in Tensorflow? and I don't think it has been answered there..)
user vector u is the output of the final ReLU unit, although I'm not sure what this user vector is used for.
I guess in serving time, to pick the topn for a given user, user vector u is used by nearest-neighbor. But my understanding of nearest-neighbor is for a given vector, it finds nearest vectors in the same dimension. (such as given an movie, find nearest movies). However here, you are given a user and need to find topn videos. How does that work?
My best guess is that, for a given user, u get a user vector as the ReLU output, then find user-user nearest neighbor, and combine their topn items obtained in the training time. But it's just a guess..
deep-learning recommender-system
New contributor
$endgroup$
add a comment |
$begingroup$
I'm trying to understand https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45530.pdf
Their candidate generation step outputs topn items
- via softmax (with negative sampling) at training time .
- via nearestneighbor at serving time.
I guess Vj represents, (from softmax layer to nearest neighbor index)
topn videos you get via softmax, and represent them in the original encoding (same encoding you used for the input (used for embedded video watches))
apparently, Vj are in the different encoding from the input encodings.
The softmax layer outputs a multinomial distribution over the same 1M
video classes with a dimension of 256 (which can be thought
of as a separate output video embedding)
I'm trying to understand what they mean by interpreting softmax output as a separate output video embedding. I thought softmax layer that outputs 1M classes has dimension of 1M, where does 256 came from? (It's the same question as How to create a multi-dimensional softmax output in Tensorflow? and I don't think it has been answered there..)
user vector u is the output of the final ReLU unit, although I'm not sure what this user vector is used for.
I guess in serving time, to pick the topn for a given user, user vector u is used by nearest-neighbor. But my understanding of nearest-neighbor is for a given vector, it finds nearest vectors in the same dimension. (such as given an movie, find nearest movies). However here, you are given a user and need to find topn videos. How does that work?
My best guess is that, for a given user, u get a user vector as the ReLU output, then find user-user nearest neighbor, and combine their topn items obtained in the training time. But it's just a guess..
deep-learning recommender-system
New contributor
$endgroup$
add a comment |
$begingroup$
I'm trying to understand https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45530.pdf
Their candidate generation step outputs topn items
- via softmax (with negative sampling) at training time .
- via nearestneighbor at serving time.
I guess Vj represents, (from softmax layer to nearest neighbor index)
topn videos you get via softmax, and represent them in the original encoding (same encoding you used for the input (used for embedded video watches))
apparently, Vj are in the different encoding from the input encodings.
The softmax layer outputs a multinomial distribution over the same 1M
video classes with a dimension of 256 (which can be thought
of as a separate output video embedding)
I'm trying to understand what they mean by interpreting softmax output as a separate output video embedding. I thought softmax layer that outputs 1M classes has dimension of 1M, where does 256 came from? (It's the same question as How to create a multi-dimensional softmax output in Tensorflow? and I don't think it has been answered there..)
user vector u is the output of the final ReLU unit, although I'm not sure what this user vector is used for.
I guess in serving time, to pick the topn for a given user, user vector u is used by nearest-neighbor. But my understanding of nearest-neighbor is for a given vector, it finds nearest vectors in the same dimension. (such as given an movie, find nearest movies). However here, you are given a user and need to find topn videos. How does that work?
My best guess is that, for a given user, u get a user vector as the ReLU output, then find user-user nearest neighbor, and combine their topn items obtained in the training time. But it's just a guess..
deep-learning recommender-system
New contributor
$endgroup$
I'm trying to understand https://storage.googleapis.com/pub-tools-public-publication-data/pdf/45530.pdf
Their candidate generation step outputs topn items
- via softmax (with negative sampling) at training time .
- via nearestneighbor at serving time.
I guess Vj represents, (from softmax layer to nearest neighbor index)
topn videos you get via softmax, and represent them in the original encoding (same encoding you used for the input (used for embedded video watches))
apparently, Vj are in the different encoding from the input encodings.
The softmax layer outputs a multinomial distribution over the same 1M
video classes with a dimension of 256 (which can be thought
of as a separate output video embedding)
I'm trying to understand what they mean by interpreting softmax output as a separate output video embedding. I thought softmax layer that outputs 1M classes has dimension of 1M, where does 256 came from? (It's the same question as How to create a multi-dimensional softmax output in Tensorflow? and I don't think it has been answered there..)
user vector u is the output of the final ReLU unit, although I'm not sure what this user vector is used for.
I guess in serving time, to pick the topn for a given user, user vector u is used by nearest-neighbor. But my understanding of nearest-neighbor is for a given vector, it finds nearest vectors in the same dimension. (such as given an movie, find nearest movies). However here, you are given a user and need to find topn videos. How does that work?
My best guess is that, for a given user, u get a user vector as the ReLU output, then find user-user nearest neighbor, and combine their topn items obtained in the training time. But it's just a guess..
deep-learning recommender-system
deep-learning recommender-system
New contributor
New contributor
New contributor
asked 8 mins ago
eugeneeugene
1011
1011
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
eugene is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f47824%2funderstanding-youtube-recommender-candidate-generation-step%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
eugene is a new contributor. Be nice, and check out our Code of Conduct.
eugene is a new contributor. Be nice, and check out our Code of Conduct.
eugene is a new contributor. Be nice, and check out our Code of Conduct.
eugene is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Data Science Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f47824%2funderstanding-youtube-recommender-candidate-generation-step%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown