{
  "id": 102002,
  "title": "Looking into the Gilmer/Brain paper",
  "url": "/competitions/champs-scalar-coupling/discussion/102002",
  "author_name": "",
  "post_date": "2019-07-30T10:44:25.972941900Z",
  "votes": 30,
  "comment_count": 8,
  "views": 0,
  "content": "<p>Hi All,</p>\n\n<p>So my first thought when starting this challenge was the <a href=\"https://arxiv.org/abs/1704.01212\">Gilmer/Brain paper</a></p>\n\n<p>It uses the QM9 dataset for the prediction of bulk properties, so overall a somewhat similar task to what we have here, with the major difference that we are trying to predict edge properties. </p>\n\n<p>For fun I implemented it in this <a href=\"https://www.kaggle.com/fnands/1-mpnn\">kernel here</a></p>\n\n<p>I guess it is fairly similar to @hengck23 's <a href=\"https://www.kaggle.com/c/champs-scalar-coupling/discussion/93972\">implementation</a>, although I haven't had a proper look at his implementation. And this one runs in a kernel. </p>\n\n<p>I would just like to spur discussion. For starters, I find that if I try to use batch normalization the network really struggles. Why? </p>\n\n<p>And maybe the output step is a bit wasteful as it makes a lot of predictions which are not used. </p>\n\n<p>Maybe @jaechang can enlighten us as I think he is a subject matter expert</p>\n\n<p>(as a note, this is not what I am using for my current score (2.085))</p>",
  "messages": [
    {
      "id": "588260",
      "postDate": "07/30/2019 10:44:25",
      "content": "<p>Hi All,</p>\n\n<p>So my first thought when starting this challenge was the <a href=\"https://arxiv.org/abs/1704.01212\">Gilmer/Brain paper</a></p>\n\n<p>It uses the QM9 dataset for the prediction of bulk properties, so overall a somewhat similar task to what we have here, with the major difference that we are trying to predict edge properties. </p>\n\n<p>For fun I implemented it in this <a href=\"https://www.kaggle.com/fnands/1-mpnn\">kernel here</a></p>\n\n<p>I guess it is fairly similar to @hengck23 's <a href=\"https://www.kaggle.com/c/champs-scalar-coupling/discussion/93972\">implementation</a>, although I haven't had a proper look at his implementation. And this one runs in a kernel. </p>\n\n<p>I would just like to spur discussion. For starters, I find that if I try to use batch normalization the network really struggles. Why? </p>\n\n<p>And maybe the output step is a bit wasteful as it makes a lot of predictions which are not used. </p>\n\n<p>Maybe @jaechang can enlighten us as I think he is a subject matter expert</p>\n\n<p>(as a note, this is not what I am using for my current score (2.085))</p>",
      "rawMarkdown": "Hi All,\n\nSo my first thought when starting this challenge was the [Gilmer/Brain paper](https://arxiv.org/abs/1704.01212)\n\nIt uses the QM9 dataset for the prediction of bulk properties, so overall a somewhat similar task to what we have here, with the major difference that we are trying to predict edge properties. \n \n\nFor fun I implemented it in this [kernel here](https://www.kaggle.com/fnands/1-mpnn)\n\nI guess it is fairly similar to @hengck23 's [implementation](https://www.kaggle.com/c/champs-scalar-coupling/discussion/93972), although I haven't had a proper look at his implementation. And this one runs in a kernel. \n\nI would just like to spur discussion. For starters, I find that if I try to use batch normalization the network really struggles. Why? \n\nAnd maybe the output step is a bit wasteful as it makes a lot of predictions which are not used. \n\nMaybe @jaechang can enlighten us as I think he is a subject matter expert\n\n\n(as a note, this is not what I am using for my current score (2.085))",
      "votes": null
    },
    {
      "id": "588747",
      "postDate": "07/31/2019 01:32:32",
      "content": "<ol>\n<li>In this paper, though the authors didn't use MPNN, they used batch normalization in graph neural network(<a href=\"https://link.springer.com/article/10.1186/s13321-018-0287-6\">https://link.springer.com/article/10.1186/s13321-018-0287-6</a>)</li>\n<li>I am using a variant of MPNN. I achieved about -2.1 in the leaderboard without ensemble using basic MPNN model. </li>\n<li>After the propagation step in MPNN, my model predicts label using states vectors of two nodes and use only pairs having labels. </li>\n</ol>\n\n<p>I hope that this information will help you!</p>",
      "rawMarkdown": "1. In this paper, though the authors didn't use MPNN, they used batch normalization in graph neural network(https://link.springer.com/article/10.1186/s13321-018-0287-6)\n2. I am using a variant of MPNN. I achieved about -2.1 in the leaderboard without ensemble using basic MPNN model. \n3. After the propagation step in MPNN, my model predicts label using states vectors of two nodes and use only pairs having labels. \n\nI hope that this information will help you!",
      "votes": null
    },
    {
      "id": "588827",
      "postDate": "07/31/2019 05:24:25",
      "content": "<p>I was using a single tree based model. I was hoping to get a validation that MPNN works here before I would invest time there. <a href=\"/jaechang\">@jaechang</a> Thanks for disclosing that !! </p>",
      "rawMarkdown": "I was using a single tree based model. I was hoping to get a validation that MPNN works here before I would invest time there. @jaechang Thanks for disclosing that !!",
      "votes": null
    },
    {
      "id": "588867",
      "postDate": "07/31/2019 06:59:49",
      "content": "<p>Seems it is time to look into MPNN ;)</p>",
      "rawMarkdown": "Seems it is time to look into MPNN ;)",
      "votes": null
    },
    {
      "id": "589019",
      "postDate": "07/31/2019 10:50:41",
      "content": "<p><a href=\"/jaechang\">@jaechang</a> , thanks a lot! Will read paper. </p>",
      "rawMarkdown": "jaechang , thanks a lot! Will read paper.",
      "votes": null
    },
    {
      "id": "589453",
      "postDate": "07/31/2019 23:06:02",
      "content": "<p>Lim, are you training your neural network individually for each type or are you predicting the coupling constant for all types in one model?</p>",
      "rawMarkdown": "Lim, are you training your neural network individually for each type or are you predicting the coupling constant for all types in one model?",
      "votes": null
    },
    {
      "id": "589477",
      "postDate": "08/01/2019 00:12:49",
      "content": "<p>Thanks for your sharing. Could you elaborate more on point 3 you shared? </p>",
      "rawMarkdown": "Thanks for your sharing. Could you elaborate more on point 3 you shared?",
      "votes": null
    },
    {
      "id": "589581",
      "postDate": "08/01/2019 05:57:07",
      "content": "<ol>\n<li><a href=\"/petersk20\">@petersk20</a>  In my model, the propagating module is shared for all types and there are 8 final fully connected layer s which correspond to each type.</li>\n<li><a href=\"/xiaokangwang\">@xiaokangwang</a> After the propagation step, each node (=atom) has its own node vectors. Then, from the two node vectors, their coupling constant is predicted. </li>\n</ol>",
      "rawMarkdown": "1. @petersk20  In my model, the propagating module is shared for all types and there are 8 final fully connected layer s which correspond to each type.\n3. @xiaokangwang After the propagation step, each node (=atom) has its own node vectors. Then, from the two node vectors, their coupling constant is predicted.",
      "votes": null
    },
    {
      "id": "589584",
      "postDate": "08/01/2019 06:03:58",
      "content": "<p>thank you！ by a way, \"from the two node vectors, their coupling constant is predicted\", do you use global pooling of a module?</p>",
      "rawMarkdown": "thank you！ by a way, \"from the two node vectors, their coupling constant is predicted\", do you use global pooling of a module?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 588747,
      "author_name": "jaechang",
      "author_url": "",
      "post_date": "07/31/2019 01:32:32",
      "content": "<ol>\n<li>In this paper, though the authors didn't use MPNN, they used batch normalization in graph neural network(<a href=\"https://link.springer.com/article/10.1186/s13321-018-0287-6\">https://link.springer.com/article/10.1186/s13321-018-0287-6</a>)</li>\n<li>I am using a variant of MPNN. I achieved about -2.1 in the leaderboard without ensemble using basic MPNN model. </li>\n<li>After the propagation step in MPNN, my model predicts label using states vectors of two nodes and use only pairs having labels. </li>\n</ol>\n\n<p>I hope that this information will help you!</p>",
      "votes": null,
      "replies": [
        {
          "id": 588867,
          "author_name": "cpmpml",
          "author_url": "",
          "post_date": "07/31/2019 06:59:49",
          "content": "<p>Seems it is time to look into MPNN ;)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 589019,
          "author_name": "fnands",
          "author_url": "",
          "post_date": "07/31/2019 10:50:41",
          "content": "<p><a href=\"/jaechang\">@jaechang</a> , thanks a lot! Will read paper. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 589453,
          "author_name": "petersk20",
          "author_url": "",
          "post_date": "07/31/2019 23:06:02",
          "content": "<p>Lim, are you training your neural network individually for each type or are you predicting the coupling constant for all types in one model?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 589477,
          "author_name": "xiaokangwang",
          "author_url": "",
          "post_date": "08/01/2019 00:12:49",
          "content": "<p>Thanks for your sharing. Could you elaborate more on point 3 you shared? </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 589581,
          "author_name": "jaechang",
          "author_url": "",
          "post_date": "08/01/2019 05:57:07",
          "content": "<ol>\n<li><a href=\"/petersk20\">@petersk20</a>  In my model, the propagating module is shared for all types and there are 8 final fully connected layer s which correspond to each type.</li>\n<li><a href=\"/xiaokangwang\">@xiaokangwang</a> After the propagation step, each node (=atom) has its own node vectors. Then, from the two node vectors, their coupling constant is predicted. </li>\n</ol>",
          "votes": null,
          "replies": []
        },
        {
          "id": 589584,
          "author_name": "hadxu123",
          "author_url": "",
          "post_date": "08/01/2019 06:03:58",
          "content": "<p>thank you！ by a way, \"from the two node vectors, their coupling constant is predicted\", do you use global pooling of a module?</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 588827,
      "author_name": "silence2",
      "author_url": "",
      "post_date": "07/31/2019 05:24:25",
      "content": "<p>I was using a single tree based model. I was hoping to get a validation that MPNN works here before I would invest time there. <a href=\"/jaechang\">@jaechang</a> Thanks for disclosing that !! </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "588260": "Hi All,\n\nSo my first thought when starting this challenge was the [Gilmer/Brain paper](https://arxiv.org/abs/1704.01212)\n\nIt uses the QM9 dataset for the prediction of bulk properties, so overall a somewhat similar task to what we have here, with the major difference that we are trying to predict edge properties. \n \n\nFor fun I implemented it in this [kernel here](https://www.kaggle.com/fnands/1-mpnn)\n\nI guess it is fairly similar to @hengck23 's [implementation](https://www.kaggle.com/c/champs-scalar-coupling/discussion/93972), although I haven't had a proper look at his implementation. And this one runs in a kernel. \n\nI would just like to spur discussion. For starters, I find that if I try to use batch normalization the network really struggles. Why? \n\nAnd maybe the output step is a bit wasteful as it makes a lot of predictions which are not used. \n\nMaybe @jaechang can enlighten us as I think he is a subject matter expert\n\n\n(as a note, this is not what I am using for my current score (2.085))",
    "588747": "1. In this paper, though the authors didn't use MPNN, they used batch normalization in graph neural network(https://link.springer.com/article/10.1186/s13321-018-0287-6)\n2. I am using a variant of MPNN. I achieved about -2.1 in the leaderboard without ensemble using basic MPNN model. \n3. After the propagation step in MPNN, my model predicts label using states vectors of two nodes and use only pairs having labels. \n\nI hope that this information will help you!",
    "588827": "I was using a single tree based model. I was hoping to get a validation that MPNN works here before I would invest time there. @jaechang Thanks for disclosing that !!",
    "588867": "Seems it is time to look into MPNN ;)",
    "589019": "jaechang , thanks a lot! Will read paper.",
    "589453": "Lim, are you training your neural network individually for each type or are you predicting the coupling constant for all types in one model?",
    "589477": "Thanks for your sharing. Could you elaborate more on point 3 you shared?",
    "589581": "1. @petersk20  In my model, the propagating module is shared for all types and there are 8 final fully connected layer s which correspond to each type.\n3. @xiaokangwang After the propagation step, each node (=atom) has its own node vectors. Then, from the two node vectors, their coupling constant is predicted.",
    "589584": "thank you！ by a way, \"from the two node vectors, their coupling constant is predicted\", do you use global pooling of a module?"
  },
  "source": "meta"
}