Cosine Similarity, Clearly Explained!!!

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 279

  • @statquest
    @statquest  Рік тому +7

    To learn more about Lightning: lightning.ai/
    Support StatQuest by buying my book The StatQuest Illustrated Guide to Machine Learning or a Study Guide or Merch!!! statquest.org/statquest-store/

  • @marchanselthomas
    @marchanselthomas 4 місяці тому +15

    The explanation is so clean. I was clapping for him from my room. How can someone be so good at their job!

    • @statquest
      @statquest  4 місяці тому +1

      Thank you! :)

    • @nuridaw9586
      @nuridaw9586 3 місяці тому +1

      I clapped too, twice! :)

  • @jwilliams8210
    @jwilliams8210 Рік тому +58

    You are EXCEPTIONALLY good at CLEARLY describing complex topics!!! Thank you!

  • @mattgenaro
    @mattgenaro 11 місяців тому +7

    Such a simple, yet, a beautiful and powerful concept of similarity.
    Thanks, StatQuest!

  • @RonnieDenzel
    @RonnieDenzel Місяць тому +3

    Never understood something in such a slow but efficient pace,thanks💯

  • @usamsersultanov689
    @usamsersultanov689 Рік тому +51

    I think and hope that this video is a preamble for more comlex NLP topics such as Word Embeddings etc.. many thanks for all of your efforts!

    • @statquest
      @statquest  Рік тому +23

      Yes it is! :)

    • @xanderortega4359
      @xanderortega4359 6 місяців тому +2

      Cosine Similarity is used as an evaluation tool on word2vec

  • @nossonweissman
    @nossonweissman Рік тому +7

    You literally make it so easy!!
    I can't help but smile 😊😊😊❤️❤️❤️
    By far one of my favorite UA-cam channels!

  • @tysontakayushi8394
    @tysontakayushi8394 5 місяців тому +3

    I usually hate when people say that a video explains well, because usually this is not the case. But, haha, amazing job! Well done, really nice explained, it's a gamification, they way I understand!

  • @jasonlough6640
    @jasonlough6640 7 місяців тому +1

    Dude these are so good. I have to watch them several times, and then I try write some code to reinforce the concept. Your vides are absolutely amazing.

  • @virenpai9395
    @virenpai9395 9 місяців тому +1

    My Love for learning Data Science and Statistics has increased multi-folds because of you. Thank you Josh!!🙂

  • @torley
    @torley Рік тому +3

    QUADRUPLE BAM!!! Thanks for such fun yet pragmatic explainers.

  • @gunnerstone120
    @gunnerstone120 Місяць тому +2

    Great video. It would've been worth noting that magnitude of the feature space does matter in certain cases and doesn't in others. Your example of [Hello Hello Hello], caught my eye. In that example, the magnitude of that feature didn't matter because its direction didn't change. However the difference between [Hello World!] and [Hello Hello Hello World!] does have an impact on the angle.

  • @KarthikNaga329
    @KarthikNaga329 Рік тому +5

    This is another great video, Josh!
    question: @3:51 you talk about having 3 Hellos and that still results in a 45 degree angle with Hello World.
    However, comparing Hello to Hello World seems to be a diff angle from comparing Hello to Hello World World.
    Is there an intuition as to why this is the case? That is adding as many Hellos to Hello keeps the angle the same, but adding more Worlds to Hello World seems to change the Cosine Similarity.

    • @statquest
      @statquest  Рік тому

      Two answers:
      1) Just plots the points on a 2-dimensional graph for the two pairs of phrases and you'll see that the angles are different.
      2) The key difference is that "hello hello hello" only contains the word "hello". If we had included "world", then the angles would be different. Again, you can plot the points to see the differences.

  • @kforay42
    @kforay42 Рік тому +5

    Your videos are such a lifesaver! Could you do one on the difference between PCA and ICA?

  • @lynnekilgore6011
    @lynnekilgore6011 Місяць тому +1

    Terrific video, thanks Josh! I learned the basics of Linear Algebra before, but the explanations were never this clear (or fun).

  • @dukeduke1910
    @dukeduke1910 7 місяців тому +1

    This guy is seriously funny. I thought I was the only person who ever watched gymkata (like 50 times, especially the part in the town where everyone was crazy). This video def explains cosine sim clearly. Thk u!

  • @raphaelbonillo2192
    @raphaelbonillo2192 5 місяців тому +1

    Você democratiza a matemática! Deveriam fazer assim nas escolas.

  • @Ogunbiyi_Ibrahim
    @Ogunbiyi_Ibrahim 6 місяців тому +1

    I came here as I need to learn something in NLP. Thank you, I understood it clearly.

  • @성이름-g3q
    @성이름-g3q Рік тому +1

    wow thankyou!!! i don't know how to calculate it , but after watching this, i become mathmatician!!

  • @insaiyancvk
    @insaiyancvk 3 місяці тому +1

    Wonderfully explained, Josh! You've earned a subscriber!

  • @olucasharp
    @olucasharp Рік тому +4

    It all seems so easy when you speak about such complicated things! Huge talent! And so funny ⚡⚡⚡

  • @MOROCCANFREEMIND
    @MOROCCANFREEMIND 9 місяців тому +2

    The quality of your explanation is more than triple bam!!😂

  • @fazelamirvahedi9911
    @fazelamirvahedi9911 11 місяців тому

    Thank you for making all of these informative, simple and precise videos. I wondered what happens if two phrases deliver the same meaning but have different orders of words, for instance: A) I like Gymkata. B) I really like Gymkata. In this case doesn't the extra adverb "really" in the second sentence disturb the phrase matrix? And one more question, if the three phrases have the same length and two of them have the same meaning but have used different words, like: A) I like Gymkata. B) I love Gymkata. C) I like volleyball. In this case, would the cosine similarity between A and B be more than A and C?

    • @statquest
      @statquest  11 місяців тому +1

      In this video, we're simply counting the number of words that are the same in different phrases, however, you can use other metrics to calculate the cosine similarity, and that is often the case. For example, we could calculate "word embeddings" for each word in each phrase and calculate the cosine similarity using the word embedding values and that would allow phrases with similar meanings to have larger similarities. To learn more about word embeddings, see: ua-cam.com/video/viZrOnJclY0/v-deo.html

  • @magicfox94
    @magicfox94 Рік тому +2

    Excellent explaination! I hope it is the first of a NLP series of videos!

    • @statquest
      @statquest  Рік тому +5

      I hope to do word embeddings soon.

  • @abdulrafay2420
    @abdulrafay2420 9 місяців тому +1

    What a great way of explaination !! Love it ❤

  • @bjornnorenjobb
    @bjornnorenjobb Рік тому +2

    Awesome video! I had no idea what Cosine Similarity was, but you explained super clearly

  • @willw4096
    @willw4096 Рік тому +1

    Great video! My notes: 3:52 4:23

  • @Ghulinzer
    @Ghulinzer Рік тому +1

    Great video! I've seen though in many articles out there that people consider cosine similarity the same as Pearson's correlation since they produce the same outcome when E(X) = E(Y) = 0 and the means of X and Y = 0.
    This is not true since both measure different things. Cosine similarly measures the cosine of the angle between two vectors in a multi-dimensional space and returns a similarity score as explained in the video, while Pearson's correlation measure the linear relationship between 2 variables.

  • @AU-hs6zw
    @AU-hs6zw Рік тому +1

    You deliver the moment I need it. Thanks

  • @davidmurphy563
    @davidmurphy563 Рік тому +9

    Could you cover discrete cosine/fourier transforms pretty please?* I've love to know how to break signals up into their component frequencies.
    If you haven't already!

    • @statquest
      @statquest  Рік тому +1

      I'll keep that in mind.

    • @turck_pharao
      @turck_pharao Рік тому +1

      Have you seen 3blue1brown video on this topic? Not sure if it about descreet FT.

  • @azzahamed2063
    @azzahamed2063 9 місяців тому +1

    This is an AMAZING explanation !!

  • @anuj5576
    @anuj5576 Рік тому +1

    Super simplistic explanation! Thanks for your effort.

  • @AmineBELALIA
    @AmineBELALIA Рік тому +1

    this video needs more views it is awesome

  • @limebro8833
    @limebro8833 Рік тому +1

    This video saved me, I cannot thank you enough.

  • @bladongarland8635
    @bladongarland8635 5 місяців тому +1

    Hilarious, easy to understand, and entertaining. Bravo!

    • @statquest
      @statquest  5 місяців тому

      Glad you enjoyed it!

  • @RaynerGS
    @RaynerGS Рік тому +1

    I love you!!!! Salute from Brazil.

  • @marceloamado6223
    @marceloamado6223 День тому +1

    This video was the goat!

  • @infraia
    @infraia 5 місяців тому +1

    Excellent explanation!

  • @jitendrakumar-k4d7k
    @jitendrakumar-k4d7k 8 місяців тому +1

    you are the King Josh 👏👏👏👏 wonderful job!!!

  • @exoticcoder5365
    @exoticcoder5365 Рік тому +1

    I must watch Gymkata ! Thanks for the recommendation ! And excellent explanation of the topic !

  • @chrisguiney
    @chrisguiney Рік тому +1

    This video also does a good job highlighting how cosine and dot products are the same. Unless I'm mistaken, that equation can be written dot(a, b) / (magnitude(a) * magnitude(b)), where magnitude(x) = sqrt(dot(x, x))

  • @muhammadazeemmohsin5666
    @muhammadazeemmohsin5666 11 місяців тому +1

    what's an amazing explanation. Thanks for the video.

  • @RichardGreco
    @RichardGreco Рік тому +3

    Great video. Very interesting. I hope to see you apply this to more examples.

    • @statquest
      @statquest  Рік тому +1

      We'll see it used in CatBoost for sure.

  • @artmiss-x8o
    @artmiss-x8o 2 місяці тому +1

    You really are the best !

  • @kavita8925
    @kavita8925 Рік тому +1

    Your Explanation is great

  • @Francescoct
    @Francescoct Рік тому +1

    Great video! Have you made one for the Word Embeddings?

  • @yang9051
    @yang9051 Місяць тому +1

    super clear, thank you dude

  • @AreyHawUstad
    @AreyHawUstad 4 місяці тому +1

    Holy shit did I land on a gold mine. Love the explanation (minus the intro, sorry Josh). Thanks a bunch!

  • @ericvaish
    @ericvaish 2 місяці тому +1

    How am I able to understand this topic? Wasn't this supposed to be difficult? 😭
    Seriously Great Explanation Josh.

  • @Neeeemg
    @Neeeemg Місяць тому +1

    U nailed it enjoyed it hello ,BAM and best teacher ever 😂😂😂

  • @smegala3815
    @smegala3815 Рік тому +2

    Very useful 👍

  • @debatradas1597
    @debatradas1597 Рік тому +1

    Thank you so much

  • @bachdx2812
    @bachdx2812 Рік тому +1

    thanks a lot. this kind of videos are super helpful for me !!!

  • @suaridebbarma1255
    @suaridebbarma1255 5 місяців тому +1

    this video was absolutely a BAM!!

  • @dataanalyticswithmichael8931
    @dataanalyticswithmichael8931 Рік тому +1

    superb ! Thank you for the explanation

  • @CristianoGarcia10
    @CristianoGarcia10 Рік тому +1

    Excellent and clear video! I wonder why NLP applications use more often cosine distance rather than other metrics, such as euclidean distance. Is there a clear reason for that? Thanks in advance

    • @statquest
      @statquest  Рік тому +1

      I'm not certain, but one factor might be how easy it is to compute (people often omit the denominator making the calculation even easier) and it might be nice that the cosine similarity is always between 0 and 1 and doesn't need to be normalized.

  • @lifeisbeautifu1
    @lifeisbeautifu1 8 місяців тому +1

    Thank you!

  • @ymperformance
    @ymperformance Рік тому +1

    Great video and great explanation! Thanks.

  • @abrahammahanaim3859
    @abrahammahanaim3859 Рік тому +2

    Hey josh thanks for the video nice explanation.

  • @gsp_admirador
    @gsp_admirador Рік тому +2

    nice easy explanation

  • @sciab3674
    @sciab3674 8 місяців тому +1

    thanks a lot. easy to understand

  • @Sohy365b
    @Sohy365b 14 днів тому +1

    Perfection! BAM

  • @jonathanramos6690
    @jonathanramos6690 7 місяців тому +1

    Amazing!!

  • @luizcarlosazevedo9558
    @luizcarlosazevedo9558 Рік тому +1

    Hey, great video as always!! Is the cosine similarity good for regression problems in which the targets are pretty close to zero? Im trying to implement some accuracy metrics for a transformer model

    • @statquest
      @statquest  Рік тому

      Hmm... I bet it would work (if you had a row of predictions and a row of known values).

  • @millennialm1money500
    @millennialm1money500 6 місяців тому +1

    Great video 🎉

  • @theedspage
    @theedspage Рік тому +1

    Hello! Hello! Hello! Thank you for introducing me to this topic! Subscribed.

  • @cartulinito
    @cartulinito Рік тому +1

    Great video as we are used to.

  • @Shehab-Codes
    @Shehab-Codes 11 місяців тому

    Thank you so much
    I had no idea what cosine similarity is and you illustrated it easily, appreciate it
    Btw how cosine similarity can result in -ve number

    • @statquest
      @statquest  11 місяців тому

      The cosine similarity can be calculated for any 2 sets of numbers, and that can result in a negative value.

  • @FreeMc54
    @FreeMc54 3 місяці тому +1

    you are insane at explaining clearly, btw you sing really well😂

  • @banibratamanna5446
    @banibratamanna5446 6 місяців тому

    the generalized equation of cosine similarity comes from the dot product of 2 vectors in multidimension.....by the way big fan of yours❤

    • @statquest
      @statquest  6 місяців тому

      scaled to be between -1 and 1. :)

  • @edmiltonpeixeira3221
    @edmiltonpeixeira3221 Рік тому

    Parabéns pelo conteúdo. Excelente explicação, como não encontrei em nenhum outro vídeo

  • @samrasoli
    @samrasoli Рік тому +1

    useful, thanks

  • @mystmuffin3600
    @mystmuffin3600 Рік тому +1

    Cool! (in StatQuest voice)

  • @murilopalomosebilla2999
    @murilopalomosebilla2999 Рік тому +1

    Hello!! Nice video!

  • @pouryajafarzadeh5610
    @pouryajafarzadeh5610 Рік тому +1

    Cosine similarity is a good method for comparing the embedding vectors, especially for face recognition.

  • @jainanshu2000
    @jainanshu2000 Рік тому

    Great video ! One question - how is this diffrent from the regular string comparison we use various programming languages?

    • @statquest
      @statquest  Рік тому

      I'm not sure I understand your question. My understanding of string comparison in programming languages is that it just compares the bits to make sure they are equal and the result is a boolean True/False type thing.

  • @DrKnowsMore
    @DrKnowsMore 2 місяці тому +1

    Like most things, it is relatively straightforward when you remove the jargon

  • @yuan8947
    @yuan8947 Рік тому

    Always thank you for the great and easy-understanding video!
    And I have a question about the totally different word.
    If there are 2 sentences like very good/super nice, since very, good, super, nice are totally different, the cosine similarity will be 1.
    However, they are actually the same meaning!
    I want to ask what else preprocessing should we do toward such situation?
    Thank you so much!

    • @statquest
      @statquest  Рік тому +1

      I think you might need more context (longer phrases) to get a better cosine similarity. I just used 2 words because I could draw them, but in practice, you use more.

  • @SalahMusicOfficial
    @SalahMusicOfficial Рік тому

    Hi Josh, I’m trying to understand why cosine similarity may be the best metric to find semantically similar texts (using pertained embeddings). It sounds like the two vectors have to only directionally similar for cosine similarity to be high. What about using something like Euclidean or Manhattan distance. Would a distance metric be better to see if two texts are semantically similar?

    • @statquest
      @statquest  Рік тому +1

      That's a good question and, to be honest, I don't know the answer. I do know, however, that most neural networks - when they use "attention" (like in transformers, which are used for ChatGPT) - just use the numerator of the cosine similarity as the "similarity metric". In other words, they just compute the dot-product. Maybe they do this because it's super fast, and the speed outweighs the benefits of using another, more sophisticated method.
      Also, it's worth noting that this is a similarity metric and not a distance. In other words, as the value goes up, things are "more similar" (the angle is smaller). In contrast, the Euclidean and Manhattan distances are...distances. That is, as the value goes up, the things are further away and considered "less similar"
      Lastly, cool music on your channel! You've got a dynamite voice.

    • @SalahMusicOfficial
      @SalahMusicOfficial Рік тому +1

      @@statquest thank you! let me know if you need another voice in any of your intro jingles 😁

    • @statquest
      @statquest  Рік тому

      @@SalahMusicOfficial bam!

  • @Levy957
    @Levy957 Рік тому +1

    you are amazing

  • @miltonborges7356
    @miltonborges7356 10 місяців тому +1

    Amazing

  • @MrJ17J
    @MrJ17J Рік тому

    Super interesting ! Do you have examples of how those are implemented in practice ?

    • @statquest
      @statquest  Рік тому

      I talk about that at the start of the video, but it's also used by CatBoost to compare the predicted values for a bunch of samples to their actual values.

  • @notjustanyuser
    @notjustanyuser 15 днів тому +1

    How can someone be so good at something! Thank you. I have bought a copy of your book "statquest_illustrated_guide_to_machine_learning" because I wanted to convey my gratitude. I am yet to go through the book (Just bought it!) but I am sure it would be awesome.

    • @statquest
      @statquest  15 днів тому

      Thank you very much!!! I really appreciate your support! :)

    • @notjustanyuser
      @notjustanyuser 12 днів тому

      @@statquest can you please do an episode on NMF

    • @statquest
      @statquest  12 днів тому +1

      @@notjustanyuser I'll keep that in mind, but it will probably be a long time before I can get to it.

  • @alexmattyou
    @alexmattyou Місяць тому +1

    Wow, Math is awesome!

  • @AxDhan
    @AxDhan Рік тому +1

    I'm a native spanish speaker, and it surprised me when it started speaking spanish, it will reach more people, but they will miss your motivating silly songs xD

    • @statquest
      @statquest  Рік тому

      Thanks! Yeah - I'm not sure what to do about the silly songs. :)

  • @nidhi_singh9494
    @nidhi_singh9494 8 місяців тому

    Hey...so cosine is only depends on angle not on lengths... When the case of three Hello were shown, how it can be distinguished between them as similarity is same for both sentence

    • @statquest
      @statquest  8 місяців тому

      What time point, minutes and seconds, are you asking about?

  • @rajashreechakraborty747
    @rajashreechakraborty747 9 місяців тому

    Can u please help me with this?
    This is my data:
    A: cosine: 0.58, z-score: 372
    B: cosine: 0.63 , z-score: 370
    How can I find the p-value/significance of the 0.5 change in the cosine similarities?

    • @statquest
      @statquest  9 місяців тому

      We didn't cover p-values in the video.

  • @Mrnafuturo
    @Mrnafuturo Рік тому

    Does cosine similarity equation ends up being a vector normalization of the projection of one vector over the other one?

    • @statquest
      @statquest  Рік тому

      I believe that is correct.

  • @ZOBAER496
    @ZOBAER496 Рік тому

    Can you please tell about some applications of cosine similarity like where is it used in which type of problems?

    • @statquest
      @statquest  Рік тому

      I talk about that at the start of the video, but you can also use it whenever you want to compare two rows of data. For example, CatBoost uses it compare predicted values for a bunch of data to their actual values.

  • @raven-888
    @raven-888 Рік тому +2

    Love you

  • @kushiiiy1582
    @kushiiiy1582 Рік тому

    Why is it specifically Cos, and not Tan? Since you’re collecting the opposite and adjacent length??

    • @statquest
      @statquest  Рік тому

      The cosine is easy to calculate and, unlike the tangent function, is defined for all possible angles.

  • @chris-graham
    @chris-graham Рік тому +1

    "in contrast, this last sentence is from someone who does not like troll 2" - I was expecting a BOOOO after that lol

    • @statquest
      @statquest  Рік тому

      Ha! That would have been great.

  • @aizazkhan5439
    @aizazkhan5439 Рік тому

    Can the cosine similarity be greater than the distance between words?

    • @statquest
      @statquest  Рік тому

      I guess it depends on how you measure the distance. However, in general, the cosine similarity will always be between -1 and 1 (and is usually just between 0 and 1).

    • @aizazkhan5439
      @aizazkhan5439 Рік тому

      @@statquest in what cases can cosine similarity be -1? Isnt it a similarity measure meaning 0 would imply nothing in common and 1 perfect similarity? What would -1 imply?

    • @statquest
      @statquest  Рік тому

      @@aizazkhan5439 -1 similarity is sort of like a inverse correlation - when one goes up, the other goes down, etc.

  • @PromitiDasgupta-mz7uc
    @PromitiDasgupta-mz7uc Рік тому

    can i use cosine similarity for building a similarity matrix between two different brain regions?

  • @lonok84
    @lonok84 6 місяців тому +1

    Wow, I used this to make a bot from whatsapp, to put client on flow/menu based on the first message from client

  • @arvindmathur5556
    @arvindmathur5556 3 місяці тому

    Somewhere it says Cosine Similarity is a number between -1 and +1 but in other places it is said to be between 0 & 1. What is the truth?

    • @statquest
      @statquest  3 місяці тому

      The cosine similarity can be between -1 and 1. If all the input data are positive (like they are in a bunch of the examples in this video, since we are just using count data, and count data is positive) then you'll be restricted to values between 0 and 1, but the data don't always have to be positive.

  • @shintaardani6332
    @shintaardani6332 7 місяців тому

    I am conducting sentiment analysis research and found that some data has a Cosine Similarity of 0. Are there any methods to make the Cosine Similarity not equal to 0?

    • @statquest
      @statquest  7 місяців тому

      you could pad each phrase with something, so all phrases have at least one thing in common.

    • @shintaardani6332
      @shintaardani6332 7 місяців тому +1

      @@statquest Thank you so much😁

  • @sushi666
    @sushi666 Рік тому

    Can you please do Spherical K Means with Cosine Similarity as the distance metric?

  • @itSinger
    @itSinger 9 місяців тому +1

    tysm

  • @001kebede
    @001kebede Рік тому

    how can we relate this with correlation between two continuous random variables?

    • @statquest
      @statquest  Рік тому

      See: stats.stackexchange.com/questions/235673/is-there-any-relationship-among-cosine-similarity-pearson-correlation-and-z-sc#:~:text=TL%3BDR%20Cosine%20similarity%20is,a%20norm%20of%20%E2%88%9An.&text=To%20convert%20a%20z%2Dscore,function%20for%20a%20Gaussian%20distribution.