CN104021230A - 一种基于社区发现的协同过滤方法 - Google Patents
一种基于社区发现的协同过滤方法 Download PDFInfo
- Publication number
- CN104021230A CN104021230A CN201410298575.6A CN201410298575A CN104021230A CN 104021230 A CN104021230 A CN 104021230A CN 201410298575 A CN201410298575 A CN 201410298575A CN 104021230 A CN104021230 A CN 104021230A
- Authority
- CN
- China
- Prior art keywords
- user
- rightarrow
- scoring
- project
- community
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000001914 filtration Methods 0.000 title claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims abstract description 30
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 claims description 14
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000008034 disappearance Effects 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 230000002950 deficient Effects 0.000 abstract 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Primary Health Care (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于社区发现的协同过滤方法,包括以下步骤:1)将用户—项目网络转换为邻接矩阵形式,如果用户对项目评分,那么对应于矩阵的相应元素就存在值,即评分数据;2)构造用户—用户矩阵,用户—用户矩阵中的元素为用户与用户的相似度,相似度的计算方法采用新型的基于Pearson的相似度计算方法;3)基于用户—用户矩阵通过社区发现方法发现社区结构,并对用户—项目矩阵中的部分缺失评分进行预测填充;4)计算目标用户与社区之间以及用户与用户之间的相似度关系构造最近邻候选集,并完成推荐。该方法有效的解决了传统过滤算法中的冷启动问题,通过改进相似度计算公式以及对缺失评分的预测填充有效提高了算法推荐的精度,在平均绝对误差上也有着更好的表现。
Description
技术领域
本发明属于通信技术领域,涉及一种基于社区发现的协同过滤方法。
背景技术
目前,在现实生活中,人们每天所接收的信息量越来越大,人们在享受信息便捷的同时也慢慢的被各种不需要的信息所围绕。信息的繁杂使得人们没有办法在较短的时间内找到自己需要的信息,个性化的推荐服务由此而产生。个性化的推荐服务不但免去了用户在大量商品中寻找心仪商品的烦恼,也给用户带来了更好地购物体验。
除了协同过滤推荐算法之外,还有一些基于协同过滤的算法也可以取得比较好的划分效果,例如,施荣杰、王守军等人提出的基于物品分类和用户分类的协同过滤推荐方法;李莉、魏宝军等人提出的基于区域特征的协同过滤推荐方法;罗辛、欧阳元新等人提出的一种通过聚合对协同过滤推荐***进行优化的方法等等。除此之外,杨博、雷余等人提出的基于信任的社会化协同过滤推荐方法;樊博、宿红毅等人提出的一种基于扩展特征向量的个性化协同过滤推荐方法等对协同过滤算法的不足以及改进点都做了很好的阐述,但是关于协同过滤算法的研究仍存在着一些缺点。
基于上述的一些协同过滤相关算法,虽然解决了推荐过滤算法中存在一些问题,但是在最近邻候选集选取以及用户相似度计算等方面,还是存在着一些不足,本发明提出了一种基于社区发现的协同过滤算法,旨在更好的提高推荐算法的推荐准确度,本发明在实际经典MovieLens测试数据集中进行测试时,算法性能稳定高效、准确度高,将算法用于后续的协同过滤推荐中具有非常重要的意义以及广阔的应用前景。
发明内容
有鉴于此,本发明的目的在于提供一种基于社区发现的协同过滤方法,该方法通过计算用户与用户之间的相似度,将用户—项目网络转换为用户—用户网络,然后将社区发现算法适用于用户—用户网络得到相应的社区结构。根据得到的社区结构进行缺失评分的预测填充以及最近邻候选集的选取,最后预测用户对项目的评分。
为达到上述目的,本发明提供如下技术方案:
一种基于社区发现的协同过滤方法,包括以下步骤:1)将用户—项目网络转换为邻接矩阵形式,如果用户对项目评分,那么对应于矩阵的相应元素就存在值,即评分数据;2)构造用户—用户矩阵,用户—用户矩阵中的元素为用户与用户的相似度,相似度的计算方法采用新型的基于Pearson的相似度计算方法;3)基于用户—用户矩阵通过社区发现方法发现社区结构,并对用户—项目矩阵中的部分缺失评分进行预测填充;4)计算目标用户与社区之间以及用户与用户之间的相似度关系构造最近邻候选集,并完成推荐。
进一步,在步骤2)中,利用用户—项目网络构造用户—用户网络,用户—用户网络所对应的用户—用户邻接矩阵中的元素为用户之间的相似度,将新的相似度计算公式命名为Pearsimilarity,其具体的计算方法如下:
其中,表示的是用户i与用户j的评分向量,Iui与Iuj分别表示用户i与用户j评分项目的集合,与表示用户i与用户j对项目t的评分情况,α为控制参数,控制相似度公式对数据敏感性的要求。
进一步,在步骤3)中,对用户—项目矩阵中的缺失评分进行预测填充,在进行预测填充时考虑到两个方面的因素:商品之间评分的关联性、社区成员对项目预测评分的影响;具体的评分预测公式如下:
rcux=(1-β)×user_rating(x)+β×Item_rating(x)
表示用户u评分的平均值,Cu(x)表示用户u所属的社区对项目x评分的用户所构成的集合,|Cu(x)|表示集合中用户的数目,rmx表示用户u所属社区内用户对项目x的评分,是其评分的均值,ry表示用户u商品y的评分值,Neigh(Ix)表示与项目x相似项目的集合,其中β为控制性参数。
进一步,在步骤4)中,依据目标用户与社区之间的相似度以及目标用户与其他用户之间的相似度选择最近邻候选集,其中目标用户与社区之间的相似度计算公式如下:
假设算法将用户-用户社交网络划分为(C1,C2,C3…Ci…Ct),t为社区个数,虽然目标用户属于某一个社区但是这并不表示此目标用户与其他社区毫无关联,所以首先计算目标用户与社区之间的相似度;社区Ct对商品评分的平均值记为质心向量 其中表示社区Ct中的用户对项目j的平均评分,分别表示用户i与社区Cj的评分向量,为用户ui所评价的项目集合,表示社区Cj中所有用户所评价项目的集合,表示用户ui对项目t的评分,表示用户ui评分的均值,表示社区Cj中的用户对项目t评分的平均值,而为质心向量中各分量的均值,α为数据敏感度控制性参数。
进一步,根据步骤4)所选择的最近邻候选集,计算目标用户对特定项目的评分,具体的评分预测公式如下:
Neigh(u)的K个最近邻用户所构成的集合,sim(u,u')表示用户u和用户u'的相似度;如果用户u'对x存在评分值,那么ru'x表示用户u'对x的评分,如果用户u'对x不存在评分值,那么ru'x=rcux,rcux表示预测评分值。
本发明的有益效果在于:本发明提供的基于社区发现的协同过滤方法,有效的解决了传统过滤算法中的冷启动问题,同时,通过改进相似度计算公式以及对缺失评分的预测填充也有效的提高了算法推荐的精度;此外,本方法与传统的协同过滤算法相比,在平均绝对误差上有着更好的表现。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明所述方法的宏观流程图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为本发明所述方法的宏观流程图,如图所示,本发明所述的基于社区发现的协同过滤方法包括以下四个步骤:1)将用户—项目网络转换为邻接矩阵形式,如果用户对项目评分,那么对应于矩阵的相应元素就存在值,即评分数据;2)构造用户—用户矩阵,用户—用户矩阵中的元素为用户与用户的相似度,相似度的计算方法采用新型的基于Pearson的相似度计算方法;3)基于用户—用户矩阵通过社区发现方法发现社区结构,并对用户—项目矩阵中的部分缺失评分进行预测填充;4)计算目标用户与社区之间以及用户与用户之间的相似度关系构造最近邻候选集,并完成推荐。
在本实施例中,具体来说,在步骤2)中,利用用户—项目网络构造用户—用户网络,用户—用户网络所对应的用户—用户邻接矩阵中的元素为用户之间的相似度,将新的相似度计算公式命名为Pearsimilarity,其具体的计算方法如下:
其中,表示的是用户i与用户j的评分向量,Iui与Iuj分别表示用户i与用户j评分项目的集合,与表示用户i与用户j对项目t的评分情况,α为控制参数,控制相似度公式对数据敏感性的要求。
在步骤3)中,对用户—项目矩阵中的缺失评分进行预测填充,在进行预测填充时考虑到两个方面的因素:商品之间评分的关联性、社区成员对项目预测评分的影响;具体的评分预测公式如下:
rcux=(1-β)×user_rating(x)+β×Item_rating(x)
表示用户u评分的平均值,Cu(x)表示用户u所属的社区对项目x评分的用户所构成的集合,|Cu(x)|表示集合中用户的数目,rmx表示用户u所属社区内用户对项目x的评分,是其评分的均值,ry表示用户u商品y的评分值,Neigh(Ix)表示与项目x相似项目的集合,其中β为控制性参数。
在步骤4)中,依据目标用户与社区之间的相似度以及目标用户与其他用户之间的相似度选择最近邻候选集,其中目标用户与社区之间的相似度计算公式如下:
假设算法将用户-用户社交网络划分为(C1,C2,C3…Ci…Ct),t为社区个数,虽然目标用户属于某一个社区但是这并不表示此目标用户与其他社区毫无关联,所以首先计算目标用户与社区之间的相似度;社区Ct对商品评分的平均值记为质心向量 其中表示社区Ct中的用户对项目j的平均评分,分别表示用户i与社区Cj的评分向量,为用户ui所评价的项目集合,表示社区Cj中所有用户所评价项目的集合,表示用户ui对项目t的评分,表示用户ui评分的均值,表示社区Cj中的用户对项目t评分的平均值,而为质心向量中各分量的均值,α为数据敏感度控制性参数。
根据步骤4)所选择的最近邻候选集,计算目标用户对特定项目的评分,具体的评分预测公式如下:
Neigh(u)的K个最近邻用户所构成的集合,sim(u,u')表示用户u和用户u'的相似度;如果用户u'对x存在评分值,那么ru'x表示用户u'对x的评分,如果用户u'对x不存在评分值,那么ru'x=rcux,rcux表示预测评分值。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。
Claims (5)
1.一种基于社区发现的协同过滤方法,其特征在于:包括以下步骤:
1)将用户—项目网络转换为邻接矩阵形式,如果用户对项目评分,那么对应于矩阵的相应元素就存在值,即评分数据;
2)构造用户—用户矩阵,用户—用户矩阵中的元素为用户与用户的相似度,相似度的计算方法采用新型的基于Pearson的相似度计算方法;
3)基于用户—用户矩阵通过社区发现方法发现社区结构,并对用户—项目矩阵中的部分缺失评分进行预测填充;
4)计算目标用户与社区之间以及用户与用户之间的相似度关系构造最近邻候选集,并完成推荐。
2.根据权利要求1所述的一种基于社区发现的协同过滤方法,其特征在于:在步骤2)中,利用用户—项目网络构造用户—用户网络,用户—用户网络所对应的用户—用户邻接矩阵中的元素为用户之间的相似度,将新的相似度计算公式命名为Pearsimilarity,其具体的计算方法如下:
其中,表示的是用户i与用户j的评分向量,Iui与Iuj分别表示用户i与用户j评分项目的集合,与表示用户i与用户j对项目t的评分情况,α为控制参数,控制相似度公式对数据敏感性的要求。
3.根据权利要求1所述的一种基于社区发现的协同过滤方法,其特征在于:在步骤3)中,对用户—项目矩阵中的缺失评分进行预测填充,在进行预测填充时考虑到两个方面的因素:商品之间评分的关联性、社区成员对项目预测评分的影响;具体的评分预测公式如下:
rcux=(1-β)×user_rating(x)+β×Item_rating(x)
表示用户u评分的平均值,Cu(x)表示用户u所属的社区对项目x评分的用户所构成的集合,|Cu(x)|表示集合中用户的数目,rmx表示用户u所属社区内用户对项目x的评分,是其评分的均值,ry表示用户u商品y的评分值,Neigh(Ix)表示与项目x相似项目的集合,其中β为控制性参数。
4.根据权利要求1所述的一种基于社区发现的协同过滤方法,其特征在于:在步骤4)中,依据目标用户与社区之间的相似度以及目标用户与其他用户之间的相似度选择最近邻候选集,其中目标用户与社区之间的相似度计算公式如下:
假设算法将用户-用户社交网络划分为(C1,C2,C3…Ci…Ct),t为社区个数,虽然目标用户属于某一个社区但是这并不表示此目标用户与其他社区毫无关联,所以首先计算目标用户与社区之间的相似度;社区Ct对商品评分的平均值记为质心向量 其中表示社区Ct中的用户对项目j的平均评分,分别表示用户i与社区Cj的评分向量,为用户ui所评价的项目集合,表示社区Cj中所有用户所评价项目的集合,表示用户ui对项目t的评分,表示用户ui评分的均值,表示社区Cj中的用户对项目t评分的平均值,而为质心向量中各分量的均值,α为数据敏感度控制性参数。
5.根据权利要求4所述的一种基于社区发现的协同过滤方法,其特征在于:根据步骤4)所选择的最近邻候选集,计算目标用户对特定项目的评分,具体的评分预测公式如下:
Neigh(u)的K个最近邻用户所构成的集合,sim(u,u')表示用户u和用户u'的相似度;如果用户u'对x存在评分值,那么ru'x表示用户u'对x的评分,如果用户u'对x不存在评分值,那么ru'x=rcux,rcux表示预测评分值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410298575.6A CN104021230B (zh) | 2014-06-27 | 2014-06-27 | 一种基于社区发现的协同过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410298575.6A CN104021230B (zh) | 2014-06-27 | 2014-06-27 | 一种基于社区发现的协同过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021230A true CN104021230A (zh) | 2014-09-03 |
CN104021230B CN104021230B (zh) | 2017-02-15 |
Family
ID=51437984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410298575.6A Active CN104021230B (zh) | 2014-06-27 | 2014-06-27 | 一种基于社区发现的协同过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021230B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657901A (zh) * | 2015-01-14 | 2015-05-27 | 重庆邮电大学 | 一种基于随机游走的标签传播社区发现方法 |
CN106056455A (zh) * | 2016-06-02 | 2016-10-26 | 南京邮电大学 | 一种基于位置和社交关系的群组与地点推荐方法 |
CN106095974A (zh) * | 2016-06-20 | 2016-11-09 | 上海理工大学 | 基于网络结构相似性的推荐***评分预测与推荐算法 |
CN106708953A (zh) * | 2016-11-28 | 2017-05-24 | 西安电子科技大学 | 基于离散粒子群优化的局部社区检测协同过滤推荐方法 |
CN107436914A (zh) * | 2017-06-06 | 2017-12-05 | 北京小度信息科技有限公司 | 推荐方法及装置 |
CN110263132A (zh) * | 2019-04-17 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 项目案件推送方法以及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和*** |
CN102841929A (zh) * | 2012-07-19 | 2012-12-26 | 南京邮电大学 | 一种综合用户和项目评分及特征因素的推荐方法 |
US20140164172A1 (en) * | 2011-04-19 | 2014-06-12 | Nokia Corporation | Method and apparatus for providing feature-based collaborative filtering |
-
2014
- 2014-06-27 CN CN201410298575.6A patent/CN104021230B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685458A (zh) * | 2008-09-27 | 2010-03-31 | 华为技术有限公司 | 一种基于协同过滤的推荐方法和*** |
US20140164172A1 (en) * | 2011-04-19 | 2014-06-12 | Nokia Corporation | Method and apparatus for providing feature-based collaborative filtering |
CN102841929A (zh) * | 2012-07-19 | 2012-12-26 | 南京邮电大学 | 一种综合用户和项目评分及特征因素的推荐方法 |
Non-Patent Citations (1)
Title |
---|
万雪飞: "基于社会网络的协同过滤推荐技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657901A (zh) * | 2015-01-14 | 2015-05-27 | 重庆邮电大学 | 一种基于随机游走的标签传播社区发现方法 |
CN104657901B (zh) * | 2015-01-14 | 2018-04-27 | 重庆邮电大学 | 一种基于随机游走的标签传播社区发现方法 |
CN106056455A (zh) * | 2016-06-02 | 2016-10-26 | 南京邮电大学 | 一种基于位置和社交关系的群组与地点推荐方法 |
CN106095974A (zh) * | 2016-06-20 | 2016-11-09 | 上海理工大学 | 基于网络结构相似性的推荐***评分预测与推荐算法 |
CN106095974B (zh) * | 2016-06-20 | 2019-12-24 | 上海理工大学 | 基于网络结构相似性的推荐***评分预测与推荐算法 |
CN106708953A (zh) * | 2016-11-28 | 2017-05-24 | 西安电子科技大学 | 基于离散粒子群优化的局部社区检测协同过滤推荐方法 |
CN107436914A (zh) * | 2017-06-06 | 2017-12-05 | 北京小度信息科技有限公司 | 推荐方法及装置 |
CN110263132A (zh) * | 2019-04-17 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 项目案件推送方法以及装置 |
CN110263132B (zh) * | 2019-04-17 | 2023-01-10 | 创新先进技术有限公司 | 项目案件推送方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104021230B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021230A (zh) | 一种基于社区发现的协同过滤方法 | |
CN103700005B (zh) | 一种基于自适应多最小支持度的关联规则推荐方法 | |
CN104239496B (zh) | 一种结合模糊权重相似性度量和聚类协同过滤的方法 | |
CN103294812B (zh) | 一种基于混合模型的商品推荐方法 | |
CN104462383A (zh) | 一种基于用户多种行为反馈的电影推荐方法 | |
CN105550275B (zh) | 一种微博转发量预测方法 | |
CN106484876A (zh) | 一种基于典型度和信任网络的协同过滤推荐方法 | |
CN107563841A (zh) | 一种基于用户评分分解的推荐*** | |
CN105354260B (zh) | 一种融合社会网络和项目特征的移动应用推荐方法 | |
CN103793476A (zh) | 基于网络社区的协同过滤推荐方法 | |
CN105025091A (zh) | 一种基于移动用户位置的商铺推荐方法 | |
CN102063433A (zh) | 相关项推荐方法和装置 | |
CN107145541B (zh) | 基于超图结构的社交网络推荐模型构建方法 | |
CN104933624A (zh) | 复杂网络的社团发现方法及社团重要节点发现方法 | |
CN105430099A (zh) | 一种基于位置聚类的协同式Web服务性能预测方法 | |
CN108228867A (zh) | 一种基于观点增强的主题协同过滤推荐方法 | |
CN107481054A (zh) | 酒店优惠信息的推送及装置、电子设备、存储介质 | |
CN102799656A (zh) | 一种面向目标用户的个性化产品包的提取方法 | |
CN106991173A (zh) | 基于用户偏好的协同过滤推荐方法 | |
CN107967320A (zh) | 一种用户社会地位增强的矩阵分解项目推荐算法 | |
CN105678590A (zh) | 一种面向社交网络基于云模型的topN推荐方法 | |
CN109840702A (zh) | 一种基于多核融合的新项目协同推荐方法 | |
CN107025311A (zh) | 一种基于k近邻的贝叶斯个性化推荐方法及装置 | |
CN105183748A (zh) | 一种基于内容和评分的组合预测方法 | |
CN108241619A (zh) | 一种基于用户多兴趣的推荐方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |