{
  "id": 243751,
  "title": "Just wanna say thanks to Cher Keng Heng",
  "url": "/competitions/bms-molecular-translation/discussion/243751",
  "author_name": "",
  "post_date": "2021-06-03T22:12:13.748376400Z",
  "votes": 27,
  "comment_count": 3,
  "views": 0,
  "content": "<p>Since I did not actively participate this competition, fellow Kagglers please pardon the spam.</p>\n<p>As <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> dropped another huge starter bomb (TNT that is in the silver range) just like two years ago he did in the quantum chemistry J-coupling competition, I think this is the best place to say \"thank you\".</p>\n<p>The reason I wanna say thank you is that I wrote my first machine learning paper: <a href=\"https://arxiv.org/abs/2105.14995\" target=\"_blank\">https://arxiv.org/abs/2105.14995</a> on transformers. I believe it presents the first theory on why explicitly <code>(QK^T)V</code> or <code>Q(K^TV)</code> in the attention mechanism would make mathematical sense together with some examples related to partial differential equations, and Heng is the person that led me into the world of serious coding for ML.</p>",
  "messages": [
    {
      "id": "1334920",
      "postDate": "06/03/2021 22:12:13",
      "content": "<p>Since I did not actively participate this competition, fellow Kagglers please pardon the spam.</p>\n<p>As <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> dropped another huge starter bomb (TNT that is in the silver range) just like two years ago he did in the quantum chemistry J-coupling competition, I think this is the best place to say \"thank you\".</p>\n<p>The reason I wanna say thank you is that I wrote my first machine learning paper: <a href=\"https://arxiv.org/abs/2105.14995\" target=\"_blank\">https://arxiv.org/abs/2105.14995</a> on transformers. I believe it presents the first theory on why explicitly <code>(QK^T)V</code> or <code>Q(K^TV)</code> in the attention mechanism would make mathematical sense together with some examples related to partial differential equations, and Heng is the person that led me into the world of serious coding for ML.</p>",
      "rawMarkdown": "Since I did not actively participate this competition, fellow Kagglers please pardon the spam.\n\nAs @hengck23 dropped another huge starter bomb (TNT that is in the silver range) just like two years ago he did in the quantum chemistry J-coupling competition, I think this is the best place to say \"thank you\".\n\nThe reason I wanna say thank you is that I wrote my first machine learning paper: https://arxiv.org/abs/2105.14995 on transformers. I believe it presents the first theory on why explicitly `(QK^T)V` or `Q(K^TV)` in the attention mechanism would make mathematical sense together with some examples related to partial differential equations, and Heng is the person that led me into the world of serious coding for ML.",
      "votes": null
    },
    {
      "id": "1334954",
      "postDate": "06/03/2021 23:33:50",
      "content": "<p>Nice paper and achievements. May I ask which tool did you use to make those diagrams? They look amazing.</p>",
      "rawMarkdown": "Nice paper and achievements. May I ask which tool did you use to make those diagrams? They look amazing.",
      "votes": null
    },
    {
      "id": "1335015",
      "postDate": "06/04/2021 00:49:23",
      "content": "<p>Mainly tikz, drawio, and plotly. The code snippet I use to show the contour plot (<code>z</code> is a matrix) is:</p>\n<pre><code>import plotly.graph_objects as go\ndef showcontour(z, **kwargs):\n    '''\n    show 2D solution z of its contour\n    '''\n    uplot = go.Contour(z=z,\n                       colorscale='RdYlBu',\n                       line_smoothing=0.85,\n                       line_width=0.1,\n                       contours=dict(\n                           coloring='heatmap',\n                           showlabels=True,\n                       )\n                       )\n    fig = go.Figure(data=uplot,\n                    layout={'xaxis': {'title': 'x-label',\n                                      'visible': False,\n                                      'showticklabels': False},\n                            'yaxis': {'title': 'y-label',\n                                      'visible': False,\n                                      'showticklabels': False}},)\n    fig.update_traces(showscale=False)\n    if 'template' not in kwargs.keys():\n        fig.update_layout(template='plotly_dark',\n                          margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    else:\n        fig.update_layout(margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    fig.show()\n    return fig\n</code></pre>\n<p>In the <code>**kwargs</code> we can insert other arguments plotly allows, such as width, height, etc.</p>",
      "rawMarkdown": "Mainly tikz, drawio, and plotly. The code snippet I use to show the contour plot (`z` is a matrix) is:\n\n```\nimport plotly.graph_objects as go\ndef showcontour(z, **kwargs):\n    '''\n    show 2D solution z of its contour\n    '''\n    uplot = go.Contour(z=z,\n                       colorscale='RdYlBu',\n                       line_smoothing=0.85,\n                       line_width=0.1,\n                       contours=dict(\n                           coloring='heatmap',\n                           showlabels=True,\n                       )\n                       )\n    fig = go.Figure(data=uplot,\n                    layout={'xaxis': {'title': 'x-label',\n                                      'visible': False,\n                                      'showticklabels': False},\n                            'yaxis': {'title': 'y-label',\n                                      'visible': False,\n                                      'showticklabels': False}},)\n    fig.update_traces(showscale=False)\n    if 'template' not in kwargs.keys():\n        fig.update_layout(template='plotly_dark',\n                          margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    else:\n        fig.update_layout(margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    fig.show()\n    return fig\n```\n\nIn the `**kwargs` we can insert other arguments plotly allows, such as width, height, etc.",
      "votes": null
    },
    {
      "id": "1335473",
      "postDate": "06/04/2021 08:37:46",
      "content": "<p>Wholesomely agree … <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  makes the Kaggle such  a great place to learn … sharing many lessons, papers and suggestions on how to improve</p>",
      "rawMarkdown": "Wholesomely agree ... @hengck23  makes the Kaggle such  a great place to learn ... sharing many lessons, papers and suggestions on how to improve",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1334954,
      "author_name": "underwearfitting",
      "author_url": "",
      "post_date": "06/03/2021 23:33:50",
      "content": "<p>Nice paper and achievements. May I ask which tool did you use to make those diagrams? They look amazing.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1335015,
          "author_name": "scaomath",
          "author_url": "",
          "post_date": "06/04/2021 00:49:23",
          "content": "<p>Mainly tikz, drawio, and plotly. The code snippet I use to show the contour plot (<code>z</code> is a matrix) is:</p>\n<pre><code>import plotly.graph_objects as go\ndef showcontour(z, **kwargs):\n    '''\n    show 2D solution z of its contour\n    '''\n    uplot = go.Contour(z=z,\n                       colorscale='RdYlBu',\n                       line_smoothing=0.85,\n                       line_width=0.1,\n                       contours=dict(\n                           coloring='heatmap',\n                           showlabels=True,\n                       )\n                       )\n    fig = go.Figure(data=uplot,\n                    layout={'xaxis': {'title': 'x-label',\n                                      'visible': False,\n                                      'showticklabels': False},\n                            'yaxis': {'title': 'y-label',\n                                      'visible': False,\n                                      'showticklabels': False}},)\n    fig.update_traces(showscale=False)\n    if 'template' not in kwargs.keys():\n        fig.update_layout(template='plotly_dark',\n                          margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    else:\n        fig.update_layout(margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    fig.show()\n    return fig\n</code></pre>\n<p>In the <code>**kwargs</code> we can insert other arguments plotly allows, such as width, height, etc.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1335473,
      "author_name": "kmldas",
      "author_url": "",
      "post_date": "06/04/2021 08:37:46",
      "content": "<p>Wholesomely agree … <a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a>  makes the Kaggle such  a great place to learn … sharing many lessons, papers and suggestions on how to improve</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1334920": "Since I did not actively participate this competition, fellow Kagglers please pardon the spam.\n\nAs @hengck23 dropped another huge starter bomb (TNT that is in the silver range) just like two years ago he did in the quantum chemistry J-coupling competition, I think this is the best place to say \"thank you\".\n\nThe reason I wanna say thank you is that I wrote my first machine learning paper: https://arxiv.org/abs/2105.14995 on transformers. I believe it presents the first theory on why explicitly `(QK^T)V` or `Q(K^TV)` in the attention mechanism would make mathematical sense together with some examples related to partial differential equations, and Heng is the person that led me into the world of serious coding for ML.",
    "1334954": "Nice paper and achievements. May I ask which tool did you use to make those diagrams? They look amazing.",
    "1335015": "Mainly tikz, drawio, and plotly. The code snippet I use to show the contour plot (`z` is a matrix) is:\n\n```\nimport plotly.graph_objects as go\ndef showcontour(z, **kwargs):\n    '''\n    show 2D solution z of its contour\n    '''\n    uplot = go.Contour(z=z,\n                       colorscale='RdYlBu',\n                       line_smoothing=0.85,\n                       line_width=0.1,\n                       contours=dict(\n                           coloring='heatmap',\n                           showlabels=True,\n                       )\n                       )\n    fig = go.Figure(data=uplot,\n                    layout={'xaxis': {'title': 'x-label',\n                                      'visible': False,\n                                      'showticklabels': False},\n                            'yaxis': {'title': 'y-label',\n                                      'visible': False,\n                                      'showticklabels': False}},)\n    fig.update_traces(showscale=False)\n    if 'template' not in kwargs.keys():\n        fig.update_layout(template='plotly_dark',\n                          margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    else:\n        fig.update_layout(margin=dict(l=0, r=0, t=0, b=0),\n                          **kwargs)\n    fig.show()\n    return fig\n```\n\nIn the `**kwargs` we can insert other arguments plotly allows, such as width, height, etc.",
    "1335473": "Wholesomely agree ... @hengck23  makes the Kaggle such  a great place to learn ... sharing many lessons, papers and suggestions on how to improve"
  },
  "source": "meta"
}