Recommendation systems: artificial immune systems and the effect of idiotypes

    Recommendation systems:
    - Tips from the car
    - Cold start
    - Introduction to hybrid systems
    - Artificial immune systems and the effect of idiotypes


    While reading various publications about data mining and recommendation systems, I accidentally stumbled upon one interesting approach to the implementation of such systems. It is based on the concept of an artificial immune system (IIS, Artificial immune system), according to which some properties of the immune system of living organisms are realized in a computer system, including the ability to learn and remember. The recommendation systems use a model that describes the concentration of antibodies that respond to a specific antigen. Of particular interest is the so-called effect of idiotypes ( Idiotype ), showing that the concentration of antibodies depends not only on their similarity with the antigen, but also on similarities with each other.

    For those who are not familiar with biology, I will briefly explain the essence of the matter. Antigen is a substance that, when ingested, elicits a response from the immune system. In response, she produces antibodies, a specific class of proteins that are used to identify and neutralize irritants. In our case, the antigen is the user, and the antibodies are the objects with which you are comparing it. To make this easier to imagine, I propose to consider that we are considering a collective filtering system where other users are antibodies.

    Mathematical description


    Now let's get down to business. An equation describing the concentration of antibodies was proposed by J. Doyne Farmer :




    where:
    m i is the similarity between the antigen and antibody i,
    x i and x j are the concentration of the antibody i and j, respectively,
    y is the concentration of the antigen,
    m ij is the similarity between antibodies i and j,
    k 1 is the stimulation coefficient,
    k 2 is the suppression coefficient,
    k 3 is the mortality rate,
    N is the number of antibodies.

    We consider each term individually:
    • Antibody stimulation should not cause issues. This term increases the concentration of the antibody if it approaches the antigen.
    • Antibody suppression is much more interesting. It is in this term that the previously mentioned effect of idiotypes lies. For a collective filtering system, it increases the result if the users with whom we compare the antigen to us will not only be similar to it, but will also be little similar to each other. This allows you to create a more diverse set of users.
    • Mortality reduces the result if the absolute values ​​of the first two terms are approximately equal. Thanks to him, antibodies that are neither good nor bad are eliminated by themselves.

    Work principles


    The algorithm of such a system is quite simple.
    1. We take the first antibody from the database and calculate its concentration according to the described formula.
    2. The result, obviously, can be both positive and negative, if it is below a certain minimum - we discard the antibody and take the following.
    3. We continue this cycle until the antibodies run out or the system stabilizes , that is, if the result does not change in the last plus or minus ten iterations.

    IIS has two main differences from other recommendation systems:
    • Another principle for choosing objects to compare. If in common collective filtering systems the most similar users are selected, then IIS also adds the effect of idiotypes, due to which the final selection is more diverse. This effect can be used not only to create a new collection, but also to improve existing ones.
    • The rating calculation method itself is different. If in conventional systems this is simply some kind of correlation coefficient, then in IMS this coefficient is multiplied by the concentration obtained.

    Example


    At the request of readers, I will give a simple example of using IIS. Suppose we have a correlation table of users A, B, C and Y obtained by some method. Our system works on the principle of collective filtering, so we need to find two users similar to user Y and use their votes to further predict the voice of user Y In this example, I will not consider how we got this table and how we use the result in the future. We will only consider how the effect of idiotypes will affect the choice of users we need.

     ABCY
    A10.20.80.9
    B0.210.60.8
    C0.80.610.85
    Y0.90.80.851

    For a regular system, users B and C will become an obvious choice, and they will be right too.
    Let's see what IIS offers. We calculate the concentration for users B and C. Let the formula be before our eyes:



    Take k 1 = 0.3, k 2 = 0.2, k 3 = 0.1, y = 1, since we need to choose two users, N = 2. Then:




    Suppose our minimum concentration value is 0.11. X C obviously does not fit into it, therefore, we need to look for a replacement for it. Consider user B:



    As you can see, despite the fact that its similarity with user Y is slightly less than that of user C, its concentration is noticeably higher, since B is less like A than C. Since we replaced user C with B, we need to recount the concentration of user A, since it depends on other users:



    Having calculated the concentration, we can accordingly adjust the similarity of users with user Y:





    Conclusion


    According to the published test results, IIS really give more accurate results than other systems, but the reason for their success is not in the influence of any particular factor from the above, but in their interaction. For details, I advise you to look at the sources:

    1. Steve Cayzer and Uwe Aickelin " A Recommender System based on the Immune Network " (pdf)
    2. Steve Cayzer and Uwe Aickelin " On the Effects of Idiotypic Interactions for Recommendation
    Communities in Artificial Immune Systems
    " ( pdf)
    3. Q Chen and U Aickelin " Movie Recommendation Systems Using An Artificial Immune System " (pdf)


    Original on my blog

    Also popular now: